diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml
index 3a986873f1..eb11fe008e 100644
--- a/.github/workflows/docker.yaml
+++ b/.github/workflows/docker.yaml
@@ -185,14 +185,14 @@ jobs:
fi
- name: Login to Dockerhub
if: github.event_name != 'pull_request' && steps.docker_login.outputs.skip_dockerhub_login != 'true'
- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # pin@v4.0.0
+ uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # pin@v4.1.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log into registry ghcr.io
if: github.event_name != 'pull_request'
- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # pin@v4.0.0
+ uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # pin@v4.1.0
with:
registry: ghcr.io
username: ${{ github.actor }}
diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml
index 26186948d0..50f12792d6 100644
--- a/.github/workflows/qc_checks.yaml
+++ b/.github/workflows/qc_checks.yaml
@@ -202,7 +202,7 @@ jobs:
- name: Export API Documentation
run: invoke dev.schema --ignore-warnings --filename src/backend/InvenTree/schema.yml
- name: Upload schema
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: schema.yml
path: src/backend/InvenTree/schema.yml
@@ -222,7 +222,7 @@ jobs:
echo "Downloaded api.yaml"
- name: Running OpenAPI Spec diff action
id: breaking_changes
- uses: oasdiff/oasdiff-action/diff@1f38ea5ea0b4a2e4e49901c3bcdf4386a05e9ea1 # pin@main
+ uses: oasdiff/oasdiff-action/diff@f8cb9308b42121e793f835bd14c0b8090420430c # pin@main
with:
base: "api.yaml"
revision: "src/backend/InvenTree/schema.yml"
@@ -251,17 +251,17 @@ jobs:
- name: Extract settings / tags
run: invoke int.export-definitions --basedir docs
- name: Upload settings
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: inventree_settings.json
path: docs/generated/inventree_settings.json
- name: Upload tags
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: inventree_tags.yml
path: docs/generated/inventree_tags.yml
- name: Upload filters
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: inventree_filters.yml
path: docs/generated/inventree_filters.yml
@@ -363,7 +363,7 @@ jobs:
pip install .
if: needs.paths-filter.outputs.submit-performance == 'true'
- name: Performance Reporting
- uses: CodSpeedHQ/action@1c8ae4843586d3ba879736b7f6b7b0c990757fab # pin@v4
+ uses: CodSpeedHQ/action@658a901452bb54c799643e060733b7afe9121b8d # pin@v4.14.0
# check if we are in inventree/inventree - reporting only works in that OIDC context
if: github.repository == 'inventree/InvenTree' && needs.paths-filter.outputs.submit-performance == 'true'
with:
@@ -409,7 +409,7 @@ jobs:
- name: Coverage Tests
run: invoke dev.test --check --coverage --translations
- name: Upload raw coverage to artifacts
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: coverage
path: .coverage
@@ -454,7 +454,7 @@ jobs:
env:
node_version: '>=20.19.0'
- name: Performance Reporting
- uses: CodSpeedHQ/action@1c8ae4843586d3ba879736b7f6b7b0c990757fab # pin@v4
+ uses: CodSpeedHQ/action@658a901452bb54c799643e060733b7afe9121b8d # pin@v4.14.0
with:
mode: walltime
run: inv dev.test --pytest
@@ -725,7 +725,7 @@ jobs:
invoke static
env INVENTREE_CUSTOM_SPLASH="img/playwright_custom_splash.png" INVENTREE_CUSTOM_LOGO="img/playwright_custom_logo.png" npx nyc playwright test --project=customization
npx nyc playwright test --project=chromium --project=firefox
- - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
if: ${{ !cancelled() && steps.tests.outcome == 'failure' }}
with:
name: playwright-report
@@ -770,7 +770,7 @@ jobs:
run: |
cd src/backend/InvenTree/web/static
zip -r frontend-build.zip web/ web/.vite
- - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: frontend-build
path: src/backend/InvenTree/web/static/web
@@ -795,7 +795,7 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload SARIF file
- uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # pin@v3
+ uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # pin@v3
with:
sarif_file: results.sarif
category: zizmor
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index aa77d5282c..56debc6675 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -28,7 +28,7 @@ jobs:
pip install --require-hashes -r contrib/dev_reqs/requirements.txt
python3 .github/scripts/version_check.py
- name: Push to Stable Branch
- uses: ad-m/github-push-action@77c5b412c50b723d2a4fbc6d71fb5723bcd439aa # pin@v1.0.0
+ uses: ad-m/github-push-action@4cc74773234f74829a8c21bc4d69dd4be9cfa599 # pin@v1.1.0
if: env.stable_release == 'true'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -86,7 +86,7 @@ jobs:
tag: ${{ github.ref }}
overwrite: true
- name: Upload frontend to artifacts
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
with:
name: frontend-build
path: src/backend/InvenTree/web/static/frontend-build.zip
diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml
index 4a0bc3ab6a..8be962c18b 100644
--- a/.github/workflows/scorecard.yaml
+++ b/.github/workflows/scorecard.yaml
@@ -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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
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@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
+ uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
with:
sarif_file: results.sarif
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a4d6e46287..afdd0795d1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -97,3 +97,4 @@ repos:
rev: 0.4.3
hooks:
- id: teyit
+ language_version: python3.11
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 74c25341c4..6988a362c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,8 +11,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
+- [#11853](https://github.com/inventree/InvenTree/pull/11853) adds BOM comparison functionality, allowing users to compare the BOM of one assembly with another assembly.
+- [#11809](https://github.com/inventree/InvenTree/pull/11809) adds multi-level subassembly display mode to the BOM table, allowing users to view multiple levels of subassemblies in a single table view. This is an optional display mode which can be toggled on or off by the user.
+- [#11778](https://github.com/inventree/InvenTree/pull/11778) adds inline supplier part creation to po line item addition dialog.
+- [#11772](https://github.com/inventree/InvenTree/pull/11772) the UI now warns if you navigate away from a note panel with unsaved changes
+- [#11788](https://github.com/inventree/InvenTree/pull/11788) adds support for custom permissions checks on database models defined in plugins. If a model defines a `check_user_permission` classmethod, this will be called to determine if a user has permission to view the model. This is required for plugin models which do not have the required ruleset definitions for the standard permission system.
+
### Changed
+- [#11825](https://github.com/inventree/InvenTree/pull/11825) adds a new "bom" ruleset and associated permissions for BOM management, separate from the "part" ruleset which remains focused on part management. This allows for more granular control over user permissions, allowing users to have different levels of access to part management and BOM management functionality.
+- [#11816](https://github.com/inventree/InvenTree/pull/11816) makes the `issued_by` field on the `Build` API read only, and instead sets the `issued_by` field to the current user when a build is created. This change was made to ensure that the `issued_by` field accurately reflects the user who created the build, and to prevent users from setting this field to an arbitrary value when creating or updating a build.
+
### Removed
## 1.3.0 - 2026-04-11
diff --git a/contrib/container/requirements.txt b/contrib/container/requirements.txt
index 2cdb3b187f..bd0064b7d8 100644
--- a/contrib/container/requirements.txt
+++ b/contrib/container/requirements.txt
@@ -23,9 +23,9 @@ gunicorn==25.3.0 \
# via
# -c src/backend/requirements.txt
# -r contrib/container/requirements.in
-invoke==2.2.1 \
- --hash=sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8 \
- --hash=sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707
+invoke==3.0.3 \
+ --hash=sha256:437b6a622223824380bfb4e64f612711a6b648c795f565efc8625af66fb57f0c \
+ --hash=sha256:f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053
# via
# -c src/backend/requirements.txt
# -r contrib/container/requirements.in
@@ -53,9 +53,9 @@ mysqlclient==2.2.8 \
--hash=sha256:9bed7c8d3b629bdc09e17fb628d5b3b0a5fd1f12b09432b464b9126c727bedc0 \
--hash=sha256:a81f5e12f8d05439709cb02fba97f9f76d1a6c528164f2260d8798fec969e300
# via -r contrib/container/requirements.in
-packaging==26.0 \
- --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \
- --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+packaging==26.1 \
+ --hash=sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f \
+ --hash=sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de
# via
# -c src/backend/requirements.txt
# gunicorn
@@ -236,26 +236,26 @@ typing-extensions==4.15.0 \
# via
# -c src/backend/requirements.txt
# psycopg-pool
-uv==0.10.12 \
- --hash=sha256:006812a086fce03d230fc987299f7295c7a73d17a1f1c17de1d1f327826f8481 \
- --hash=sha256:101481a1f48db6becf219914a591a588c0b3bfd05bef90768a5d04972bd6455e \
- --hash=sha256:2ace05115bd9ee1b30d341728257fe051817c4c0a652c085c90d4bd4fb0bc8f2 \
- --hash=sha256:2bb5893d79179727253e4a283871a693d7773c662a534fb897aa65496aa35765 \
- --hash=sha256:2c21e1b36c384f75dd3fd4a818b04871158ce115efff0bb4fdcd18ba2df7bd48 \
- --hash=sha256:2c5dfc7560453186e911c8c2e4ce95cd1c91e1c5926c3b34c5a825a307217be9 \
- --hash=sha256:384b7f36a1ae50efe5f50fe299f276a83bf7acc8b7147517f34e27103270f016 \
- --hash=sha256:551f799d53e397843b6cde7e3c61de716fb487da512a21a954b7d0cbc06967e0 \
- --hash=sha256:6727e3a0208059cd4d621684e580d5e254322dacbd806e0d218360abd0d48a68 \
- --hash=sha256:7099bdefffbe2df81accad52579657b8f9f870170caa779049c9fd82d645c9b3 \
- --hash=sha256:76ebe11572409dfbe20ec25a823f9bc8781400ece5356aa33ec44903af7ec316 \
- --hash=sha256:8dc352c93a47a4760cf824c31c55ce26511af780481e8f67c796d2779acaa928 \
- --hash=sha256:a5afe619e8a861fe4d49df8e10d2c6963de0dac6b79350c4832bf3366c8496cf \
- --hash=sha256:b9ca1d264059cb016c853ebbc4f21c72d983e0f347c927ca29e283aec2f596cf \
- --hash=sha256:bd84379292e3c1a1bf0a05847c7c72b66bb581dccf8da1ef94cc82bf517efa7c \
- --hash=sha256:be85acae8f31c68311505cd96202bad43165cbd7be110c59222f918677e93248 \
- --hash=sha256:cca36540d637c80d11d8a44a998a068355f0c78b75ec6b0f152ecbf89dfdd67b \
- --hash=sha256:e0f0ef58f0ba6fbfaf5f91b67aad6852252c49b8f78015a2a5800cf74c7538d5 \
- --hash=sha256:fa722691c7ae5c023778ad0b040ab8619367bcfe44fd0d9e05a58751af86cdf8
+uv==0.11.7 \
+ --hash=sha256:0df59ab0c6a4b14a763e8445e1c303af9abeb53cdfa4428daf9ff9642c0a3cce \
+ --hash=sha256:162fa961a9a081dcea6e889c79f738a5ae56507047e4672964972e33c301bea9 \
+ --hash=sha256:23d457d6731ebdb83f1bffebe4894edab2ef43c1ec5488433c74300db4958924 \
+ --hash=sha256:46d971489b00bdb27e0aa715e4a5cd4ef2c28ea5b6ef78f2b67bf861eb44b405 \
+ --hash=sha256:4e4d5e31bea86e1b6e0f5a0f95e14e80018e6f6c0129256d2915a4b3d793644d \
+ --hash=sha256:553e67cc766d013ce24353fecd4ea5533d2aedcfd35f9fac430e07b1d1f23ed4 \
+ --hash=sha256:5674dfb5944513f4b3735b05c2deba6b1b01151f46729d533d413a9a905f8c5d \
+ --hash=sha256:5985a15a92bd9a170fc1947abb1fbc3e9828c5a430ad85b5bed8356c20b67a71 \
+ --hash=sha256:6158b7e39464f1aa1e040daa0186cae4749a78b5cd80ac769f32ca711b8976b1 \
+ --hash=sha256:750ee5b96959b807cf442b73dd8b55111862d63f258f896787ea5f06b68aaca9 \
+ --hash=sha256:7d6a17507b8139b8803f445a03fd097f732ce8356b1b7b13cdb4dd8ef7f4b2e0 \
+ --hash=sha256:8b2fe1ec6775dad10183e3fdce430a5b37b7857d49763c884f3a67eaa8ca6f8a \
+ --hash=sha256:ceae53b202ea92bc954759bc7c7570cdcd5c3512fce15701198c19fd2dfb8605 \
+ --hash=sha256:dd48823ca4b505124389f49ae50626ba9f57212b9047738efc95126ed5f3844d \
+ --hash=sha256:eb91f52ee67e10d5290f2c2897e2171357f1a10966de38d83eefa93d96843b0c \
+ --hash=sha256:f394331f0507e80ee732cb3df737589de53bed999dd02a6d24682f08c2f8ac4f \
+ --hash=sha256:f422d39530516b1dfb28bb6e90c32bb7dacd50f6a383cd6e40c1a859419fbc8c \
+ --hash=sha256:f97e9f4e4d44fb5c4dfaa05e858ef3414a96416a2e4af270ecd88a3e5fb049a9 \
+ --hash=sha256:fab0bb43fbbc0ee5b5fee212078d2300c371b725faff7cf72eeaafa0bff0606b
# via -r contrib/container/requirements.in
wheel==0.46.3 \
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
diff --git a/docs/docs/app/build.md b/docs/docs/app/build.md
new file mode 100644
index 0000000000..4d97b03f11
--- /dev/null
+++ b/docs/docs/app/build.md
@@ -0,0 +1,35 @@
+---
+title: Build Orders
+---
+
+## Build Order List
+
+The build order list display lists all build orders:
+
+{{ image("app/build_list.png", "Build order list") }}
+
+Select an individual build order to display the detail view for that order.
+
+### Filtering
+
+Displayed build orders can be subsequently filtered using the search input at the top of the screen
+
+## Build Order Detail
+
+{{ image("app/build_detail.png", "Build order detail") }}
+
+### Edit Build Order Details
+
+From the detail view, select the *Edit* button in the top-right of the screen. This opens the build order editing display.
+
+### Required Parts Tab
+
+The *Required Parts* tab shows the parts required to complete this build order:
+
+{{ image("app/build_required_parts.png", "Build order required parts") }}
+
+### Build Outputs Tab
+
+The *Build Outputs* tab shows the stock items which have been produced as part of this build order:
+
+{{ image("app/build_outputs.png", "Build order outputs") }}
diff --git a/docs/docs/app/po.md b/docs/docs/app/po.md
index b6098b2d6f..7dbf0de24d 100644
--- a/docs/docs/app/po.md
+++ b/docs/docs/app/po.md
@@ -30,7 +30,7 @@ The *Line Items* tab shows the line items associated with this purchase order:
{{ image("app/po_lines.png", "Purchase order line items") }}
-Long press on a particular line item to receive the item into stock.
+Select a particular line item to view the details for that line, and receive the line item into stock.
### Stock Items
diff --git a/docs/docs/assets/images/app/build_detail.png b/docs/docs/assets/images/app/build_detail.png
new file mode 100644
index 0000000000..59112cd1dd
Binary files /dev/null and b/docs/docs/assets/images/app/build_detail.png differ
diff --git a/docs/docs/assets/images/app/build_list.png b/docs/docs/assets/images/app/build_list.png
new file mode 100644
index 0000000000..30e4516035
Binary files /dev/null and b/docs/docs/assets/images/app/build_list.png differ
diff --git a/docs/docs/assets/images/app/build_outputs.png b/docs/docs/assets/images/app/build_outputs.png
new file mode 100644
index 0000000000..1c2efcac97
Binary files /dev/null and b/docs/docs/assets/images/app/build_outputs.png differ
diff --git a/docs/docs/assets/images/app/build_required_parts.png b/docs/docs/assets/images/app/build_required_parts.png
new file mode 100644
index 0000000000..3240674b7d
Binary files /dev/null and b/docs/docs/assets/images/app/build_required_parts.png differ
diff --git a/docs/docs/assets/images/build/bom_compare.png b/docs/docs/assets/images/build/bom_compare.png
new file mode 100644
index 0000000000..4f1e124c4a
Binary files /dev/null and b/docs/docs/assets/images/build/bom_compare.png differ
diff --git a/docs/docs/assets/images/build/bom_compare_icon.png b/docs/docs/assets/images/build/bom_compare_icon.png
new file mode 100644
index 0000000000..e22b4c1b07
Binary files /dev/null and b/docs/docs/assets/images/build/bom_compare_icon.png differ
diff --git a/docs/docs/assets/images/faq/boundary.png b/docs/docs/assets/images/faq/boundary.png
new file mode 100644
index 0000000000..0a0f8a7f37
Binary files /dev/null and b/docs/docs/assets/images/faq/boundary.png differ
diff --git a/docs/docs/faq.md b/docs/docs/faq.md
index 3f3bbe01f3..7f2b2c79a0 100644
--- a/docs/docs/faq.md
+++ b/docs/docs/faq.md
@@ -195,3 +195,14 @@ This means that either:
- The docker user does not have write permission to the specified directory
In either case, ensure that the directory is available *on your local machine* and the user account has the required permissions.
+
+
+## Error Rendering Component
+
+Sometimes, following a software update, you may find that certain components of the web interface are not rendering correctly, and presented with a message similar to the screenshow below:
+
+{{ image("faq/boundary.png", "Error Rendering Component") }}
+
+This is often due to a caching issue with your web browser. Try performing a hard refresh of the page to clear the cache, this should resolve the issue in most cases.
+
+If the problem persists, refer to the [troubleshooting guide](./troubleshooting.md) for further assistance.
diff --git a/docs/docs/hooks.py b/docs/docs/hooks.py
index 2cd00cd586..b038738565 100644
--- a/docs/docs/hooks.py
+++ b/docs/docs/hooks.py
@@ -280,9 +280,27 @@ def on_post_build(*args, **kwargs):
ignored_settings = {
'global': ['SERVER_RESTART_REQUIRED'],
'user': ['LAST_USED_PRINTING_MACHINES'],
+ 'config': [
+ 'INVENTREE_DB_TCP_KEEPALIVES',
+ 'INVENTREE_DB_TCP_KEEPALIVES_IDLE',
+ 'INVENTREE_DB_TCP_KEEPALIVES_INTERVAL',
+ 'INVENTREE_DB_TCP_KEEPALIVES_COUNT',
+ 'INVENTREE_DB_ISOLATION_SERIALIZABLE',
+ 'INVENTREE_DB_WAL_MODE',
+ 'INVENTREE_PLUGIN_DIR',
+ 'INVENTREE_DOCKER',
+ 'INVENTREE_FLAGS',
+ 'INVENTREE_REMOTE_LOGIN',
+ 'INVENTREE_REMOTE_LOGIN_HEADER',
+ 'TEST_TRANSLATIONS',
+ 'INVENTREE_FRONTEND_URL_BASE',
+ 'INVENTREE_FRONTEND_API_HOST',
+ 'INVENTREE_FRONTEND_SETTINGS',
+ 'INVENTREE_LOGOUT_REDIRECT_URL',
+ ],
}
- for group in ['global', 'user']:
+ for group in ['global', 'user', 'config']:
expected = expected_settings.get(group, {})
observed = observed_settings.get(group, {})
ignored = ignored_settings.get(group, [])
diff --git a/docs/docs/manufacturing/bom.md b/docs/docs/manufacturing/bom.md
index 4114b5b9ea..87093f704e 100644
--- a/docs/docs/manufacturing/bom.md
+++ b/docs/docs/manufacturing/bom.md
@@ -4,7 +4,7 @@ title: Bill of Materials
## Bill of Materials
-A Bill of Materials (BOM) defines the list of component parts required to make an assembly, [create builds](./build.md) and allocate inventory.
+A Bill of Materials (BOM) defines the list of component parts required to make an assembly, [create build orders](./build.md) and allocate inventory.
A part which can be built from other sub components is called an *Assembly*.
@@ -92,9 +92,16 @@ Note that inherited BOM Line Items only flow "downwards" in the variant inherita
!!! info "Editing Inherited Items"
When editing an inherited BOM Line Item for a template part, the changes are automatically reflected in the BOM of any variant parts.
-## BOM Creation
+## BOM Editing
-BOMs can be created manually, by adjusting individual line items, or by uploading (importing) an existing BOM file.
+Bills of Material (BOMs) can be created manually, by adjusting individual line items, or by uploading (importing) an existing BOM file.
+
+### Editing Mode
+
+By default, the BOM is displayed in "view" mode. To edit the BOM, click on the {{ icon("edit", color="blue", title="Edit") }} icon at the top of the BOM panel. This will enable editing mode, which allows you to add, adjust or delete BOM line items.
+
+!!! warning "Permissions"
+ Only users with the appropriate permissions can edit BOMs. If you do not have permission to edit the BOM, the "Edit" icon will not be visible.
### Importing a BOM
@@ -162,89 +169,26 @@ If the BOM requires revalidation, the status will be displayed as "Not Validated
{{ image("build/bom_invalid.png", "BOM Not Validated") }}
-## Required Quantity Calculation
+## BOM Comparison
-When a new [Build Order](./build.md) is created, the required production quantity of each component part is calculated based on the BOM line items defined for the assembly being built. To calculate the required production quantity of a component part, the following considerations are made:
+It is possible to compare the BOM of one assembly with another assembly. This comparison can highlight different component parts, quantities and other properties of the BOM line items.
-### Base Quantity
+To compare the BOM of one assembly with another, navigate to the "Bill of Materials" tab of the part detail page, then click on the {{ icon("git-compare", color="blue", title="Compare BOM") }} icon at the top of the BOM table:
-The base quantity of a BOM line item is defined by the `Quantity` field of the BOM line item. This is the number of parts which are required to build one assembly. This value is multiplied by the number of assemblies which are being built to determine the total quantity of parts required.
+{{ image("build/bom_compare_icon.png", "BOM Compare") }}
-```
-Required Quantity = Base Quantity * Number of Assemblies
-```
+This will open the BOM comparison view, which allows you to select a secondary assembly to compare with the primary assembly. The BOM line items of the two assemblies will be displayed side by side, with differences highlighted:
-### Attrition
+{{ image("build/bom_compare.png", "BOM Compare") }}
-The `Attrition` field of a BOM line item is used to account for expected losses during the production process. This is expressed as a percentage of the `Base Quantity` (e.g. 2%).
+### Display Mode
-If a non-zero attrition percentage is specified, it is applied to the calculated `Required Quantity` value.
+When comparing BOMs from two different assemblies, the user can select from the following view modes:
-```
-Required Quantity = Required Quantity * (1 + Attrition Percentage)
-```
+| View Mode | Description |
+| --- | --- |
+| *Show all parts* | Display all BOM line items from both assemblies. Differences are highlighted. |
+| *Show different parts* | Display only the BOM line items which are different between the two assemblies. |
+| *Show common parts* | Display only the BOM line items which are common between the two assemblies. |
-!!! info "Optional"
- The attrition percentage is optional. If not specified, it defaults to 0%.
-
-### Setup Quantity
-
-The `Setup Quantity` field of a BOM line item is used to account for fixed losses during the production process. This is an additional quantity of the part which is required to ensure that the production run can be completed successfully. This value is added to the calculated `Required Quantity`.
-
-```
-Required Quantity = Required Quantity + Setup Quantity
-```
-
-!!! info "Optional"
- The setup quantity is optional. If not specified, it defaults to 0.
-
-### Rounding Multiple
-
-The `Rounding Multiple` field of a BOM line item is used to round the calculated `Required Quantity` value to the nearest multiple of the specified value. This is useful for ensuring that the required quantity is a whole number, or to meet specific packaging requirements.
-
-```
-Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple
-```
-
-!!! info "Optional"
- The rounding multiple is optional. If not specified, no rounding is applied to the calculated production quantity.
-
-### Example Calculation
-
-Consider a BOM line item with the following properties:
-
-- Base Quantity: 3
-- Attrition: 2% (0.02)
-- Setup Quantity: 10
-- Rounding Multiple: 25
-
-If we are building 100 assemblies, the required quantity would be calculated as follows:
-
-```
-Required Quantity = Base Quantity * Number of Assemblies
- = 3 * 100
- = 300
-
-Attrition Value = Required Quantity * Attrition Percentage
- = 300 * 0.02
- = 6
-
-Required Quantity = Required Quantity + Attrition Value
- = 300 + 6
- = 306
-
-Required Quantity = Required Quantity + Setup Quantity
- = 306 + 10
- = 316
-
-Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple
- = ceil(316 / 25) * 25
- = 13 * 25
- = 325
-
-```
-
-So the final required production quantity of the component part would be `325`.
-
-!!! info "Calculation"
- The required quantity calculation is performed automatically when a new [Build Order](./build.md) is created.
+In each case, any differences between the BOM line items are highlighted in red.
diff --git a/docs/docs/manufacturing/required.md b/docs/docs/manufacturing/required.md
new file mode 100644
index 0000000000..949277b9ab
--- /dev/null
+++ b/docs/docs/manufacturing/required.md
@@ -0,0 +1,90 @@
+---
+title: Required Build Quantity
+---
+
+## Required Build Quantity
+
+When a new [Build Order](./build.md) is created, the required production quantity of each component part is calculated based on the BOM line items defined for the assembly being built. To calculate the required production quantity of a component part, the following considerations are made:
+
+### Base Quantity
+
+The base quantity of a BOM line item is defined by the `Quantity` field of the BOM line item. This is the number of parts which are required to build one assembly. This value is multiplied by the number of assemblies which are being built to determine the total quantity of parts required.
+
+```
+Required Quantity = Base Quantity * Number of Assemblies
+```
+
+### Attrition
+
+The `Attrition` field of a BOM line item is used to account for expected losses during the production process. This is expressed as a percentage of the `Base Quantity` (e.g. 2%).
+
+If a non-zero attrition percentage is specified, it is applied to the calculated `Required Quantity` value.
+
+```
+Required Quantity = Required Quantity * (1 + Attrition Percentage)
+```
+
+!!! info "Optional"
+ The attrition percentage is optional. If not specified, it defaults to 0%.
+
+### Setup Quantity
+
+The `Setup Quantity` field of a BOM line item is used to account for fixed losses during the production process. This is an additional quantity of the part which is required to ensure that the production run can be completed successfully. This value is added to the calculated `Required Quantity`.
+
+```
+Required Quantity = Required Quantity + Setup Quantity
+```
+
+!!! info "Optional"
+ The setup quantity is optional. If not specified, it defaults to 0.
+
+### Rounding Multiple
+
+The `Rounding Multiple` field of a BOM line item is used to round the calculated `Required Quantity` value to the nearest multiple of the specified value. This is useful for ensuring that the required quantity is a whole number, or to meet specific packaging requirements.
+
+```
+Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple
+```
+
+!!! info "Optional"
+ The rounding multiple is optional. If not specified, no rounding is applied to the calculated production quantity.
+
+### Example Calculation
+
+Consider a BOM line item with the following properties:
+
+- Base Quantity: 3
+- Attrition: 2% (0.02)
+- Setup Quantity: 10
+- Rounding Multiple: 25
+
+If we are building 100 assemblies, the required quantity would be calculated as follows:
+
+```
+Required Quantity = Base Quantity * Number of Assemblies
+ = 3 * 100
+ = 300
+
+Attrition Value = Required Quantity * Attrition Percentage
+ = 300 * 0.02
+ = 6
+
+Required Quantity = Required Quantity + Attrition Value
+ = 300 + 6
+ = 306
+
+Required Quantity = Required Quantity + Setup Quantity
+ = 306 + 10
+ = 316
+
+Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple
+ = ceil(316 / 25) * 25
+ = 13 * 25
+ = 325
+
+```
+
+So the final required production quantity of the component part would be `325`.
+
+!!! info "Calculation"
+ The required quantity calculation is performed automatically when a new [Build Order](./build.md) is created.
diff --git a/docs/docs/plugins/frontend.md b/docs/docs/plugins/frontend.md
index 0df93fd49d..550a604590 100644
--- a/docs/docs/plugins/frontend.md
+++ b/docs/docs/plugins/frontend.md
@@ -10,6 +10,9 @@ Plugins can inherit from the [UserInterfaceMixin](./mixins/ui.md) class to provi
Note that the [InvenTree plugin creator](./creator.md) can be used to scaffold a new plugin with the necessary structure for frontend integration. This will automatically set up the necessary files and configurations to get started with frontend development.
+!!! info "Simplified Development"
+ Using the plugin creator can significantly simplify the process of developing a frontend plugin, as it provides a ready-made template with the necessary configurations for building and integrating the frontend code. Rolling your own frontend plugin from scratch is possible, but it requires a good understanding of the InvenTree frontend architecture and build process.
+
## Frontend Architecture
When designing a frontend plugin component, it is important to have at least a basic understanding of the InvenTree frontend architecture.
@@ -76,20 +79,28 @@ The following properties are available in the `context` object:
| Property | Description |
| -------- | ----------- |
| `version` | An object containing the current InvenTree version information. |
+| `api` | The Axios instance configured to communicate with the InvenTree API. |
+| `queryClient` | The query client instance used for managing API calls in the frontend. |
| `user` | An object containing information about the currently logged-in user. |
+| `userSettings` | An object containing user-specific settings. |
+| `globalSettings` | An object containing global settings for the InvenTree instance. |
+| `modelInformation` | An object containing information about the models available in the InvenTree instance. |
+| `renderInstance` | A function to render a model instance |
| `host` | An object containing information about the current host (server) configuration. |
| `i18n` | An object containing internationalization (i18n) functions for translating text. |
| `locale` | The current locale being used for the user interface. |
-| `api` | The Axios instance configured to communicate with the InvenTree API. |
-| `queryClient` | The query client instance used for managing API calls in the frontend. |
| `navigate` | A function to navigate to a different page in the InvenTree web interface. |
-| `globalSettings` | An object containing global settings for the InvenTree instance. |
-| `userSettings` | An object containing user-specific settings. |
-| `modelInformation` | An object containing information about the models available in the InvenTree instance. |
-| `renderInstance` | A function to render a model instance |
| `theme` | The current Mantine theme being used in the InvenTree web interface. |
| `colorScheme` | The current color scheme being used in the InvenTree web interface. |
| `forms` | A set of functional components for rendering forms in the InvenTree web interface. |
+| `tables` | A set of functional components for rendering tables in the InvenTree web interface. |
+| `importer` | A set of functions for controlling the global importer drawer in the InvenTree web interface. |
+| `model` | The model type associated with the rendered component (if applicable). |
+| `id` | The ID (primary key) of the model instance being rendered (if applicable). |
+| `instance` | The model instance data (if available). |
+| `reloadContent` | A function which can be called to reload the plugin content. |
+| `reloadInstance` | A function which can be called to reload the model instance. |
+| `context` | Any additional context data which may be passed to the plugin. |
This set of components is passed through at render time to the plugin function, allowing the plugin code to hook directly into the InvenTree web interface and access the necessary context for rendering.
diff --git a/docs/docs/plugins/mixins/app.md b/docs/docs/plugins/mixins/app.md
index e607bc7b52..895341d4c6 100644
--- a/docs/docs/plugins/mixins/app.md
+++ b/docs/docs/plugins/mixins/app.md
@@ -8,3 +8,27 @@ If this mixin is added to a plugin the directory the plugin class is defined in
!!! warning "Danger Zone"
Only use this mixin if you have an understanding of Django's [app system]({% include "django.html" %}/ref/applications). Plugins with this mixin are deeply integrated into InvenTree and can cause difficult to reproduce or long-running errors. Use the built-in testing functions of Django to make sure your code does not cause unwanted behaviour in InvenTree before releasing.
+
+## Custom Models
+
+This mixin allows you to define custom database models within your plugin. These models will be automatically registered with the InvenTree server, and will be available for use within your plugin code.
+
+### Model Permissions
+
+Some database operations within the InvenTree ecosystem may require custom permissions checks - to determine which actions a user can perform against a given model. If your plugin defines custom models, you may need to implement a custom permission check method on your model class.
+
+Each model class can implement a `check_user_permission` classmethod, which will be called by the InvenTree permission system when checking permissions for that model. This method should return `True` if the user has the required permissions, and `False` otherwise.
+
+
+```python
+class MyCustomModel(models.Model):
+ # model fields here
+
+ @classmethod
+ def check_user_permission(cls, user: User, permission: str) -> bool:
+ # custom permission logic here
+ return True # or False
+```
+
+!!! warning "Default Permissions"
+ By default, if the `check_user_permission` method is not implemented, the InvenTree permission system will return `False` for all permission checks against that model. This is to ensure that no permissions are granted by default, and that the plugin developer must explicitly define the required permissions for their custom models.
diff --git a/docs/docs/plugins/test.md b/docs/docs/plugins/test.md
index 775da49c03..a1eddd8912 100644
--- a/docs/docs/plugins/test.md
+++ b/docs/docs/plugins/test.md
@@ -9,11 +9,10 @@ For complicated plugins it makes sense to add unit tests the code to ensure that
For plugin testing the following environment variables must be set to True:
-| Name | Function | Value |
-| ---- | -------- | ----- |
-| INVENTREE_PLUGINS_ENABLED | Enables the use of 3rd party plugins | True |
-| INVENTREE_PLUGIN_TESTING | Enables enables all plugins no matter of their active state in the db or built-in flag | True |
-| INVENTREE_PLUGIN_TESTING_SETUP | Enables the url mixin | True |
+{{ configtable() }}
+{{ configsetting("INVENTREE_PLUGINS_ENABLED") }} Enables the use of 3rd party plugins |
+{{ configsetting("INVENTREE_PLUGIN_TESTING") }} Enables enables all plugins no matter of their active state in the db or built-in flag |
+{{ configsetting("INVENTREE_PLUGIN_TESTING_SETUP") }} Enables the url mixin |
### Test Program
diff --git a/docs/docs/settings/SSO.md b/docs/docs/settings/SSO.md
index 62849500b1..ab7d3a539c 100644
--- a/docs/docs/settings/SSO.md
+++ b/docs/docs/settings/SSO.md
@@ -29,10 +29,10 @@ The first step is to ensure that the required provider modules are installed, vi
There are two variables in the configuration file which define the operation of SSO:
-| Environment Variable |Configuration File | Description | More Info |
-| --- | --- | --- | --- |
-| INVENTREE_SOCIAL_BACKENDS | `social_backends` | A *list* of provider backends enabled for the InvenTree instance | [django-allauth docs](https://docs.allauth.org/en/latest/installation/quickstart.html) |
-| INVENTREE_SOCIAL_PROVIDERS | `social_providers` | A *dict* of settings specific to the installed providers | [provider documentation](https://docs.allauth.org/en/latest/socialaccount/providers/index.html) |
+{{ configtable() }}
+{{ configsetting("INVENTREE_SOCIAL_BACKENDS") }} A *list* of [social provider backends](https://docs.allauth.org/en/latest/installation/quickstart.html) enabled for the InvenTree instance |
+{{ configsetting("INVENTREE_SOCIAL_PROVIDERS") }} A *dict* of settings specific to the [installed providers](https://docs.allauth.org/en/latest/socialaccount/providers/index.html) |
+
In the example below, SSO provider modules are activated for *google*, *github* and *microsoft*. Specific configuration options are specified for the *microsoft* provider module:
diff --git a/docs/docs/settings/error_codes.md b/docs/docs/settings/error_codes.md
index b04849927d..120bbc5b56 100644
--- a/docs/docs/settings/error_codes.md
+++ b/docs/docs/settings/error_codes.md
@@ -105,6 +105,11 @@ A potentially critical mismatch between the backup environment and the current r
While using [invoke](../start/invoke.md), this can be overridden with the `--restore-allow-newer-version` flag.
+#### INVE-E17
+**Error rendering component**
+
+An error occurred while rendering a component in the frontend. Typically this is caused by a browser caching issue, and can be resolved by clearing the browser cache and refreshing the page. If the issue persists, check the browser console for more information about the error.
+
### INVE-W (InvenTree Warning)
Warnings - These are non-critical errors which should be addressed when possible.
diff --git a/docs/docs/settings/permissions.md b/docs/docs/settings/permissions.md
index d6b717ed62..6e169af8f5 100644
--- a/docs/docs/settings/permissions.md
+++ b/docs/docs/settings/permissions.md
@@ -28,7 +28,8 @@ InvenTree functionality is split into a number of distinct roles. A group will h
| Role | Description |
| ---- | ----------- |
| **Admin** | The *admin* role is related to assigning user permissions. |
-| **Build** | The *build* role is related to accessing Build Order and Bill of Materials data |
+| **BOM** | The *bom* role is related to accessing Bill of Materials data |
+| **Build** | The *build* role is related to accessing manufacturing / Build Order |
| **Part** | The *part* role is related to accessing Part data |
| **Part Category** | The *part category* role is related to accessing Part Category data |
| **Purchase Order** | The *purchase* role is related to accessing Purchase Order data |
diff --git a/docs/docs/settings/user.md b/docs/docs/settings/user.md
index faaa7aae8a..bd862cd695 100644
--- a/docs/docs/settings/user.md
+++ b/docs/docs/settings/user.md
@@ -27,6 +27,7 @@ The *Display Settings* screen shows general display configuration options:
{{ usersetting("FORMS_CLOSE_USING_ESCAPE") }}
{{ usersetting("DISPLAY_STOCKTAKE_TAB") }}
{{ usersetting("SHOW_FULL_CATEGORY_IN_TABLES")}}
+{{ usersetting("SHOW_BOM_SUBASSEMBLY_LEVELS")}}
{{ usersetting("ENABLE_LAST_BREADCRUMB") }}
{{ usersetting("SHOW_FULL_LOCATION_IN_TABLES") }}
diff --git a/docs/docs/start/advanced.md b/docs/docs/start/advanced.md
index 14d8af5a3c..9bacc83924 100644
--- a/docs/docs/start/advanced.md
+++ b/docs/docs/start/advanced.md
@@ -51,46 +51,44 @@ You can link your InvenTree server to an LDAP server.
Next you can start configuring the connection. Either use the config file or set the environment variables.
-| config key | ENV Variable | Description |
-| --- | --- | --- |
-| `ldap.enabled` | `INVENTREE_LDAP_ENABLED` | Set this to `True` to enable LDAP. |
-| `ldap.debug` | `INVENTREE_LDAP_DEBUG` | Set this to `True` to activate debug mode, useful for troubleshooting ldap configurations. |
-| `ldap.server_uri` | `INVENTREE_LDAP_SERVER_URI` | LDAP Server URI, e.g. `ldaps://example.org` |
-| `ldap.start_tls` | `INVENTREE_LDAP_START_TLS` | Enable TLS encryption over the standard LDAP port, [see](https://django-auth-ldap.readthedocs.io/en/latest/reference.html#auth-ldap-start-tls). (You can set TLS options via `ldap.global_options`) |
-| `ldap.bind_dn` | `INVENTREE_LDAP_BIND_DN` | LDAP bind dn, e.g. `cn=admin,dc=example,dc=org` |
-| `ldap.bind_password` | `INVENTREE_LDAP_BIND_PASSWORD` | LDAP bind password |
-| `ldap.search_base_dn` | `INVENTREE_LDAP_SEARCH_BASE_DN` | LDAP search base dn, e.g. `cn=Users,dc=example,dc=org` |
-| `ldap.user_dn_template` | `INVENTREE_LDAP_USER_DN_TEMPLATE` | use direct bind as auth user, `ldap.bind_dn` and `ldap.bin_password` is not necessary then, e.g. `uid=%(user)s,dc=example,dc=org` |
-| `ldap.global_options` | `INVENTREE_LDAP_GLOBAL_OPTIONS` | set advanced options as dict, e.g. TLS settings. For a list of all available options, see [python-ldap docs](https://www.python-ldap.org/en/latest/reference/ldap.html#ldap-options). (keys and values starting with OPT_ get automatically converted to `python-ldap` keys) |
-| `ldap.search_filter_str`| `INVENTREE_LDAP_SEARCH_FILTER_STR` | LDAP search filter str, default: `uid=%(user)s` |
-| `ldap.user_attr_map` | `INVENTREE_LDAP_USER_ATTR_MAP` | LDAP <-> InvenTree user attribute map, can be json if used as env, in yml directly specify the object. default: `{"first_name": "givenName", "last_name": "sn", "email": "mail"}` |
-| `ldap.always_update_user` | `INVENTREE_LDAP_ALWAYS_UPDATE_USER` | Always update the user on each login, default: `true` |
-| `ldap.cache_timeout` | `INVENTREE_LDAP_CACHE_TIMEOUT` | cache timeout to reduce traffic with LDAP server, default: `3600` (1h) |
-| `ldap.group_search` | `INVENTREE_LDAP_GROUP_SEARCH` | Base LDAP DN for group searching; required to enable group features |
-| `ldap.group_object_class` | `INVENTREE_LDAP_GROUP_OBJECT_CLASS` | The string to pass to the LDAP group search `(objectClass=<...>)`, default: `groupOfUniqueNames` |
-| `ldap.mirror_groups` | `INVENTREE_LDAP_MIRROR_GROUPS` | If `True`, mirror a user's LDAP group membership in the Django database, default: `False` |
-| `ldap.group_type_class` | `INVENTREE_LDAP_GROUP_TYPE_CLASS` | The group class to be imported from `django_auth_ldap.config` as a string, default: `'GroupOfUniqueNamesType'`|
-| `ldap.group_type_class_args` | `INVENTREE_LDAP_GROUP_TYPE_CLASS_ARGS` | A `list` of positional args to pass to the LDAP group type class, default `[]` |
-| `ldap.group_type_class_kwargs` | `INVENTREE_LDAP_GROUP_TYPE_CLASS_KWARGS` | A `dict` of keyword args to pass to the LDAP group type class, default `{'name_attr': 'cn'}` |
-| `ldap.require_group` | `INVENTREE_LDAP_REQUIRE_GROUP` | If set, users _must_ be in this group to log in to InvenTree |
-| `ldap.deny_group` | `INVENTREE_LDAP_DENY_GROUP` | If set, users _must not_ be in this group to log in to InvenTree |
-| `ldap.user_flags_by_group` | `INVENTREE_LDAP_USER_FLAGS_BY_GROUP` | LDAP group to InvenTree user flag map, can be json if used as env, in yml directly specify the object. See config template for example, default: `{}` |
+{{ configtable() }}
+{{ configsetting("INVENTREE_LDAP_ENABLED") }} Enable LDAP support |
+{{ configsetting("INVENTREE_LDAP_DEBUG") }} Set this to `True` to activate debug mode, useful for troubleshooting ldap configurations. |
+| `INVENTREE_LDAP_SERVER_URI` | `ldap.server_uri` | LDAP Server URI, e.g. `ldaps://example.org` |
+| `INVENTREE_LDAP_START_TLS` | `ldap.start_tls` | Enable TLS encryption over the standard LDAP port, [see](https://django-auth-ldap.readthedocs.io/en/latest/reference.html#auth-ldap-start-tls). (You can set TLS options via `ldap.global_options`) |
+| `INVENTREE_LDAP_BIND_DN` | `ldap.bind_dn` | LDAP bind dn, e.g. `cn=admin,dc=example,dc=org` |
+| `INVENTREE_LDAP_BIND_PASSWORD` | `ldap.bind_password` | LDAP bind password |
+| `INVENTREE_LDAP_SEARCH_BASE_DN` | `ldap.search_base_dn` | LDAP search base dn, e.g. `cn=Users,dc=example,dc=org` |
+| `INVENTREE_LDAP_USER_DN_TEMPLATE` | `ldap.user_dn_template` | use direct bind as auth user, `ldap.bind_dn` and `ldap.bin_password` is not necessary then, e.g. `uid=%(user)s,dc=example,dc=org` |
+| `INVENTREE_LDAP_GLOBAL_OPTIONS` | `ldap.global_options` | set advanced options as dict, e.g. TLS settings. For a list of all available options, see [python-ldap docs](https://www.python-ldap.org/en/latest/reference/ldap.html#ldap-options). (keys and values starting with OPT_ get automatically converted to `python-ldap` keys) |
+| `INVENTREE_LDAP_SEARCH_FILTER_STR`| `ldap.search_filter_str` | LDAP search filter str, default: `uid=%(user)s` |
+| `INVENTREE_LDAP_USER_ATTR_MAP` | `ldap.user_attr_map` | LDAP <-> InvenTree user attribute map, can be json if used as env, in yml directly specify the object. default: `{"first_name": "givenName", "last_name": "sn", "email": "mail"}` |
+| `INVENTREE_LDAP_ALWAYS_UPDATE_USER` | `ldap.always_update_user` | Always update the user on each login, default: `true` |
+| `INVENTREE_LDAP_CACHE_TIMEOUT` | `ldap.cache_timeout` | cache timeout to reduce traffic with LDAP server, default: `3600` (1h) |
+| `INVENTREE_LDAP_GROUP_SEARCH` | `ldap.group_search` | Base LDAP DN for group searching; required to enable group features |
+| `INVENTREE_LDAP_GROUP_OBJECT_CLASS` | `ldap.group_object_class` | The string to pass to the LDAP group search `(objectClass=<...>)`, default: `groupOfUniqueNames` |
+| `INVENTREE_LDAP_MIRROR_GROUPS` | `ldap.mirror_groups` | If `True`, mirror a user's LDAP group membership in the Django database, default: `False` |
+| `INVENTREE_LDAP_GROUP_TYPE_CLASS` | `ldap.group_type_class` | The group class to be imported from `django_auth_ldap.config` as a string, default: `'GroupOfUniqueNamesType'`|
+| `INVENTREE_LDAP_GROUP_TYPE_CLASS_ARGS` | `ldap.group_type_class_args` | A `list` of positional args to pass to the LDAP group type class, default `[]` |
+| `INVENTREE_LDAP_GROUP_TYPE_CLASS_KWARGS` | `ldap.group_type_class_kwargs` | A `dict` of keyword args to pass to the LDAP group type class, default `{'name_attr': 'cn'}` |
+| `INVENTREE_LDAP_REQUIRE_GROUP` | `ldap.require_group` | If set, users _must_ be in this group to log in to InvenTree |
+| `INVENTREE_LDAP_DENY_GROUP` | `ldap.deny_group` | If set, users _must not_ be in this group to log in to InvenTree |
+| `INVENTREE_LDAP_USER_FLAGS_BY_GROUP` | `ldap.user_flags_by_group` | LDAP group to InvenTree user flag map, can be json if used as env, in yml directly specify the object. See config template for example, default: `{}` |
## Tracing support
Starting with 0.14.0 InvenTree supports sending traces, logs and metrics to OpenTelemetry compatible endpoints (both HTTP and gRPC). A [list of vendors](https://opentelemetry.io/ecosystem/vendors) is available on the project site.
This can be used to track usage and performance of the InvenTree backend and connected services like databases, caches and more.
-| config key | ENV Variable | Description |
-| --- | --- | --- |
-| `tracing.enabled` | `INVENTREE_TRACING_ENABLED` | Set this to `True` to enable OpenTelemetry. |
-| `tracing.endpoint` | `INVENTREE_TRACING_ENDPOINT` | General endpoint for information (not specific trace/log url) |
-| `tracing.headers` | `INVENTREE_TRACING_HEADERS` | HTTP headers that should be send with every request (often used for authentication). Format as a dict. |
-| `tracing.auth.basic` | `INVENTREE_TRACING_AUTH_BASIC` | Auth headers that should be send with every requests (will be encoded to b64 and overwrite auth headers) |
-| `tracing.is_http` | `INVENTREE_TRACING_IS_HTTP` | Are the endpoints HTTP (True, default) or gRPC (False) |
-| `tracing.append_http` | `INVENTREE_TRACING_APPEND_HTTP` | Append default url routes (v1) to `tracing.endpoint` |
-| `tracing.console` | `INVENTREE_TRACING_CONSOLE` | Print out all exports (additionally) to the console for debugging. Do not use in production |
-| `tracing.resources` | `INVENTREE_TRACING_RESOURCES` | Add additional resources to all exports. This can be used to add custom tags to the traces. Format as a dict. |
+{{ configtable() }}
+{{ configsetting("INVENTREE_TRACING_ENABLED") }} Enable OpenTelemetry |
+{{ configsetting("INVENTREE_TRACING_ENDPOINT") }} General endpoint for information (not specific trace/log url) |
+{{ configsetting("INVENTREE_TRACING_HEADERS") }} HTTP headers that should be send with every request (often used for authentication). Format as a dict. |
+{{ configsetting("INVENTREE_TRACING_AUTH") }} Auth headers that should be send with every requests (will be encoded to b64 and overwrite auth headers) |
+{{ configsetting("INVENTREE_TRACING_IS_HTTP") }} Are the endpoints HTTP (True, default) or gRPC (False) |
+{{ configsetting("INVENTREE_TRACING_APPEND_HTTP") }} Append default url routes (v1) to `tracing.endpoint` |
+{{ configsetting("INVENTREE_TRACING_CONSOLE") }} Print out all exports (additionally) to the console for debugging. Do not use in production |
+{{ configsetting("INVENTREE_TRACING_RESOURCES") }} Add additional resources to all exports. This can be used to add custom tags to the traces. Format as a dict. |
## Multi Site Support
@@ -99,7 +97,6 @@ If your InvenTree instance is used in a multi-site environment, you can enable m
!!! tip "Django Documentation"
For more information on multi-site support, refer to the [Django documentation]({% include "django.html" %}/ref/contrib/sites/).
-| Environment Variable | Config Key | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_SITE_MULTI | site_multi | Enable multiple sites | False |
-| INVENTREE_SITE_ID | site_id | Specify a fixed site ID | _Not specified_ |
+{{ configtable() }}
+{{ configsetting("INVENTREE_SITE_MULTI") }} Enable multiple sites |
+{{ configsetting("INVENTREE_SITE_ID") }} Specify a fixed site ID |
diff --git a/docs/docs/start/backup.md b/docs/docs/start/backup.md
index e96cc0088a..fb6ae5f9c9 100644
--- a/docs/docs/start/backup.md
+++ b/docs/docs/start/backup.md
@@ -17,19 +17,19 @@ The django-dbbackup library provides [multiple configuration options](https://ar
The following configuration options are available for backup:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_BACKUP_STORAGE | backup_storage | Backup storage backend. Refer to the [storage backend documentation](#storage-backend). | django.core.files.storage.FileSystemStorage |
-| INVENTREE_BACKUP_DIR | backup_dir | Backup storage directory. | *No default* |
-| INVENTREE_BACKUP_OPTIONS | backup_options | Specific options for the selected storage backend (dict) | *No default* |
-| INVENTREE_BACKUP_CONNECTOR_OPTIONS | backup_connector_options | Specific options for the database connector (dict). Refer to the [database connector options](#database-connector). | *No default* |
-| INVENTREE_BACKUP_SEND_EMAIL | backup_send_email | If True, an email is sent to the site admin when an error occurs during a backup or restore procedure. | False |
-| INVENTREE_BACKUP_EMAIL_PREFIX | backup_email_prefix | Prefix for the subject line of backup-related emails. | `[InvenTree Backup]` |
-| INVENTREE_BACKUP_GPG_RECIPIENT | backup_gpg_recipient | Specify GPG recipient if using encryption for backups. | *No default* |
-| INVENTREE_BACKUP_DATE_FORMAT | backup_date_format | Date format string used to format timestamps in backup filenames. | `%Y-%m-%d-%H%M%S` |
-| INVENTREE_BACKUP_DATABASE_FILENAME_TEMPLATE | backup_database_filename_template | Template string used to generate database backup filenames. | `InvenTree-db-{datetime}.{extension}` |
-| INVENTREE_BACKUP_MEDIA_FILENAME_TEMPLATE | backup_media_filename_template | Template string used to generate media backup filenames. | `InvenTree-media-{datetime}.{extension}` |
-| INVENTREE_BACKUP_RESTORE_ALLOW_NEWER_VERSION | backup_restore_allow_newer_version | If True, allows restoring a backup created with a newer version of InvenTree. This is dangerous as it can lead to hard-to-debug data loss. | False |
+{{ configtable() }}
+{{ configsetting("INVENTREE_BACKUP_STORAGE") }} Backup storage backend. Refer to the [storage backend documentation](#storage-backend). |
+{{ configsetting("INVENTREE_BACKUP_DIR") }} Backup storage directory. |
+{{ configsetting("INVENTREE_BACKUP_OPTIONS") }} Specific options for the selected storage backend (dict) |
+{{ configsetting("INVENTREE_BACKUP_CONNECTOR_OPTIONS") }} Specific options for the database connector (dict). Refer to the [database connector options](#database-connector) |
+{{ configsetting("INVENTREE_BACKUP_SEND_EMAIL") }} If True, an email is sent to the site admin when an error occurs during a backup or restore procedure. |
+{{ configsetting("INVENTREE_BACKUP_EMAIL_PREFIX") }} Prefix for the subject line of backup-related emails. |
+{{ configsetting("INVENTREE_BACKUP_GPG_RECIPIENT") }} Specify GPG recipient if using encryption for backups. |
+{{ configsetting("INVENTREE_BACKUP_DATE_FORMAT") }} Date format string used to format timestamps in backup filenames. |
+{{ configsetting("INVENTREE_BACKUP_DATABASE_FILENAME_TEMPLATE") }} Template string used to generate database backup filenames.
+{{ configsetting("INVENTREE_BACKUP_MEDIA_FILENAME_TEMPLATE") }} Template string used to generate media backup filenames. |
+{{ configsetting("INVENTREE_BACKUP_RESTORE_ALLOW_NEWER_VERSION") }} If True, allows restoring a backup created with a newer version of InvenTree. This is dangerous as it can lead to hard-to-debug data loss. |
+
### Storage Backend
diff --git a/docs/docs/start/config.md b/docs/docs/start/config.md
index 37688941f0..25b7fd6639 100644
--- a/docs/docs/start/config.md
+++ b/docs/docs/start/config.md
@@ -46,6 +46,9 @@ Environment variable settings generally use the `INVENTREE_` prefix, and are all
!!! warning "Available Variables"
Some configuration options cannot be set via environment variables. Refer to the documentation below.
+!!! info "Environment Variable Priority"
+ Note that a provided environment variable will override the value provided in the configuration file.
+
#### List Values
To specify a list value in an environment variable, use a comma-separated list. For example, to specify a list of trusted origins:
@@ -58,14 +61,13 @@ INVENTREE_TRUSTED_ORIGINS='https://inventree.example.com:8443,https://stock.exam
The following basic options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_SITE_URL | site_url | Specify a fixed site URL | *Not specified* |
-| INVENTREE_TIMEZONE | timezone | Server timezone | UTC |
-| INVENTREE_ADMIN_ENABLED | admin_enabled | Enable the [django administrator interface]({% include "django.html" %}/ref/contrib/admin/) | True |
-| INVENTREE_ADMIN_URL | admin_url | URL for accessing [admin interface](../settings/admin.md) | admin |
-| INVENTREE_LANGUAGE | language | Default language | en-us |
-| INVENTREE_AUTO_UPDATE | auto_update | Database migrations will be run automatically | False |
+{{ configtable() }}
+{{ configsetting("INVENTREE_SITE_URL") }} Specify a fixed site URL |
+{{ configsetting("INVENTREE_TIMEZONE") }} Server timezone |
+{{ configsetting("INVENTREE_ADMIN_ENABLED") }} Enable the [django administrator interface]({% include "django.html" %}/ref/contrib/admin/) |
+{{ configsetting("INVENTREE_ADMIN_URL") }} URL for accessing [admin interface](../settings/admin.md) |
+{{ configsetting("INVENTREE_LANGUAGE") }} Default language |
+{{ configsetting("INVENTREE_AUTO_UPDATE") }} Database migrations will be run automatically |
### Site URL
@@ -89,18 +91,17 @@ With "auto update" enabled, the InvenTree server will automatically apply databa
The following debugging / logging options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_DEBUG | debug | Enable [debug mode](./index.md#debug-mode) | False |
-| INVENTREE_DEBUG_QUERYCOUNT | debug_querycount | Enable support for [django-querycount](../develop/index.md#django-querycount) middleware. | False |
-| INVENTREE_DEBUG_SILK | debug_silk | Enable support for [django-silk](../develop/index.md#django-silk) profiling tool. | False |
-| INVENTREE_DEBUG_SILK_PROFILING | debug_silk_profiling | Enable detailed profiling in django-silk | False |
-| INVENTREE_DB_LOGGING | db_logging | Enable logging of database messages | False |
-| INVENTREE_LOG_LEVEL | log_level | Set level of logging to terminal | WARNING |
-| INVENTREE_JSON_LOG | json_log | log as json | False |
-| INVENTREE_WRITE_LOG | write_log | Enable writing of log messages to file at config base | False |
-| INVENTREE_CONSOLE_LOG | console_log | Enable logging to console | True |
-| INVENTREE_SCHEMA_LEVEL | schema.level | Set level of added schema extensions detail (0-3) 0 = including no additional detail | 0 |
+{{ configtable() }}
+{{ configsetting("INVENTREE_DEBUG") }} Enable [debug mode](./index.md#debug-mode) |
+{{ configsetting("INVENTREE_DB_LOGGING") }} Enable logging of database messages |
+{{ configsetting("INVENTREE_LOG_LEVEL") }} Set level of logging to terminal |
+{{ configsetting("INVENTREE_JSON_LOG") }} Log messages as json |
+{{ configsetting("INVENTREE_WRITE_LOG") }} Enable writing of log messages to file at config base |
+{{ configsetting("INVENTREE_CONSOLE_LOG") }} Enable logging to console |
+{{ configsetting("INVENTREE_SCHEMA_LEVEL") }} Set level of added schema extensions detail (0-3) 0 = including no additional detail |
+{{ configsetting("INVENTREE_DEBUG_QUERYCOUNT") }} Enable support for [django-querycount](../develop/index.md#django-querycount) middleware. |
+{{ configsetting("INVENTREE_DEBUG_SILK") }} Enable support for [django-silk](../develop/index.md#django-silk) profiling tool. |
+| `INVENTREE_DEBUG_SILK_PROFILING` | `debug_silk_profiling` | False | Enable detailed profiling in django-silk |
### Debug Mode
@@ -118,26 +119,24 @@ Depending on how your InvenTree installation is configured, you will need to pay
!!! danger "Not Secure"
Allowing access from any host is not secure, and should be adjusted for your installation.
-!!! info "Environment Variables"
- Note that a provided environment variable will override the value provided in the configuration file.
-
!!! success "INVENTREE_SITE_URL"
If you have specified the `INVENTREE_SITE_URL`, this will automatically be used as a trusted CSRF and CORS host (see below).
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_ALLOWED_HOSTS | allowed_hosts | List of allowed hosts | `*` |
-| INVENTREE_TRUSTED_ORIGINS | trusted_origins | List of trusted origins. Refer to the [django documentation]({% include "django.html" %}/ref/settings/#csrf-trusted-origins) | Uses the *INVENTREE_SITE_URL* parameter, if set. Otherwise, an empty list. |
-| INVENTREE_CORS_ORIGIN_ALLOW_ALL | cors.allow_all | Allow all remote URLS for CORS checks | `False` |
-| INVENTREE_CORS_ORIGIN_WHITELIST | cors.whitelist | List of whitelisted CORS URLs. Refer to the [django-cors-headers documentation](https://github.com/adamchainz/django-cors-headers#cors_allowed_origins-sequencestr) | Uses the *INVENTREE_SITE_URL* parameter, if set. Otherwise, an empty list. |
-| INVENTREE_CORS_ORIGIN_REGEX | cors.regex | List of regular expressions for CORS whitelisted URL patterns | *Empty list* |
-| INVENTREE_CORS_ALLOW_CREDENTIALS | cors.allow_credentials | Allow cookies in cross-site requests | `True` |
-| INVENTREE_SITE_LAX_PROTOCOL | site_lax_protocol | Ignore protocol mismatches on INVE-E7 site checks | `True` |
-| 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_USE_X_FORWARDED_PROTO | use_x_forwarded_proto | Use forwarded protocol 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 | 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 |
+{{ configtable() }}
+{{ configsetting("INVENTREE_ALLOWED_HOSTS") }} List of allowed hosts |
+{{ configsetting("INVENTREE_TRUSTED_ORIGINS", default="Uses the *INVENTREE_SITE_URL* parameter, if set. Otherwise, an empty list.") }} List of trusted origins. Refer to the [django documentation]({% include "django.html" %}/ref/settings/#csrf-trusted-origins) |
+{{ configsetting("INVENTREE_CORS_ORIGIN_ALLOW_ALL") }} Allow all remote URLS for CORS checks |
+{{ configsetting("INVENTREE_CORS_ORIGIN_WHITELIST", default="Uses the *INVENTREE_SITE_URL* parameter, if set. Otherwise, an empty list.") }} List of whitelisted CORS URLs. Refer to the [django-cors-headers documentation](https://github.com/adamchainz/django-cors-headers#cors_allowed_origins-sequencestr) |
+{{ configsetting("INVENTREE_CORS_ORIGIN_REGEX") }} List of regular expressions for CORS whitelisted URL patterns |
+{{ configsetting("INVENTREE_CORS_ALLOW_CREDENTIALS") }} Allow cookies in cross-site requests |
+{{ configsetting("INVENTREE_SITE_LAX_PROTOCOL") }} Ignore protocol mismatches on INVE-E7 site checks |
+{{ configsetting("INVENTREE_USE_X_FORWARDED_HOST") }} Use forwarded host header |
+{{ configsetting("INVENTREE_USE_X_FORWARDED_PORT") }} Use forwarded port header |
+{{ configsetting("INVENTREE_USE_X_FORWARDED_PROTO") }} Use forwarded protocol header |
+| `INVENTREE_X_FORWARDED_PROTO_NAME` | `x_forwarded_proto_name` | `HTTP_X_FORWARDED_PROTO` | Name of the header to use for forwarded protocol information |
+{{ configsetting("INVENTREE_SESSION_COOKIE_SECURE") }} Enforce secure session cookies |
+{{ configsetting("INVENTREE_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. |
+
### Debug Mode
@@ -191,10 +190,9 @@ Django provides a powerful [administrator interface]({% include "django.html" %}
The following admin site configuration options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_ADMIN_ENABLED | admin_enabled | Enable the django administrator interface | True |
-| INVENTREE_ADMIN_URL | admin_url | URL for accessing the admin interface | admin |
+{{ configtable() }}
+{{ configsetting("INVENTREE_ADMIN_ENABLED") }} Enable the django administrator interface |
+{{ configsetting("INVENTREE_ADMIN_URL") }} URL for accessing the admin interface |
!!! warning "Security"
Changing the admin URL is a simple way to improve security, but it is not a substitute for proper security practices.
@@ -203,12 +201,11 @@ The following admin site configuration options are available:
An administrator account can be specified using the following environment variables:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_ADMIN_USER | admin_user | Admin account username | *Not specified* |
-| INVENTREE_ADMIN_PASSWORD | admin_password | Admin account password | *Not specified* |
-| INVENTREE_ADMIN_PASSWORD_FILE | admin_password_file | Admin account password file | *Not specified* |
-| INVENTREE_ADMIN_EMAIL | admin_email |Admin account email address | *Not specified* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_ADMIN_USER") }} Admin account username |
+{{ configsetting("INVENTREE_ADMIN_PASSWORD") }} Admin account password |
+{{ configsetting("INVENTREE_ADMIN_PASSWORD_FILE") }} Admin account password file |
+{{ configsetting("INVENTREE_ADMIN_EMAIL") }} Admin account email address |
You can either specify the password directly using `INVENTREE_ADMIN_PASSWORD`, or you can specify a file containing the password using `INVENTREE_ADMIN_PASSWORD_FILE` (this is useful for nix users).
@@ -238,12 +235,11 @@ A PEM-encoded file containing the oidc private key can be passed via the environ
If not specified via environment variables, the fallback files (automatically generated as part of InvenTree installation) will be used.
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_SECRET_KEY | secret_key | Raw secret key value | *Not specified* |
-| INVENTREE_SECRET_KEY_FILE | secret_key_file | File containing secret key value | *Not specified* |
-| INVENTREE_OIDC_PRIVATE_KEY | oidc_private_key | Raw private key value | *Not specified* |
-| INVENTREE_OIDC_PRIVATE_KEY_FILE | oidc_private_key_file | File containing private key value in PEM format | *Not specified* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_SECRET_KEY") }} Raw secret key value |
+{{ configsetting("INVENTREE_SECRET_KEY_FILE") }} File containing secret key value |
+{{ configsetting("INVENTREE_OIDC_PRIVATE_KEY") }} Raw private key value |
+{{ configsetting("INVENTREE_OIDC_PRIVATE_KEY_FILE", default="oidc.pem") }} File containing private key value in PEM format |
## Database Options
@@ -253,14 +249,14 @@ Database options are specified under the *database* heading in the configuration
The following database options can be configured:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_DB_ENGINE | database.ENGINE | Database backend | *Not specified* |
-| INVENTREE_DB_NAME | database.NAME | Database name | *Not specified* |
-| INVENTREE_DB_USER | database.USER | Database username (if required) | *Not specified* |
-| INVENTREE_DB_PASSWORD | database.PASSWORD | Database password (if required) | *Not specified* |
-| INVENTREE_DB_HOST | database.HOST | Database host address (if required) | *Not specified* |
-| INVENTREE_DB_PORT | database.PORT | Database host port (if required) | *Not specified* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_DB_ENGINE") }} Database backend |
+{{ configsetting("INVENTREE_DB_NAME") }} Database name |
+{{ configsetting("INVENTREE_DB_USER") }} Database username (if required) |
+{{ configsetting("INVENTREE_DB_PASSWORD") }} Database password (if required) |
+{{ configsetting("INVENTREE_DB_HOST") }} Database host address (if required) |
+{{ configsetting("INVENTREE_DB_PORT") }} Database host port (if required) |
+{{ configsetting("INVENTREE_DB_OPTIONS") }} Additional database options (as a JSON object) |
!!! tip "Database Password"
The value specified for `INVENTREE_DB_PASSWORD` should not contain comma `,` or colon `:` characters, otherwise the connection to the database may fail.
@@ -269,22 +265,20 @@ The following database options can be configured:
If running with a PostgreSQL database backend, the following additional options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_DB_TIMEOUT | database.timeout | Database connection timeout (s) | 2 |
-| INVENTREE_DB_TCP_KEEPALIVES | database.tcp_keepalives | TCP keepalive | 1 |
-| INVENTREE_DB_TCP_KEEPALIVES_IDLE | database.tcp_keepalives_idle | Idle TCP keepalive | 1 |
-| INVENTREE_DB_TCP_KEEPALIVES_INTERVAL | database.tcp_keepalives_interval | TCP keepalive interval | 1|
-| INVENTREE_DB_TCP_KEEPALIVES_COUNT | database.tcp_keepalives_count | TCP keepalive count | 5 |
-| INVENTREE_DB_ISOLATION_SERIALIZABLE | database.serializable | Database isolation level configured to "serializable" | False |
+{{ configtable() }}
+{{ configsetting("INVENTREE_DB_TIMEOUT", default="2") }} Database connection timeout (s) |
+| `INVENTREE_DB_TCP_KEEPALIVES` | database.tcp_keepalives | 1 | TCP keepalive |
+| `INVENTREE_DB_TCP_KEEPALIVES_IDLE` | database.tcp_keepalives_idle | 1 | Idle TCP keepalive |
+| `INVENTREE_DB_TCP_KEEPALIVES_INTERVAL` | database.tcp_keepalives_interval | 1| TCP keepalive interval |
+| `INVENTREE_DB_TCP_KEEPALIVES_COUNT` | database.tcp_keepalives_count | 5 | TCP keepalive count |
+| `INVENTREE_DB_ISOLATION_SERIALIZABLE` | database.serializable | False | Database isolation level configured to "serializable" |
### MySQL Settings
If running with a MySQL database backend, the following additional options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_DB_ISOLATION_SERIALIZABLE | database.serializable | Database isolation level configured to "serializable" | False |
+{{ configtable() }}
+| `INVENTREE_DB_ISOLATION_SERIALIZABLE` | database.serializable | False | Database isolation level configured to "serializable" |
### SQLite Settings
@@ -293,10 +287,9 @@ If running with a MySQL database backend, the following additional options are a
If running with a SQLite database backend, the following additional options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_DB_TIMEOUT | database.timeout | Database connection timeout (s) | 10 |
-| INVENTREE_DB_WAL_MODE | database.wal_mode | Enable Write-Ahead Logging (WAL) mode for SQLite databases | True |
+{{ configtable() }}
+{{ configsetting("INVENTREE_DB_TIMEOUT", default="10") }} Database connection timeout (s) |
+| `INVENTREE_DB_WAL_MODE` | database.wal_mode | True | Enable Write-Ahead Logging (WAL) mode for SQLite databases |
## Caching
@@ -314,20 +307,21 @@ Enabling global caching requires connection to a redis server (which is separate
The following cache settings are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_CACHE_ENABLED | cache.enabled | Enable redis caching | False |
-| INVENTREE_CACHE_HOST | cache.host | Cache server host | *Not specified* |
-| INVENTREE_CACHE_PORT | cache.port | Cache server port | 6379 |
-| INVENTREE_CACHE_PASSWORD | cache.password | Cache server password | none |
-| INVENTREE_CACHE_USER | cache.user | Cache server username | none |
-| INVENTREE_CACHE_CONNECT_TIMEOUT | cache.connect_timeout | Cache connection timeout (seconds) | 3 |
-| INVENTREE_CACHE_TIMEOUT | cache.timeout | Cache timeout (seconds) | 3 |
-| INVENTREE_CACHE_TCP_KEEPALIVE | cache.tcp_keepalive | Cache TCP keepalive | True |
-| INVENTREE_CACHE_KEEPALIVE_COUNT | cache.keepalive_count | Cache keepalive count | 5 |
-| INVENTREE_CACHE_KEEPALIVE_IDLE | cache.keepalive_idle | Cache keepalive idle | 1 |
-| INVENTREE_CACHE_KEEPALIVE_INTERVAL | cache.keepalive_interval | Cache keepalive interval | 1 |
-| INVENTREE_CACHE_USER_TIMEOUT | cache.user_timeout | Cache user timeout | 1000 |
+{{ configtable() }}
+{{ configsetting("INVENTREE_CACHE_ENABLED") }} Enable redis caching |
+{{ configsetting("INVENTREE_CACHE_HOST") }} Cache server host |
+{{ configsetting("INVENTREE_CACHE_PORT") }} Cache server port |
+{{ configsetting("INVENTREE_CACHE_PASSWORD") }} Cache server password |
+{{ configsetting("INVENTREE_CACHE_USER") }} Cache server username |
+{{ configsetting("INVENTREE_CACHE_DB") }} Cache server database index |
+{{ configsetting("INVENTREE_CACHE_CONNECT_TIMEOUT") }} Cache connection timeout (seconds) |
+{{ configsetting("INVENTREE_CACHE_TIMEOUT") }} Cache timeout (seconds) |
+{{ configsetting("INVENTREE_CACHE_TCP_KEEPALIVE") }} Cache TCP keepalive |
+{{ configsetting("INVENTREE_CACHE_KEEPALIVE_COUNT") }} Cache keepalive count |
+{{ configsetting("INVENTREE_CACHE_KEEPALIVE_IDLE") }} Cache keepalive idle |
+{{ configsetting("INVENTREE_CACHE_KEEPALIVE_INTERVAL") }} Cache keepalive interval |
+{{ configsetting("INVENTREE_CACHE_USER_TIMEOUT") }} Cache user timeout |
+
!!! tip "Cache Password"
The value specified for `INVENTREE_CACHE_PASSWORD` should not contain comma `,` or colon `:` characters, otherwise the connection to the cache server may fail.
@@ -338,17 +332,16 @@ To enable [email functionality](../settings/email.md), email settings must be co
The following email settings are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_EMAIL_BACKEND | email.backend | Email backend module | django.core.mail.backends.smtp.EmailBackend |
-| INVENTREE_EMAIL_HOST | email.host | Email server host | *Not specified* |
-| INVENTREE_EMAIL_PORT | email.port | Email server port | 25 |
-| INVENTREE_EMAIL_USERNAME | email.username | Email account username | *Not specified* |
-| INVENTREE_EMAIL_PASSWORD | email.password | Email account password | *Not specified* |
-| INVENTREE_EMAIL_TLS | email.tls | Enable STARTTLS support (commonly port 567) | False |
-| INVENTREE_EMAIL_SSL | email.ssl | Enable legacy SSL/TLS support (commonly port 465) | False |
-| INVENTREE_EMAIL_SENDER | email.sender | Sending email address | *Not specified* |
-| INVENTREE_EMAIL_PREFIX | email.prefix | Prefix for subject text | [InvenTree] |
+{{ configtable() }}
+{{ configsetting("INVENTREE_EMAIL_BACKEND") }} Email backend module |
+{{ configsetting("INVENTREE_EMAIL_HOST") }} Email server host |
+{{ configsetting("INVENTREE_EMAIL_PORT") }} Email server port |
+{{ configsetting("INVENTREE_EMAIL_USERNAME") }} Email account username |
+{{ configsetting("INVENTREE_EMAIL_PASSWORD") }} Email account password |
+{{ configsetting("INVENTREE_EMAIL_TLS") }} Enable STARTTLS support (commonly port 567) |
+{{ configsetting("INVENTREE_EMAIL_SSL") }} Enable legacy SSL/TLS support (commonly port 465) |
+{{ configsetting("INVENTREE_EMAIL_SENDER") }} Sending email address |
+{{ configsetting("INVENTREE_EMAIL_PREFIX") }} Prefix for subject text |
### Email Backend
@@ -365,11 +358,10 @@ The "sender" email address is the address from which InvenTree emails are sent (
InvenTree requires some external directories for storing files:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| 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* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_STATIC_ROOT") }} [Static files](./processes.md#static-files) directory |
+{{ configsetting("INVENTREE_MEDIA_ROOT") }} [Media files](./processes.md#media-files) directory |
+{{ configsetting("INVENTREE_BACKUP_DIR") }} Directory for backup files |
!!! tip "Serving Files"
Read the [proxy server documentation](./processes.md#proxy-server) for more information on hosting *static* and *media* files
@@ -403,43 +395,41 @@ Alternatively this location can be specified with the `INVENTREE_BACKUP_DIR` env
It is also possible to use alternative storage backends for static and media files, at the moment there is direct provide direct support bundled for S3 and SFTP. Google cloud storage and Azure blob storage would also be supported by the [used library](https://django-storages.readthedocs.io), but require additional packages to be installed.
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_STORAGE_TARGET | storage.target | Storage target to use for static and media files, valid options: local, s3, sftp | local |
+{{ configtable() }}
+{{ configsetting("INVENTREE_STORAGE_TARGET") }} Storage target to use for static and media files, valid options: local, s3, sftp |
+
#### S3
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_S3_ACCESS_KEY | storage.s3.access_key | Access key | *Not specified* |
-| INVENTREE_S3_SECRET_KEY | storage.s3.secret_key | Secret key | *Not specified* |
-| INVENTREE_S3_BUCKET_NAME | storage.s3.bucket_name | Bucket name, required by most providers | *Not specified* |
-| INVENTREE_S3_REGION_NAME | storage.s3.region_name | S3 region name | *Not specified* |
-| INVENTREE_S3_ENDPOINT_URL | storage.s3.endpoint_url | Custom S3 endpoint URL, defaults to AWS endpoints if not set | *Not specified* |
-| INVENTREE_S3_LOCATION | storage.s3.location | Sub-Location that should be used | inventree-server |
-| INVENTREE_S3_DEFAULT_ACL | storage.s3.default_acl | Default ACL for uploaded files, defaults to provider default if not set | *Not specified* |
-| INVENTREE_S3_VERIFY_SSL | storage.s3.verify_ssl | Verify SSL certificate for S3 endpoint | True |
-| INVENTREE_S3_OVERWRITE | storage.s3.overwrite | Overwrite existing files in S3 bucket | False |
-| INVENTREE_S3_VIRTUAL | storage.s3.virtual | Use virtual addressing style - by default False -> `path` style, `virtual` style if True | False |
+{{ configtable() }}
+| `INVENTREE_S3_ACCESS_KEY` | storage.s3.access_key | *Not specified* | Access key |
+| `INVENTREE_S3_SECRET_KEY` | storage.s3.secret_key | *Not specified* | Secret key |
+| `INVENTREE_S3_BUCKET_NAME` | storage.s3.bucket_name | *Not specified* | Bucket name, required by most providers |
+| `INVENTREE_S3_REGION_NAME` | storage.s3.region_name | *Not specified* | S3 region name |
+| `INVENTREE_S3_ENDPOINT_URL` | storage.s3.endpoint_url | *Not specified* | Custom S3 endpoint URL, defaults to AWS endpoints if not set |
+| `INVENTREE_S3_LOCATION` | storage.s3.location | inventree-server | Sub-Location that should be used |
+| `INVENTREE_S3_DEFAULT_ACL` | storage.s3.default_acl | *Not specified* | Default ACL for uploaded files, defaults to provider default if not set |
+| `INVENTREE_S3_VERIFY_SSL` | storage.s3.verify_ssl | True | Verify SSL certificate for S3 endpoint |
+| `INVENTREE_S3_OVERWRITE` | storage.s3.overwrite | False | Overwrite existing files in S3 bucket |
+| `INVENTREE_S3_VIRTUAL` | storage.s3.virtual | False | Use virtual addressing style - by default False -> `path` style, `virtual` style if True |
#### SFTP
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_SFTP_HOST | storage.sftp.host | SFTP host | *Not specified* |
-| INVENTREE_SFTP_PARAMS | storage.sftp.params | SFTP connection parameters, see https://docs.paramiko.org/en/latest/api/client.html#paramiko.client.SSHClient.connect; e.g. `{'port': 22, 'user': 'usr', 'password': 'pwd'}` | *Not specified* |
-| INVENTREE_SFTP_UID | storage.sftp.uid | SFTP user ID - not required | *Not specified* |
-| INVENTREE_SFTP_GID | storage.sftp.gid | SFTP group ID - not required | *Not specified* |
-| INVENTREE_SFTP_LOCATION | storage.sftp.location | Sub-Location that should be used | inventree-server |
+{{ configtable() }}
+| `INVENTREE_SFTP_HOST` | storage.sftp.host | *Not specified* | SFTP host |
+| `INVENTREE_SFTP_PARAMS` | storage.sftp.params | *Not specified* | SFTP connection parameters, see https://docs.paramiko.org/en/latest/api/client.html#paramiko.client.SSHClient.connect; e.g. `{'port': 22, 'user': 'usr', 'password': 'pwd'}` |
+| `INVENTREE_SFTP_UID` | storage.sftp.uid | *Not specified* | SFTP user ID - not required |
+| `INVENTREE_SFTP_GID` | storage.sftp.gid | *Not specified* | SFTP group ID - not required |
+| `INVENTREE_SFTP_LOCATION` | storage.sftp.location | inventree-server | Sub-Location that should be used |
## Authentication
InvenTree provides allowance for additional sign-in options. The following options are not enabled by default, and care must be taken by the system administrator when configuring these settings.
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_MFA_ENABLED | mfa_enabled | Enable or disable multi-factor authentication support for the InvenTree server | True |
-| INVENTREE_MFA_SUPPORTED_TYPES | mfa_supported_types | List of supported multi-factor authentication types | recovery_codes,totp,webauthn |
+{{ configtable() }}
+{{ configsetting("INVENTREE_MFA_ENABLED") }} Enable multi-factor authentication support for the InvenTree server |
+{{ configsetting("INVENTREE_MFA_SUPPORTED_TYPES") }} List of supported multi-factor authentication types |
+{{ configsetting("INVENTREE_USE_JWT") }} Enable support for JSON Web Tokens (JWT) for authentication |
### Single Sign On
@@ -454,11 +444,10 @@ There are multiple configuration parameters which must be specified (either in y
The login-experience can be altered with the following settings:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_LOGIN_CONFIRM_DAYS | login_confirm_days | Duration for which confirmation links are valid | 3 |
-| INVENTREE_LOGIN_ATTEMPTS | login_attempts | Count of allowed login attempts before blocking user | 5 |
-| INVENTREE_LOGIN_DEFAULT_HTTP_PROTOCOL | login_default_protocol | Default protocol to use for login callbacks (e.g. using [SSO](#single-sign-on)) | Uses the protocol specified in `INVENTREE_SITE_URL`, or defaults to *http* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_LOGIN_CONFIRM_DAYS") }} Duration for which confirmation links are valid |
+{{ configsetting("INVENTREE_LOGIN_ATTEMPTS") }} Count of allowed login attempts before blocking user |
+{{ configsetting("INVENTREE_LOGIN_DEFAULT_HTTP_PROTOCOL", default="Uses the protocol specified in `INVENTREE_SITE_URL`, or defaults to *http*") }} Default protocol to use for login callbacks (e.g. using [SSO](#single-sign-on)) |
!!! tip "Default Protocol"
If you have specified `INVENTREE_SITE_URL`, the default protocol will be used from that setting. Otherwise, the default protocol will be *http*.
@@ -471,22 +460,20 @@ Custom authentication backends can be used by specifying them here. These can fo
The following options are available for configuring the InvenTree [background worker process](./processes.md#background-worker):
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_BACKGROUND_WORKERS | background.workers | Number of background worker processes | 1 |
-| INVENTREE_BACKGROUND_TIMEOUT | background.timeout | Timeout for background worker tasks (seconds) | 90 |
-| INVENTREE_BACKGROUND_RETRY | background.retry | Time to wait before retrying a background task (seconds) | 300 |
-| INVENTREE_BACKGROUND_MAX_ATTEMPTS | background.max_attempts | Maximum number of attempts for a background task | 5 |
+{{ configtable() }}
+{{ configsetting("INVENTREE_BACKGROUND_WORKERS") }} Number of background worker processes |
+{{ configsetting("INVENTREE_BACKGROUND_TIMEOUT") }} Timeout for background worker tasks (seconds) |
+{{ configsetting("INVENTREE_BACKGROUND_RETRY") }} Time to wait before retrying a background task (seconds) |
+{{ configsetting("INVENTREE_BACKGROUND_MAX_ATTEMPTS") }} Maximum number of attempts for a background task |
## Sentry Integration
The InvenTree server can be integrated with the [sentry.io](https://sentry.io) monitoring service, for error logging and performance tracking.
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_SENTRY_ENABLED | sentry_enabled | Enable sentry.io integration | False |
-| INVENTREE_SENTRY_DSN | sentry_dsn | Sentry DSN (data source name) key | *Defaults to InvenTree developer key* |
-| INVENTREE_SENTRY_SAMPLE_RATE | sentry_sample_rate | How often to send data samples | 0.1 |
+{{ configtable() }}
+{{ configsetting("INVENTREE_SENTRY_ENABLED") }} Enable sentry.io integration |
+{{ configsetting("INVENTREE_SENTRY_DSN", default="Defaults to InvenTree developer key") }} Sentry DSN (data source name) key |
+{{ configsetting("INVENTREE_SENTRY_SAMPLE_RATE") }} How often to send data samples (seconds) |
!!! info "Default DSN"
If enabled with the default DSN, server errors will be logged to a sentry.io account monitored by the InvenTree developers.
@@ -495,13 +482,11 @@ The InvenTree server can be integrated with the [sentry.io](https://sentry.io) m
The logo and custom messages can be changed/set:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_CUSTOM_LOGO | customize.logo | Path to custom logo in the static files directory | *Not specified* |
-| INVENTREE_CUSTOM_SPLASH | customize.splash | Path to custom splash screen in the static files directory | *Not specified* |
-| INVENTREE_CUSTOMIZE | customize.site_header | Custom site header in the Django admin | InvenTree Admin |
-| INVENTREE_CUSTOMIZE | customize.login_message | Custom message for login page | *Not specified* |
-| INVENTREE_CUSTOMIZE | customize.navbar_message | Custom message for navbar | *Not specified* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_CUSTOM_LOGO") }} Path to custom logo in the static files directory |
+{{ configsetting("INVENTREE_CUSTOM_SPLASH") }} Path to custom splash screen in the static files directory |
+{{ configsetting("INVENTREE_SITE_HEADER") }} Custom header text for the django admin page |
+{{ configsetting("INVENTREE_CUSTOMIZE") }} JSON object containing custom messages for the login page, navbar, and Django admin site |
The INVENTREE_CUSTOMIZE environment variable must contain a json object with the keys from the table above and
the wanted values. Example:
@@ -546,15 +531,15 @@ INVENTREE_FRONTEND_SETTINGS='{"mobile_mode": "allow-ignore"}'
The following [plugin](../plugins/index.md) configuration options are available:
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_PLUGINS_ENABLED | plugins_enabled | Enable plugin support | False |
-| INVENTREE_PLUGIN_NOINSTALL | plugin_noinstall | Disable Plugin installation via API - only use plugins.txt file | False |
-| INVENTREE_PLUGIN_FILE | plugins_plugin_file | Location of plugin installation file | *Not specified* |
-| INVENTREE_PLUGIN_DIR | plugins_plugin_dir | Location of external plugin directory | *Not specified* |
-| INVENTREE_PLUGINS_MANDATORY | plugins_mandatory | List of [plugins which are considered mandatory](../plugins/index.md#mandatory-third-party-plugins) | *Not specified* |
-| INVENTREE_PLUGIN_DEV_SLUG | plugin_dev.slug | Specify plugin to run in [development mode](../plugins/creator.md#backend-configuration) | *Not specified* |
-| INVENTREE_PLUGIN_DEV_HOST | plugin_dev.host | Specify host for development mode plugin | http://localhost:5174 |
+{{ configtable() }}
+{{ configsetting("INVENTREE_PLUGINS_ENABLED") }} Enable plugin support |
+{{ configsetting("INVENTREE_PLUGIN_NOINSTALL") }} Disable Plugin installation via API |
+{{ configsetting("INVENTREE_PLUGIN_FILE") }} Location of plugin installation file |
+| `INVENTREE_PLUGIN_DIR` | `plugin_dir` | *Not specified* | Location of external plugin directory |
+{{ configsetting("INVENTREE_PLUGIN_RETRY") }} Number of tries to attempt loading a plugin before giving up |
+{{ configsetting("INVENTREE_PLUGINS_MANDATORY") }} List of [plugins which are considered mandatory](../plugins/index.md#mandatory-third-party-plugins) |
+{{ configsetting("INVENTREE_PLUGIN_DEV_SLUG") }} Specify plugin to run in [development mode](../plugins/creator.md#backend-configuration) |
+{{ configsetting("INVENTREE_PLUGIN_DEV_HOST") }} Specify host for development mode plugin |
## Override Global Settings
@@ -562,6 +547,12 @@ If required, [global settings values](../settings/global.md#override-global-sett
To override global settings, provide a "dictionary" of settings overrides in the configuration file, or via an environment variable.
-| Environment Variable | Configuration File | Description | Default |
-| --- | --- | --- | --- |
-| INVENTREE_GLOBAL_SETTINGS | global_settings | JSON object containing global settings overrides | *Not specified* |
+{{ configtable() }}
+{{ configsetting("INVENTREE_GLOBAL_SETTINGS") }} JSON object containing global settings overrides |
+
+## Other Settings
+
+Other available settings, not categorized above, are detailed in the table below:
+
+{{ configtable() }}
+{{ configsetting("INVENTREE_EXTRA_URL_SCHEMES") }} Allow additional URL schemes for URL validation |
diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md
index cb4f29da35..44f60ffba1 100644
--- a/docs/docs/start/docker_install.md
+++ b/docs/docs/start/docker_install.md
@@ -87,13 +87,7 @@ If you are creating the initial database, you need to create an admin (superuser
docker compose run inventree-server invoke superuser
```
-Alternatively, admin account details can be specified in the `.env` file, removing the need for this manual step:
-
-| Variable | Description |
-| --- | --- |
-| INVENTREE_ADMIN_USER | Admin account username |
-| INVENTREE_ADMIN_PASSWORD | Admin account password |
-| INVENTREE_ADMIN_EMAIL | Admin account email address |
+Alternatively, admin account details can be specified using environment variables, or in the `.env` file, removing the need for this manual step. Refer to the [configuration documentation](./config.md#administrator-account) for more information.
!!! warning "Scrub Account Data"
Ensure that the admin account credentials are removed from the `.env` file after the first run, for security.
@@ -241,9 +235,9 @@ By default, the Dockerized InvenTree web server binds to all available network i
This can be adjusted using the following environment variables:
| Environment Variable | Default |
-| --- | --- | --- | --- |
-| INVENTREE_WEB_ADDR | 0.0.0.0 |
-| INVENTREE_WEB_PORT | 8000 |
+| --- | --- |
+| `INVENTREE_WEB_ADDR` | 0.0.0.0 |
+| `INVENTREE_WEB_PORT` | 8000 |
These variables are combined in the [Dockerfile]({{ sourcefile("contrib/container/Dockerfile") }}) to build the bind string passed to the InvenTree server on startup.
diff --git a/docs/docs/start/installer.md b/docs/docs/start/installer.md
index 997a0fefc8..55f367bc90 100644
--- a/docs/docs/start/installer.md
+++ b/docs/docs/start/installer.md
@@ -3,9 +3,15 @@ title: InvenTree Installer
---
## Installer
+
The InvenTree installer automates the installation procedure for a production InvenTree server.
-Supported OSs are Debian 10, 11, 12 and Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS.
+The installer supports the following Linux distributions:
+
+- Debian 11, 12
+- Ubuntu 22.04 LTS, 24.04 LTS
+
+Support for other OS versions is not currently planned. If you are using a different distribution, you can still follow the [docker](./docker.md) or [bare metal](./install.md) installation instructions.
### Quick Script
diff --git a/docs/main.py b/docs/main.py
index c3d8cba512..148e61be65 100644
--- a/docs/main.py
+++ b/docs/main.py
@@ -34,6 +34,7 @@ for key in [
print(f' - {key}: {val}')
# Cached settings dict values
+global CONFIG_SETTINGS
global GLOBAL_SETTINGS
global USER_SETTINGS
global TAGS
@@ -64,6 +65,7 @@ with open(settings_file, encoding='utf-8') as sf:
GLOBAL_SETTINGS = settings['global']
USER_SETTINGS = settings['user']
+ CONFIG_SETTINGS = settings['config']
# Tags
with open(gen_base.joinpath('inventree_tags.yml'), encoding='utf-8') as f:
@@ -377,6 +379,34 @@ def define_env(env):
return rendersetting(key, setting, short=short)
+ @env.macro
+ def configtable():
+ """Generate a header for the configuration settings table."""
+ return '| Environment Variable | Configuration File | Default | Description |\n| --- | --- | --- | --- |'
+
+ @env.macro
+ def configsetting(key: str, default: Optional[str] = None):
+ """Extract information on a particular configuration setting.
+
+ Arguments:
+ key: The name of the configuration setting to extract information for.
+ default: An optional default value to override the setting's default display value.
+ """
+ global CONFIG_SETTINGS
+ setting = CONFIG_SETTINGS[key]
+
+ observe_setting(key, 'config')
+
+ cfg_key = setting.get('config_key', None)
+ cfg_key = f'`{cfg_key}`' if cfg_key else '-'
+
+ default = default or setting.get('default_value', None)
+
+ if default is None:
+ default = '*Not Specified*'
+
+ return f'| {key} | {cfg_key} | {default} |'
+
@env.macro
def tags_and_filters():
"""Return a list of all tags and filters."""
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index a79df4ce30..82bb9cd772 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -150,6 +150,7 @@ nav:
- Bill of Materials: manufacturing/bom.md
- Build Orders: manufacturing/build.md
- Build Outputs: manufacturing/output.md
+ - Required Quantity: manufacturing/required.md
- Allocating Stock: manufacturing/allocate.md
- External Manufacturing: manufacturing/external.md
- Example Build Order: manufacturing/example.md
@@ -263,6 +264,7 @@ nav:
- Stock: app/stock.md
- Purchase Orders: app/po.md
- Sales Orders: app/so.md
+ - Build Orders: app/build.md
- Settings: app/settings.md
- Privacy: app/privacy.md
- Translation: app/translation.md
diff --git a/docs/requirements.in b/docs/requirements.in
index 708b250cba..7e88513072 100644
--- a/docs/requirements.in
+++ b/docs/requirements.in
@@ -6,5 +6,5 @@ mkdocs-redirects
mkdocs-simple-hooks>=0.1,<1.0
mkdocs-include-markdown-plugin
neoteroi-mkdocs
-mkdocstrings[python]>=0.25.0,<=1.0.3
+mkdocstrings[python]<=1.0.4,>=1.0.4
mkdocs-mermaid2-plugin
diff --git a/docs/requirements.txt b/docs/requirements.txt
index a8a1ba1f96..bd7e057613 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -169,9 +169,9 @@ charset-normalizer==3.4.7 \
# via
# -c src/backend/requirements.txt
# requests
-click==8.3.1 \
- --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \
- --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
+click==8.3.2 \
+ --hash=sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5 \
+ --hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
# via
# mkdocs
# neoteroi-mkdocs
@@ -202,9 +202,9 @@ gitdb==4.0.12 \
--hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \
--hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf
# via gitpython
-gitpython==3.1.46 \
- --hash=sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f \
- --hash=sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058
+gitpython==3.1.47 \
+ --hash=sha256:489f590edfd6d20571b2c0e72c6a6ac6915ee8b8cd04572330e3842207a78905 \
+ --hash=sha256:dba27f922bd2b42cb54c87a8ab3cb6beb6bf07f3d564e21ac848913a05a8a3cd
# via mkdocs-git-revision-date-localized-plugin
griffelib==2.0.0 \
--hash=sha256:01284878c966508b6d6f1dbff9b6fa607bc062d8261c5c7253cb285b06422a7f
@@ -430,9 +430,9 @@ mkdocs-simple-hooks==0.1.5 \
--hash=sha256:dddbdf151a18723c9302a133e5cf79538be8eb9d274e8e07d2ac3ac34890837c \
--hash=sha256:efeabdbb98b0850a909adee285f3404535117159d5cb3a34f541d6eaa644d50a
# via -r docs/requirements.in
-mkdocstrings[python]==1.0.3 \
- --hash=sha256:0d66d18430c2201dc7fe85134277382baaa15e6b30979f3f3bdbabd6dbdb6046 \
- --hash=sha256:ab670f55040722b49bb45865b2e93b824450fb4aef638b00d7acb493a9020434
+mkdocstrings[python]==1.0.4 \
+ --hash=sha256:3969a6515b77db65fd097b53c1b7aa4ae840bd71a2ee62a6a3e89503446d7172 \
+ --hash=sha256:63464b4b29053514f32a1dbbf604e52876d5e638111b0c295ab7ed3cac73ca9b
# via
# -r docs/requirements.in
# mkdocstrings-python
@@ -444,9 +444,9 @@ neoteroi-mkdocs==1.2.0 \
--hash=sha256:58e25cb1b9db093ffa8d12bdb33264bf567cac30fb964b56e0a493efa749ad6e \
--hash=sha256:91b6aa95a4e46c9bb93e00e021d2044cb0c7d80c0b4600434ff8f440d613a0a8
# via -r docs/requirements.in
-packaging==26.0 \
- --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \
- --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+packaging==26.1 \
+ --hash=sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f \
+ --hash=sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de
# via
# -c src/backend/requirements.txt
# mkdocs
@@ -463,9 +463,9 @@ pathspec==1.0.4 \
# mkdocs
# mkdocs-macros-plugin
# properdocs
-platformdirs==4.9.4 \
- --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
- --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
+platformdirs==4.9.6 \
+ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
+ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
# via
# -c src/backend/requirements.txt
# mkdocs-get-deps
@@ -591,9 +591,9 @@ requests==2.33.1 \
# mkdocs-macros-plugin
# mkdocs-material
# mkdocs-mermaid2-plugin
-rich==14.3.3 \
- --hash=sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d \
- --hash=sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b
+rich==15.0.0 \
+ --hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \
+ --hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36
# via neoteroi-mkdocs
setuptools==82.0.1 \
--hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \
diff --git a/pyproject.toml b/pyproject.toml
index 9ce50f3710..63a0fd5a6e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -109,12 +109,13 @@ unresolved-reference="ignore" # 21 # see https://github.com/astral-sh/ty/issues
unresolved-attribute="ignore" # 505 # need Plugin Mixin typing
call-non-callable="ignore" # 8 ##
invalid-assignment="ignore" # 17 # need to wait for better django field stubs
-invalid-method-override="ignore" # 99
+# invalid-method-override="ignore" # 99
invalid-return-type="ignore" # 22 ##
-possibly-missing-attribute="ignore" # 25 # https://github.com/astral-sh/ty/issues/164
+# possibly-missing-attribute="ignore" # 25 # https://github.com/astral-sh/ty/issues/164
unknown-argument="ignore" # 3 # need to wait for better django field stubs
invalid-argument-type="ignore" # 49
no-matching-overload="ignore" # 3 # need to wait for betterdjango field stubs
+possibly-unbound-attribute="ignore" # 21
[tool.coverage.run]
source = ["src/backend/InvenTree", "InvenTree"]
diff --git a/src/backend/InvenTree/InvenTree/api.py b/src/backend/InvenTree/InvenTree/api.py
index dfc73236b7..87edf69474 100644
--- a/src/backend/InvenTree/InvenTree/api.py
+++ b/src/backend/InvenTree/InvenTree/api.py
@@ -297,7 +297,7 @@ class InfoView(APIView):
'instance': InvenTree.version.inventreeInstanceName(),
'apiVersion': InvenTree.version.inventreeApiVersion(),
'worker_running': is_worker_running(),
- 'worker_count': settings.BACKGROUND_WORKER_COUNT,
+ 'worker_count': settings.Q_CLUSTER['workers'],
'worker_pending_tasks': self.worker_pending_tasks(),
'plugins_enabled': settings.PLUGINS_ENABLED,
'plugins_install_disabled': settings.PLUGINS_INSTALL_DISABLED,
diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py
index 1400e67eb4..4c7c25654e 100644
--- a/src/backend/InvenTree/InvenTree/api_version.py
+++ b/src/backend/InvenTree/InvenTree/api_version.py
@@ -1,11 +1,25 @@
"""InvenTree API version information."""
# InvenTree API version
-INVENTREE_API_VERSION = 478
+INVENTREE_API_VERSION = 482
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
INVENTREE_API_TEXT = """
+v482 -> 2026-03-15 : https://github.com/inventree/InvenTree/pull/11540
+ - Add id to the ordering fields of the Parts model
+
+v481 -> 2026-04-28 : https://github.com/inventree/InvenTree/pull/11825
+ - Adds new "bom" ruleset and associated permissions for BOM management, separate from the "part" ruleset which remains focused on part management
+
+v480 -> 2026-04-27 : https://github.com/inventree/InvenTree/pull/11816
+ - The "issued_by" field on the Build API endpoint is now read-only, and is automatically set to the current user when a build is created
+
+v479 -> 2026-04-11 : https://github.com/inventree/InvenTree/pull/11723
+ - POST /api/notifications/readall/ now requires a POST action
+ - POST /api/admin/email/test/ - now returns a 200 on. a successful test
+ - GET /api/notifications/ - now uses user-centric permissions, not a general read
+
v478 -> 2026-04-11 : https://github.com/inventree/InvenTree/pull/11073
- Add OptionalField class for cleaner handling of optional fields in serializers
diff --git a/src/backend/InvenTree/InvenTree/cache.py b/src/backend/InvenTree/InvenTree/cache.py
index 00214610cc..07547eb667 100644
--- a/src/backend/InvenTree/InvenTree/cache.py
+++ b/src/backend/InvenTree/InvenTree/cache.py
@@ -50,6 +50,11 @@ def cache_user():
return cache_setting('user', None)
+def cache_db():
+ """Return the cache database index."""
+ return cache_setting('db', 0, typecast=int)
+
+
def is_global_cache_enabled() -> bool:
"""Check if the global cache is enabled.
@@ -89,49 +94,51 @@ def get_cache_config(global_cache: bool) -> dict:
Returns:
A dictionary containing the cache configuration options.
"""
- if global_cache:
- # Build Redis URL with optional password
- password = cache_password()
- user = cache_user() or ''
+ # Build Redis URL with optional password
+ password = cache_password()
+ user = cache_user() or ''
+ host = cache_host()
+ port = cache_port()
+ db = cache_db()
- if password:
- redis_url = f'redis://{user}:{password}@{cache_host()}:{cache_port()}/0'
- else:
- redis_url = f'redis://{cache_host()}:{cache_port()}/0'
+ if password:
+ redis_url = f'redis://{user}:{password}@{host}:{port}/{db}'
+ else:
+ redis_url = f'redis://{host}:{port}/{db}'
- keepalive_options = {
- 'TCP_KEEPCNT': cache_setting('keepalive_count', 5, typecast=int),
- 'TCP_KEEPIDLE': cache_setting('keepalive_idle', 1, typecast=int),
- 'TCP_KEEPINTVL': cache_setting('keepalive_interval', 1, typecast=int),
- 'TCP_USER_TIMEOUT': cache_setting('user_timeout', 1000, typecast=int),
- }
+ keepalive_options = {
+ 'TCP_KEEPCNT': cache_setting('keepalive_count', 5, typecast=int),
+ 'TCP_KEEPIDLE': cache_setting('keepalive_idle', 1, typecast=int),
+ 'TCP_KEEPINTVL': cache_setting('keepalive_interval', 1, typecast=int),
+ 'TCP_USER_TIMEOUT': cache_setting('user_timeout', 1000, typecast=int),
+ }
- return {
- 'BACKEND': 'django_redis.cache.RedisCache',
- 'LOCATION': redis_url,
- 'OPTIONS': {
- 'CLIENT_CLASS': 'django_redis.client.DefaultClient',
- 'SOCKET_CONNECT_TIMEOUT': cache_setting(
- 'connect_timeout', 5, typecast=int
- ),
- 'SOCKET_TIMEOUT': cache_setting('timeout', 3, typecast=int),
- 'CONNECTION_POOL_KWARGS': {
- 'socket_keepalive': cache_setting(
- 'tcp_keepalive', True, typecast=bool
- ),
- 'socket_keepalive_options': {
- # Only include options which are available on this platform
- # e.g. MacOS does not have TCP_KEEPIDLE and TCP_USER_TIMEOUT
- getattr(socket, key): value
- for key, value in keepalive_options.items()
- if hasattr(socket, key)
- },
+ global_cache_config = {
+ 'BACKEND': 'django_redis.cache.RedisCache',
+ 'LOCATION': redis_url,
+ 'OPTIONS': {
+ 'CLIENT_CLASS': 'django_redis.client.DefaultClient',
+ 'SOCKET_CONNECT_TIMEOUT': cache_setting('connect_timeout', 5, typecast=int),
+ 'SOCKET_TIMEOUT': cache_setting('timeout', 3, typecast=int),
+ 'CONNECTION_POOL_KWARGS': {
+ 'socket_keepalive': cache_setting('tcp_keepalive', True, typecast=bool),
+ 'socket_keepalive_options': {
+ # Only include options which are available on this platform
+ # e.g. MacOS does not have TCP_KEEPIDLE and TCP_USER_TIMEOUT
+ getattr(socket, key): value
+ for key, value in keepalive_options.items()
+ if hasattr(socket, key)
},
},
- }
+ },
+ }
- # Default: Use django local memory cache
- return {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}
+ if global_cache:
+ # Only return the global cache configuration if the global cache is enabled
+ return global_cache_config
+ else:
+ # Default: Use django local memory cache
+ return {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}
def create_session_cache(request) -> None:
diff --git a/src/backend/InvenTree/InvenTree/config.py b/src/backend/InvenTree/InvenTree/config.py
index d71d80e567..aa54bb6014 100644
--- a/src/backend/InvenTree/InvenTree/config.py
+++ b/src/backend/InvenTree/InvenTree/config.py
@@ -9,7 +9,7 @@ import shutil
import string
import sys
from pathlib import Path
-from typing import Optional
+from typing import Any, Optional
logger = logging.getLogger('inventree')
CONFIG_DATA = None
@@ -254,6 +254,24 @@ def do_typecast(value, type, var_name=None):
return value
+def get_config_value(config_key: str) -> Optional[Any]:
+ """Helper function to retrieve a configuration value from the config file."""
+ cfg_data = load_config_data()
+
+ result = None
+
+ # Hack to allow 'path traversal' in configuration file
+ for key in config_key.strip().split('.'):
+ if type(cfg_data) is not dict or key not in cfg_data:
+ result = None
+ break
+
+ result = cfg_data[key]
+ cfg_data = cfg_data[key]
+
+ return result
+
+
def get_setting(env_var=None, config_key=None, default_value=None, typecast=None):
"""Helper function for retrieving a configuration setting value.
@@ -270,10 +288,13 @@ def get_setting(env_var=None, config_key=None, default_value=None, typecast=None
def set_metadata(source: str):
"""Set lookup metadata for the setting."""
+ global CONFIG_LOOKUPS
+
key = env_var or config_key
CONFIG_LOOKUPS[key] = {
'env_var': env_var,
'config_key': config_key,
+ 'default_value': default_value,
'source': source,
'accessed': datetime.datetime.now(),
}
@@ -288,18 +309,7 @@ def get_setting(env_var=None, config_key=None, default_value=None, typecast=None
# Next, try to load from configuration file
if config_key is not None:
- cfg_data = load_config_data()
-
- result = None
-
- # Hack to allow 'path traversal' in configuration file
- for key in config_key.strip().split('.'):
- if type(cfg_data) is not dict or key not in cfg_data:
- result = None
- break
-
- result = cfg_data[key]
- cfg_data = cfg_data[key]
+ result = get_config_value(config_key)
if result is not None:
set_metadata('yaml')
@@ -544,13 +554,14 @@ def get_frontend_settings(debug=True):
'INVENTREE_FRONTEND_SETTINGS', 'frontend_settings', {}, typecast=dict
)
+ base_url = get_setting(
+ 'INVENTREE_FRONTEND_URL_BASE', 'frontend_url_base', 'web', typecast=str
+ )
+
# Set the base URL for the user interface
# This is the UI path e.g. '/web/'
if 'base_url' not in frontend_settings:
- frontend_settings['base_url'] = (
- get_setting('INVENTREE_FRONTEND_URL_BASE', 'frontend_url_base', 'web')
- or 'web'
- )
+ frontend_settings['base_url'] = base_url
# If provided, specify the API host
api_host = frontend_settings.get('api_host', None) or get_setting(
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 fef25f676a..09199f06db 100644
--- a/src/backend/InvenTree/InvenTree/management/commands/export_settings_definitions.py
+++ b/src/backend/InvenTree/InvenTree/management/commands/export_settings_definitions.py
@@ -24,8 +24,9 @@ class Command(BaseCommand):
def handle(self, *args, **kwargs):
"""Export settings information to a JSON file."""
from common.models import InvenTreeSetting, InvenTreeUserSetting
+ from InvenTree.config import CONFIG_LOOKUPS
- settings = {'global': {}, 'user': {}}
+ settings = {'global': {}, 'user': {}, 'config': {}}
# Global settings
for key, setting in InvenTreeSetting.SETTINGS.items():
@@ -45,6 +46,18 @@ class Command(BaseCommand):
'units': str(setting.get('units', '')),
}
+ # Configuration settings
+ for key, config in CONFIG_LOOKUPS.items():
+ default_value = config.get('default_value', None)
+ if default_value is not None:
+ default_value = str(default_value)
+
+ settings['config'][key] = {
+ 'env_var': str(config.get('env_var', '')),
+ 'config_key': str(config.get('config_key', '')),
+ 'default_value': default_value,
+ }
+
filename = kwargs.get('filename', 'inventree_settings.json')
with open(filename, 'w', encoding='utf-8') as f:
diff --git a/src/backend/InvenTree/InvenTree/sanitizer.py b/src/backend/InvenTree/InvenTree/sanitizer.py
index 55dbd24770..ea5936c65a 100644
--- a/src/backend/InvenTree/InvenTree/sanitizer.py
+++ b/src/backend/InvenTree/InvenTree/sanitizer.py
@@ -345,4 +345,8 @@ def sanitize_svg(
link_rel=None,
)
+ # Replace non-breaking spaces with regular spaces to prevent SVG rendering issues
+ for nbsp in [' ', ' ']:
+ cleaned = cleaned.replace(nbsp, ' ')
+
return cleaned
diff --git a/src/backend/InvenTree/InvenTree/setting/db_backend.py b/src/backend/InvenTree/InvenTree/setting/db_backend.py
index e90f01c8f9..03e9f12cff 100644
--- a/src/backend/InvenTree/InvenTree/setting/db_backend.py
+++ b/src/backend/InvenTree/InvenTree/setting/db_backend.py
@@ -1,12 +1,85 @@
"""Configuration settings specific to a particular database backend."""
+from pathlib import Path
+
import structlog
-from InvenTree.config import get_boolean_setting, get_setting
+from InvenTree.config import get_boolean_setting, get_config_value, get_setting
logger = structlog.get_logger('inventree')
+def get_db_backend():
+ """Return the database backend configuration."""
+ # For the core database configuration values, we test for UPPERCASE configuration values as a backup,
+ # due to legacy reasons (original config files were uppercase,
+ # but we moved to lowercase for consistency with other settings.
+
+ db_config = {
+ 'ENGINE': get_setting(
+ 'INVENTREE_DB_ENGINE', 'database.engine', '', typecast=str
+ )
+ or get_config_value('database.ENGINE'),
+ 'NAME': get_setting('INVENTREE_DB_NAME', 'database.name', '', typecast=str)
+ or get_config_value('database.NAME'),
+ 'USER': get_setting('INVENTREE_DB_USER', 'database.user', '', typecast=str)
+ or get_config_value('database.USER'),
+ 'PASSWORD': get_setting(
+ 'INVENTREE_DB_PASSWORD', 'database.password', '', typecast=str
+ )
+ or get_config_value('database.PASSWORD'),
+ 'HOST': get_setting('INVENTREE_DB_HOST', 'database.host', '', typecast=str)
+ or get_config_value('database.HOST'),
+ 'PORT': get_setting('INVENTREE_DB_PORT', 'database.port', '', typecast=str)
+ or get_config_value('database.PORT'),
+ 'OPTIONS': get_setting(
+ 'INVENTREE_DB_OPTIONS', 'database.options', {}, typecast=dict
+ )
+ or get_config_value('database.OPTIONS')
+ or {},
+ }
+
+ # Check for required keys
+ required_keys = ['ENGINE', 'NAME']
+
+ for key in required_keys:
+ if not db_config[key]:
+ raise ValueError(
+ f'Missing required database configuration key: INVENTREE_DB_{key}'
+ )
+
+ DB_ENGINE = db_config['ENGINE'].lower()
+
+ # Correct common misspelling
+ if DB_ENGINE == 'sqlite':
+ DB_ENGINE = 'sqlite3' # pragma: no cover
+
+ if DB_ENGINE in ['sqlite3', 'postgresql', 'mysql']:
+ # Prepend the required python module string
+ DB_ENGINE = f'django.db.backends.{DB_ENGINE}'
+ db_config['ENGINE'] = DB_ENGINE
+
+ if 'sqlite' in DB_ENGINE:
+ db_name = str(Path(db_config['NAME']).resolve())
+ db_config['NAME'] = db_name
+
+ logger.info('DB_ENGINE: %s', DB_ENGINE)
+ logger.info('DB_NAME: %s', db_config['NAME'])
+ logger.info('DB_HOST: %s', db_config.get('HOST', "''"))
+
+ # Set testing options for the database
+ db_config['TEST'] = {'CHARSET': 'utf8'}
+
+ # Set collation option for mysql test database
+ if 'mysql' in DB_ENGINE:
+ db_config['TEST']['COLLATION'] = 'utf8_general_ci' # pragma: no cover
+
+ # Specify database specific configuration
+ set_db_options(DB_ENGINE, db_config['OPTIONS'])
+
+ return db_config
+
+
def set_db_options(engine: str, db_options: dict):
"""Update database options based on the specified database backend.
diff --git a/src/backend/InvenTree/InvenTree/setting/ldap.py b/src/backend/InvenTree/InvenTree/setting/ldap.py
new file mode 100644
index 0000000000..6e6f57989f
--- /dev/null
+++ b/src/backend/InvenTree/InvenTree/setting/ldap.py
@@ -0,0 +1,139 @@
+"""Configuration of LDAP support for InvenTree."""
+
+from InvenTree.config import get_boolean_setting, get_setting
+
+
+def get_ldap_config(debug: bool = False) -> dict:
+ """Return a dictionary of LDAP configuration settings.
+
+ The returned settings will be updated into the globals() object,
+ and will be used to configure the LDAP authentication backend.
+ """
+ import django_auth_ldap.config # type: ignore[unresolved-import]
+ import ldap # type: ignore[unresolved-import]
+
+ # get global options from dict and use ldap.OPT_* as keys and values
+ global_options_dict = get_setting(
+ 'INVENTREE_LDAP_GLOBAL_OPTIONS',
+ 'ldap.global_options',
+ default_value=None,
+ typecast=dict,
+ )
+
+ global_options = {}
+
+ for k, v in global_options_dict.items():
+ # keys are always ldap.OPT_* constants
+ k_attr = getattr(ldap, k, None)
+ if not k.startswith('OPT_') or k_attr is None:
+ print(f"[LDAP] ldap.global_options, key '{k}' not found, skipping...")
+ continue
+
+ # values can also be other strings, e.g. paths
+ v_attr = v
+ if v.startswith('OPT_'):
+ v_attr = getattr(ldap, v, None)
+
+ if v_attr is None:
+ print(f"[LDAP] ldap.global_options, value key '{v}' not found, skipping...")
+ continue
+
+ global_options[k_attr] = v_attr
+
+ if debug:
+ print('[LDAP] ldap.global_options =', global_options)
+
+ group_type_class = get_setting(
+ 'INVENTREE_LDAP_GROUP_TYPE_CLASS',
+ 'ldap.group_type_class',
+ 'GroupOfUniqueNamesType',
+ str,
+ )
+
+ group_type_class_args = get_setting(
+ 'INVENTREE_LDAP_GROUP_TYPE_CLASS_ARGS', 'ldap.group_type_class_args', [], list
+ )
+
+ group_type_class_kwargs = get_setting(
+ 'INVENTREE_LDAP_GROUP_TYPE_CLASS_KWARGS',
+ 'ldap.group_type_class_kwargs',
+ {'name_attr': 'cn'},
+ dict,
+ )
+
+ group_object_class = get_setting(
+ 'INVENTREE_LDAP_GROUP_OBJECT_CLASS',
+ 'ldap.group_object_class',
+ 'groupOfUniqueNames',
+ str,
+ )
+
+ ldap_config = {
+ 'AUTH_LDAP_GLOBAL_OPTIONS': global_options,
+ 'AUTH_LDAP_SERVER_URI': get_setting(
+ 'INVENTREE_LDAP_SERVER_URI', 'ldap.server_uri'
+ ),
+ 'AUTH_LDAP_START_TLS': get_boolean_setting(
+ 'INVENTREE_LDAP_START_TLS', 'ldap.start_tls', False
+ ),
+ 'AUTH_LDAP_BIND_DN': get_setting('INVENTREE_LDAP_BIND_DN', 'ldap.bind_dn'),
+ 'AUTH_LDAP_BIND_PASSWORD': get_setting(
+ 'INVENTREE_LDAP_BIND_PASSWORD', 'ldap.bind_password'
+ ),
+ 'AUTH_LDAP_USER_SEARCH': django_auth_ldap.config.LDAPSearch(
+ get_setting('INVENTREE_LDAP_SEARCH_BASE_DN', 'ldap.search_base_dn'),
+ ldap.SCOPE_SUBTREE,
+ str(
+ get_setting(
+ 'INVENTREE_LDAP_SEARCH_FILTER_STR',
+ 'ldap.search_filter_str',
+ '(uid= %(user)s)',
+ )
+ ),
+ ),
+ 'AUTH_LDAP_USER_DN_TEMPLATE': get_setting(
+ 'INVENTREE_LDAP_USER_DN_TEMPLATE', 'ldap.user_dn_template'
+ ),
+ 'AUTH_LDAP_USER_ATTR_MAP': get_setting(
+ 'INVENTREE_LDAP_USER_ATTR_MAP',
+ 'ldap.user_attr_map',
+ {'first_name': 'givenName', 'last_name': 'sn', 'email': 'mail'},
+ dict,
+ ),
+ 'AUTH_LDAP_ALWAYS_UPDATE_USER': get_boolean_setting(
+ 'INVENTREE_LDAP_ALWAYS_UPDATE_USER', 'ldap.always_update_user', True
+ ),
+ 'AUTH_LDAP_CACHE_TIMEOUT': get_setting(
+ 'INVENTREE_LDAP_CACHE_TIMEOUT', 'ldap.cache_timeout', 3600, int
+ ),
+ 'AUTH_LDAP_MIRROR_GROUPS': get_boolean_setting(
+ 'INVENTREE_LDAP_MIRROR_GROUPS', 'ldap.mirror_groups', False
+ ),
+ 'AUTH_LDAP_GROUP_OBJECT_CLASS': group_object_class,
+ 'AUTH_LDAP_GROUP_SEARCH': django_auth_ldap.config.LDAPSearch(
+ get_setting('INVENTREE_LDAP_GROUP_SEARCH', 'ldap.group_search'),
+ ldap.SCOPE_SUBTREE,
+ f'(objectClass={group_object_class})',
+ ),
+ 'AUTH_LDAP_GROUP_TYPE_CLASS': group_type_class,
+ 'AUTH_LDAP_GROUP_TYPE_CLASS_ARGS': [*group_type_class_args],
+ 'AUTH_LDAP_GROUP_TYPE_CLASS_KWARGS': {**group_type_class_kwargs},
+ 'AUTH_LDAP_GROUP_TYPE': getattr(django_auth_ldap.config, group_type_class)(
+ *group_type_class_args, **group_type_class_kwargs
+ ),
+ 'AUTH_LDAP_REQUIRE_GROUP': get_setting(
+ 'INVENTREE_LDAP_REQUIRE_GROUP', 'ldap.require_group'
+ ),
+ 'AUTH_LDAP_DENY_GROUP': get_setting(
+ 'INVENTREE_LDAP_DENY_GROUP', 'ldap.deny_group'
+ ),
+ 'AUTH_LDAP_USER_FLAGS_BY_GROUP': get_setting(
+ 'INVENTREE_LDAP_USER_FLAGS_BY_GROUP',
+ 'ldap.user_flags_by_group',
+ default_value=None,
+ typecast=dict,
+ ),
+ 'AUTH_LDAP_FIND_GROUP_PERMS': True,
+ }
+
+ return ldap_config
diff --git a/src/backend/InvenTree/InvenTree/setting/tracing.py b/src/backend/InvenTree/InvenTree/setting/tracing.py
new file mode 100644
index 0000000000..59a667b71d
--- /dev/null
+++ b/src/backend/InvenTree/InvenTree/setting/tracing.py
@@ -0,0 +1,61 @@
+"""Start-up configuration options for InvenTree tracing integrations."""
+
+import structlog
+
+from InvenTree.config import get_boolean_setting, get_setting
+from InvenTree.tracing import setup_instruments, setup_tracing
+
+logger = structlog.get_logger('inventree')
+
+
+def configure_tracing(db_engine: str, enabled: bool, tags: dict) -> dict:
+ """Configure tracing integrations for InvenTree.
+
+ Arguments:
+ db_engine: The database engine being used
+ enabled: Whether tracing is enabled
+ tags: A dictionary of tags to be included in tracing spans, with keys prefixed by
+ """
+ endpoint = get_setting('INVENTREE_TRACING_ENDPOINT', 'tracing.endpoint', None)
+ headers = (
+ get_setting('INVENTREE_TRACING_HEADERS', 'tracing.headers', None, typecast=dict)
+ or {}
+ )
+
+ if enabled and endpoint:
+ logger.info('Tracing enabled with endpoint: %s', endpoint)
+
+ TRACING_DETAILS = {
+ 'endpoint': endpoint,
+ 'headers': headers,
+ 'resources_input': {
+ **{'inventree.env.' + k: v for k, v in tags.items()},
+ **get_setting(
+ 'INVENTREE_TRACING_RESOURCES',
+ 'tracing.resources',
+ default_value=None,
+ typecast=dict,
+ ),
+ },
+ 'console': get_boolean_setting(
+ 'INVENTREE_TRACING_CONSOLE', 'tracing.console', False
+ ),
+ 'auth': get_setting(
+ 'INVENTREE_TRACING_AUTH', 'tracing.auth', default_value=None, typecast=dict
+ ),
+ 'is_http': get_setting('INVENTREE_TRACING_IS_HTTP', 'tracing.is_http', True),
+ 'append_http': get_boolean_setting(
+ 'INVENTREE_TRACING_APPEND_HTTP', 'tracing.append_http', True
+ ),
+ }
+
+ if not enabled:
+ return None
+
+ if endpoint:
+ setup_tracing(**TRACING_DETAILS)
+ setup_instruments(db_engine)
+ else:
+ logger.warning('OpenTelemetry tracing not enabled because endpoint is not set')
+
+ return TRACING_DETAILS
diff --git a/src/backend/InvenTree/InvenTree/setting/worker.py b/src/backend/InvenTree/InvenTree/setting/worker.py
new file mode 100644
index 0000000000..bef1380bd2
--- /dev/null
+++ b/src/backend/InvenTree/InvenTree/setting/worker.py
@@ -0,0 +1,88 @@
+"""Configuration settings for the InvenTree background worker process."""
+
+import sys
+
+from InvenTree.config import get_setting
+
+
+def get_worker_config(
+ db_engine: str,
+ global_cache: bool = False,
+ sentry_dsn: str = '',
+ debug: bool = False,
+) -> dict:
+ """Return a dictionary of configuration settings for the background worker.
+
+ Arguments:
+ db_engine: The database engine being used (e.g. 'sqlite', 'postgresql', 'mysql')
+ global_cache: Whether a global redis cache is enabled
+ sentry_dsn: The DSN for sentry.io integration (if enabled)
+ debug: Whether the application is running in debug mode
+
+ Ref: https://django-q2.readthedocs.io/en/master/configure.html
+ """
+ BACKGROUND_WORKER_TIMEOUT = int(
+ get_setting('INVENTREE_BACKGROUND_TIMEOUT', 'background.timeout', 90)
+ )
+
+ # Set the retry time for background workers to be slightly longer than the worker timeout, to ensure that workers have time to timeout before being retried
+ BACKGROUND_WORKER_RETRY = max(
+ int(get_setting('INVENTREE_BACKGROUND_RETRY', 'background.retry', 300)),
+ BACKGROUND_WORKER_TIMEOUT + 120,
+ )
+
+ BACKGROUND_WORKER_ATTEMPTS = int(
+ get_setting('INVENTREE_BACKGROUND_MAX_ATTEMPTS', 'background.max_attempts', 5)
+ )
+
+ # 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 is disabled, we cannot run multiple background workers
+ if not global_cache:
+ BACKGROUND_WORKER_COUNT = 1
+
+ # If running with SQLite, limit background worker threads to 1 to prevent database locking issues
+ if 'sqlite' in db_engine:
+ BACKGROUND_WORKER_COUNT = 1
+
+ # Check if '--sync' was passed in the command line
+ if '--sync' in sys.argv and '--noreload' in sys.argv and debug:
+ SYNC_TASKS = True
+ else:
+ SYNC_TASKS = False
+
+ # Clean up sys.argv so Django doesn't complain about an unknown argument
+ if SYNC_TASKS:
+ sys.argv.remove('--sync')
+
+ # django-q background worker configuration
+ config = {
+ 'name': 'InvenTree',
+ 'label': 'Background Tasks',
+ 'workers': BACKGROUND_WORKER_COUNT,
+ 'timeout': BACKGROUND_WORKER_TIMEOUT,
+ 'retry': BACKGROUND_WORKER_RETRY,
+ 'max_attempts': BACKGROUND_WORKER_ATTEMPTS,
+ 'save_limit': 1000,
+ 'queue_limit': 50,
+ 'catch_up': False,
+ 'bulk': 10,
+ 'orm': 'default',
+ 'cache': 'default',
+ 'sync': SYNC_TASKS,
+ 'poll': 1.5,
+ }
+
+ if global_cache:
+ # If using external redis cache, make the cache the broker for Django Q
+ config['django_redis'] = 'worker'
+
+ if sentry_dsn:
+ # If sentry is enabled, configure django-q to report errors to sentry
+ config['error_reporter'] = {'sentry': {'dsn': sentry_dsn}}
+
+ return config
diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py
index 444919d6b8..3aa32669be 100644
--- a/src/backend/InvenTree/InvenTree/settings.py
+++ b/src/backend/InvenTree/InvenTree/settings.py
@@ -12,7 +12,6 @@ database setup in this file.
import logging
import os
import sys
-from pathlib import Path
from typing import Optional
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
@@ -33,7 +32,16 @@ from InvenTree.version import checkMinPythonVersion, inventreeCommitHash
from users.oauth2_scopes import oauth2_scopes
from . import config
-from .setting import db_backend, locales, markdown, spectacular, storages
+from .setting import (
+ db_backend,
+ ldap,
+ locales,
+ markdown,
+ spectacular,
+ storages,
+ tracing,
+ worker,
+)
try:
import django_stubs_ext
@@ -81,6 +89,8 @@ DEBUG = get_boolean_setting('INVENTREE_DEBUG', 'debug', False)
# Internal flag to determine if we are running in docker mode
DOCKER = get_boolean_setting('INVENTREE_DOCKER', default_value=False)
+AUTO_UPDATE = get_boolean_setting('INVENTREE_AUTO_UPDATE', 'auto_update', False)
+
# Configure logging settings
LOG_LEVEL = get_setting('INVENTREE_LOG_LEVEL', 'log_level', 'WARNING')
JSON_LOG = get_boolean_setting('INVENTREE_JSON_LOG', 'json_log', False)
@@ -222,9 +232,7 @@ PLUGIN_TESTING_EVENTS_ASYNC = False # Flag if events are tested asynchronously
PLUGIN_TESTING_RELOAD = False # Flag if plugin reloading is in testing (check_reload)
# Plugin development settings
-PLUGIN_DEV_SLUG = (
- get_setting('INVENTREE_PLUGIN_DEV_SLUG', 'plugin_dev.slug') if DEBUG else None
-)
+PLUGIN_DEV_SLUG = get_setting('INVENTREE_PLUGIN_DEV_SLUG', 'plugin_dev.slug')
PLUGIN_DEV_HOST = get_setting(
'INVENTREE_PLUGIN_DEV_HOST', 'plugin_dev.host', 'http://localhost:5174'
@@ -386,8 +394,11 @@ MIDDLEWARE = CONFIG.get(
# In DEBUG mode, add support for django-silk
# Ref: https://silk.readthedocs.io/en/latest/
-DJANGO_SILK_ENABLED = DEBUG and get_boolean_setting( # pragma: no cover
- 'INVENTREE_DEBUG_SILK', 'debug_silk', False
+DJANGO_SILK_ENABLED = (
+ get_boolean_setting( # pragma: no cover
+ 'INVENTREE_DEBUG_SILK', 'debug_silk', False
+ )
+ and DEBUG
)
if DJANGO_SILK_ENABLED: # pragma: no cover
@@ -401,8 +412,11 @@ if DJANGO_SILK_ENABLED: # pragma: no cover
# In DEBUG mode, add support for django-querycount
# Ref: https://github.com/bradmontgomery/django-querycount
-if DEBUG and get_boolean_setting( # pragma: no cover
- 'INVENTREE_DEBUG_QUERYCOUNT', 'debug_querycount', False
+if (
+ get_boolean_setting( # pragma: no cover
+ 'INVENTREE_DEBUG_QUERYCOUNT', 'debug_querycount', False
+ )
+ and DEBUG
):
MIDDLEWARE.append('querycount.middleware.QueryCountMiddleware')
logger.debug('Running with debug_querycount middleware enabled')
@@ -437,14 +451,14 @@ AUTHENTICATION_BACKENDS = (
# LDAP support
LDAP_AUTH = get_boolean_setting('INVENTREE_LDAP_ENABLED', 'ldap.enabled', False)
-if LDAP_AUTH: # pragma: no cover
- import django_auth_ldap.config # type: ignore[unresolved-import]
- import ldap # type: ignore[unresolved-import]
+LDAP_DEBUG = (
+ get_boolean_setting('INVENTREE_LDAP_DEBUG', 'ldap.debug', False) and LDAP_AUTH
+)
+if LDAP_AUTH: # pragma: no cover
AUTHENTICATION_BACKENDS.append('django_auth_ldap.backend.LDAPBackend')
# debug mode to troubleshoot configuration
- LDAP_DEBUG = get_boolean_setting('INVENTREE_LDAP_DEBUG', 'ldap.debug', False)
if LDAP_DEBUG:
if 'loggers' not in LOGGING:
LOGGING['loggers'] = {}
@@ -453,113 +467,10 @@ if LDAP_AUTH: # pragma: no cover
'handlers': DEFAULT_LOG_HANDLER,
}
- # get global options from dict and use ldap.OPT_* as keys and values
- global_options_dict = get_setting(
- 'INVENTREE_LDAP_GLOBAL_OPTIONS',
- 'ldap.global_options',
- default_value=None,
- typecast=dict,
- )
- global_options = {}
- for k, v in global_options_dict.items():
- # keys are always ldap.OPT_* constants
- k_attr = getattr(ldap, k, None)
- if not k.startswith('OPT_') or k_attr is None:
- print(f"[LDAP] ldap.global_options, key '{k}' not found, skipping...")
- continue
+ # Determine LDAP settings
+ ldap_settings = ldap.get_ldap_config(debug=LDAP_DEBUG)
+ globals().update(ldap_settings)
- # values can also be other strings, e.g. paths
- v_attr = v
- if v.startswith('OPT_'):
- v_attr = getattr(ldap, v, None)
-
- if v_attr is None:
- print(f"[LDAP] ldap.global_options, value key '{v}' not found, skipping...")
- continue
-
- global_options[k_attr] = v_attr
- AUTH_LDAP_GLOBAL_OPTIONS = global_options
- if LDAP_DEBUG:
- print('[LDAP] ldap.global_options =', global_options)
-
- AUTH_LDAP_SERVER_URI = get_setting('INVENTREE_LDAP_SERVER_URI', 'ldap.server_uri')
- AUTH_LDAP_START_TLS = get_boolean_setting(
- 'INVENTREE_LDAP_START_TLS', 'ldap.start_tls', False
- )
- AUTH_LDAP_BIND_DN = get_setting('INVENTREE_LDAP_BIND_DN', 'ldap.bind_dn')
- AUTH_LDAP_BIND_PASSWORD = get_setting(
- 'INVENTREE_LDAP_BIND_PASSWORD', 'ldap.bind_password'
- )
- AUTH_LDAP_USER_SEARCH = django_auth_ldap.config.LDAPSearch(
- get_setting('INVENTREE_LDAP_SEARCH_BASE_DN', 'ldap.search_base_dn'),
- ldap.SCOPE_SUBTREE,
- str(
- get_setting(
- 'INVENTREE_LDAP_SEARCH_FILTER_STR',
- 'ldap.search_filter_str',
- '(uid= %(user)s)',
- )
- ),
- )
- AUTH_LDAP_USER_DN_TEMPLATE = get_setting(
- 'INVENTREE_LDAP_USER_DN_TEMPLATE', 'ldap.user_dn_template'
- )
- AUTH_LDAP_USER_ATTR_MAP = get_setting(
- 'INVENTREE_LDAP_USER_ATTR_MAP',
- 'ldap.user_attr_map',
- {'first_name': 'givenName', 'last_name': 'sn', 'email': 'mail'},
- dict,
- )
- AUTH_LDAP_ALWAYS_UPDATE_USER = get_boolean_setting(
- 'INVENTREE_LDAP_ALWAYS_UPDATE_USER', 'ldap.always_update_user', True
- )
- AUTH_LDAP_CACHE_TIMEOUT = get_setting(
- 'INVENTREE_LDAP_CACHE_TIMEOUT', 'ldap.cache_timeout', 3600, int
- )
-
- AUTH_LDAP_MIRROR_GROUPS = get_boolean_setting(
- 'INVENTREE_LDAP_MIRROR_GROUPS', 'ldap.mirror_groups', False
- )
- AUTH_LDAP_GROUP_OBJECT_CLASS = get_setting(
- 'INVENTREE_LDAP_GROUP_OBJECT_CLASS',
- 'ldap.group_object_class',
- 'groupOfUniqueNames',
- str,
- )
- AUTH_LDAP_GROUP_SEARCH = django_auth_ldap.config.LDAPSearch(
- get_setting('INVENTREE_LDAP_GROUP_SEARCH', 'ldap.group_search'),
- ldap.SCOPE_SUBTREE,
- f'(objectClass={AUTH_LDAP_GROUP_OBJECT_CLASS})',
- )
- AUTH_LDAP_GROUP_TYPE_CLASS = get_setting(
- 'INVENTREE_LDAP_GROUP_TYPE_CLASS',
- 'ldap.group_type_class',
- 'GroupOfUniqueNamesType',
- str,
- )
- AUTH_LDAP_GROUP_TYPE_CLASS_ARGS = get_setting(
- 'INVENTREE_LDAP_GROUP_TYPE_CLASS_ARGS', 'ldap.group_type_class_args', [], list
- )
- AUTH_LDAP_GROUP_TYPE_CLASS_KWARGS = get_setting(
- 'INVENTREE_LDAP_GROUP_TYPE_CLASS_KWARGS',
- 'ldap.group_type_class_kwargs',
- {'name_attr': 'cn'},
- dict,
- )
- AUTH_LDAP_GROUP_TYPE = getattr(django_auth_ldap.config, AUTH_LDAP_GROUP_TYPE_CLASS)(
- *AUTH_LDAP_GROUP_TYPE_CLASS_ARGS, **AUTH_LDAP_GROUP_TYPE_CLASS_KWARGS
- )
- AUTH_LDAP_REQUIRE_GROUP = get_setting(
- 'INVENTREE_LDAP_REQUIRE_GROUP', 'ldap.require_group'
- )
- AUTH_LDAP_DENY_GROUP = get_setting('INVENTREE_LDAP_DENY_GROUP', 'ldap.deny_group')
- AUTH_LDAP_USER_FLAGS_BY_GROUP = get_setting(
- 'INVENTREE_LDAP_USER_FLAGS_BY_GROUP',
- 'ldap.user_flags_by_group',
- default_value=None,
- typecast=dict,
- )
- AUTH_LDAP_FIND_GROUP_PERMS = True
# Allow secure http developer server in debug mode
if DEBUG:
@@ -642,107 +553,11 @@ Configure the database backend based on the user-specified values.
logger.debug('Configuring database backend:')
-# Extract database configuration from the config.yaml file
-db_config = CONFIG.get('database', None) if CONFIG else None
+# Load database configuration from the config file and environment variables
+database = db_backend.get_db_backend()
+DB_ENGINE = database['ENGINE']
-if not db_config:
- db_config = {}
-
-# Environment variables take preference over config file!
-
-db_keys = ['ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT']
-
-for key in db_keys:
- # First, check the environment variables
- env_key = f'INVENTREE_DB_{key}'
- env_var = os.environ.get(env_key, None)
-
- if env_var:
- # Make use PORT is int
- if key == 'PORT':
- try:
- env_var = int(env_var)
- except ValueError:
- logger.exception('Invalid number for %s: %s', env_key, env_var)
- # Override configuration value
- db_config[key] = env_var
-
-# 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 `INVENTREE_DB_{key}`'
- )
- logger.error(error_msg)
-
- print('Error: ' + error_msg)
- sys.exit(-1)
-
-"""
-Special considerations for the database 'ENGINE' setting.
-It can be specified in config.yaml (or envvar) as either (for example):
-- sqlite3
-- django.db.backends.sqlite3
-- django.db.backends.postgresql
-"""
-
-DB_ENGINE = db_config['ENGINE'].lower()
-
-# Correct common misspelling
-if DB_ENGINE == 'sqlite':
- DB_ENGINE = 'sqlite3' # pragma: no cover
-
-if DB_ENGINE in ['sqlite3', 'postgresql', 'mysql']:
- # Prepend the required python module string
- DB_ENGINE = f'django.db.backends.{DB_ENGINE}'
- db_config['ENGINE'] = DB_ENGINE
-
-db_name = db_config['NAME']
-db_host = db_config.get('HOST', "''")
-
-if 'sqlite' in DB_ENGINE:
- db_name = str(Path(db_name).resolve())
- db_config['NAME'] = db_name
-
-logger.info('DB_ENGINE: %s', DB_ENGINE)
-logger.info('DB_NAME: %s', db_name)
-logger.info('DB_HOST: %s', db_host)
-
-"""
-In addition to base-level database configuration, we may wish to specify specific options to the database backend
-Ref: https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-OPTIONS
-"""
-
-# 'OPTIONS' or 'options' can be specified in config.yaml
-# Set useful sensible timeouts for a transactional webserver to communicate
-# with its database server, that is, if the webserver is having issues
-# connecting to the database server (such as a replica failover) don't sit and
-# wait for possibly an hour or more, just tell the client something went wrong
-# and let the client retry when they want to.
-db_options = db_config.get('OPTIONS', db_config.get('options'))
-
-if db_options is None:
- db_options = {}
-
-# Set database-specific options
-db_backend.set_db_options(DB_ENGINE, db_options)
-
-# Provide OPTIONS dict back to the database configuration dict
-db_config['OPTIONS'] = db_options
-
-# Set testing options for the database
-db_config['TEST'] = {'CHARSET': 'utf8'}
-
-# Set collation option for mysql test database
-if 'mysql' in DB_ENGINE:
- db_config['TEST']['COLLATION'] = 'utf8_general_ci' # pragma: no cover
-
-DATABASES = {'default': db_config}
+DATABASES = {'default': database}
# login settings
REMOTE_LOGIN = get_boolean_setting(
@@ -776,133 +591,28 @@ if SENTRY_ENABLED and SENTRY_DSN and not TESTING: # pragma: no cover
init_sentry(SENTRY_DSN, SENTRY_SAMPLE_RATE, inventree_tags)
# OpenTelemetry tracing
-TRACING_ENABLED = get_boolean_setting(
- 'INVENTREE_TRACING_ENABLED', 'tracing.enabled', False
+TRACING_ENABLED = (
+ get_boolean_setting('INVENTREE_TRACING_ENABLED', 'tracing.enabled', False)
+ and not isRunningBackup()
)
-TRACING_DETAILS: Optional[dict] = None
-if TRACING_ENABLED and not isRunningBackup(): # pragma: no cover
- from InvenTree.tracing import setup_instruments, setup_tracing
-
- _t_endpoint = get_setting('INVENTREE_TRACING_ENDPOINT', 'tracing.endpoint', None)
- _t_headers = get_setting('INVENTREE_TRACING_HEADERS', 'tracing.headers', None, dict)
-
- if _t_headers is None:
- _t_headers = {}
-
- if _t_endpoint:
- logger.info('OpenTelemetry tracing enabled')
-
- TRACING_DETAILS = (
- TRACING_DETAILS
- if TRACING_DETAILS
- else {
- 'endpoint': _t_endpoint,
- 'headers': _t_headers,
- 'resources_input': {
- **{'inventree.env.' + k: v for k, v in inventree_tags.items()},
- **get_setting(
- 'INVENTREE_TRACING_RESOURCES',
- 'tracing.resources',
- default_value=None,
- typecast=dict,
- ),
- },
- 'console': get_boolean_setting(
- 'INVENTREE_TRACING_CONSOLE', 'tracing.console', False
- ),
- 'auth': get_setting(
- 'INVENTREE_TRACING_AUTH',
- 'tracing.auth',
- default_value=None,
- typecast=dict,
- ),
- 'is_http': get_setting(
- 'INVENTREE_TRACING_IS_HTTP', 'tracing.is_http', True
- ),
- 'append_http': get_boolean_setting(
- 'INVENTREE_TRACING_APPEND_HTTP', 'tracing.append_http', True
- ),
- }
- )
-
- # Run tracing/logging instrumentation
- setup_tracing(**TRACING_DETAILS)
- setup_instruments(DB_ENGINE)
- else:
- logger.warning('OpenTelemetry tracing not enabled because endpoint is not set')
-
-# endregion
+TRACING_DETAILS: Optional[dict] = tracing.configure_tracing(
+ DB_ENGINE, TRACING_ENABLED, inventree_tags
+)
# Cache configuration
GLOBAL_CACHE_ENABLED = is_global_cache_enabled()
CACHES = {'default': get_cache_config(GLOBAL_CACHE_ENABLED)}
-BACKGROUND_WORKER_TIMEOUT = int(
- get_setting('INVENTREE_BACKGROUND_TIMEOUT', 'background.timeout', 90)
+# Background task processing with django-q
+Q_CLUSTER = worker.get_worker_config(
+ DB_ENGINE,
+ global_cache=GLOBAL_CACHE_ENABLED,
+ sentry_dsn=SENTRY_DSN if SENTRY_ENABLED and SENTRY_DSN else None,
+ debug=DEBUG,
)
-# Set the retry time for background workers to be slightly longer than the worker timeout, to ensure that workers have time to timeout before being retried
-BACKGROUND_WORKER_RETRY = max(
- int(get_setting('INVENTREE_BACKGROUND_RETRY', 'background.retry', 300)),
- BACKGROUND_WORKER_TIMEOUT + 120,
-)
-
-# 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
-)
-
-# If running with SQLite, limit background worker threads to 1 to prevent database locking issues
-if 'sqlite' in DB_ENGINE:
- BACKGROUND_WORKER_COUNT = 1
-
-BACKGROUND_WORKER_ATTEMPTS = int(
- get_setting('INVENTREE_BACKGROUND_MAX_ATTEMPTS', 'background.max_attempts', 5)
-)
-
-# Check if '--sync' was passed in the command line
-if '--sync' in sys.argv and '--noreload' in sys.argv and DEBUG:
- SYNC_TASKS = True
-else:
- SYNC_TASKS = False
-
-# Clean up sys.argv so Django doesn't complain about an unknown argument
-if SYNC_TASKS:
- sys.argv.remove('--sync')
-
-# django-q background worker configuration
-Q_CLUSTER = {
- 'name': 'InvenTree',
- 'label': 'Background Tasks',
- 'workers': BACKGROUND_WORKER_COUNT,
- 'timeout': BACKGROUND_WORKER_TIMEOUT,
- 'retry': BACKGROUND_WORKER_RETRY,
- 'max_attempts': BACKGROUND_WORKER_ATTEMPTS,
- 'save_limit': 1000,
- 'queue_limit': 50,
- 'catch_up': False,
- 'bulk': 10,
- 'orm': 'default',
- 'cache': 'default',
- 'sync': SYNC_TASKS,
- 'poll': 1.5,
-}
-
-# Configure django-q sentry integration
-if SENTRY_ENABLED and SENTRY_DSN: # pragma: no cover
- Q_CLUSTER['error_reporter'] = {'sentry': {'dsn': SENTRY_DSN}}
-
-if GLOBAL_CACHE_ENABLED: # pragma: no cover
- # If using external redis cache, make the cache the broker for Django Q
- # as well
- Q_CLUSTER['django_redis'] = 'worker'
-
-
SILENCED_SYSTEM_CHECKS = ['templates.E003', 'templates.W003']
# Password validation
@@ -976,10 +686,10 @@ INTERNAL_EMAIL_BACKEND = get_setting(
)
# SMTP backend
-EMAIL_HOST = get_setting('INVENTREE_EMAIL_HOST', 'email.host', '')
+EMAIL_HOST = get_setting('INVENTREE_EMAIL_HOST', 'email.host')
EMAIL_PORT = get_setting('INVENTREE_EMAIL_PORT', 'email.port', 25, typecast=int)
-EMAIL_HOST_USER = get_setting('INVENTREE_EMAIL_USERNAME', 'email.username', '')
-EMAIL_HOST_PASSWORD = get_setting('INVENTREE_EMAIL_PASSWORD', 'email.password', '')
+EMAIL_HOST_USER = get_setting('INVENTREE_EMAIL_USERNAME', 'email.username')
+EMAIL_HOST_PASSWORD = get_setting('INVENTREE_EMAIL_PASSWORD', 'email.password')
EMAIL_USE_TLS = get_boolean_setting('INVENTREE_EMAIL_TLS', 'email.tls', False)
EMAIL_USE_SSL = get_boolean_setting('INVENTREE_EMAIL_SSL', 'email.ssl', False)
# Anymail
@@ -1150,16 +860,14 @@ LANGUAGE_COOKIE_SAMESITE = COOKIE_MODE
- Otherwise, use the value specified in the configuration file (or env var)
"""
COOKIE_SECURE = (
- False
- if DEBUG
- else (
- SESSION_COOKIE_SAMESITE == 'None'
- or get_boolean_setting(
- 'INVENTREE_SESSION_COOKIE_SECURE', 'cookie.secure', False
- )
- )
+ get_boolean_setting('INVENTREE_SESSION_COOKIE_SECURE', 'cookie.secure', False)
+ or SESSION_COOKIE_SAMESITE == 'None'
)
+# Override COOKIE_SECURE value in DEBUG mode
+if DEBUG:
+ COOKIE_SECURE = False
+
CSRF_COOKIE_SECURE = COOKIE_SECURE
SESSION_COOKIE_SECURE = COOKIE_SECURE
LANGUAGE_COOKIE_SECURE = COOKIE_SECURE
diff --git a/src/backend/InvenTree/InvenTree/tasks.py b/src/backend/InvenTree/InvenTree/tasks.py
index 973f967086..dcd1457495 100644
--- a/src/backend/InvenTree/InvenTree/tasks.py
+++ b/src/backend/InvenTree/InvenTree/tasks.py
@@ -29,7 +29,6 @@ from maintenance_mode.core import (
from opentelemetry import trace
from common.settings import get_global_setting, set_global_setting
-from InvenTree.config import get_setting
from plugin import registry
from .version import isInvenTreeUpToDate
@@ -822,7 +821,7 @@ def check_for_migrations(force: bool = False, reload_registry: bool = True) -> b
set_pending_migrations(n)
# Test if auto-updates are enabled
- if not force and not get_setting('INVENTREE_AUTO_UPDATE', 'auto_update'):
+ if not force and not settings.AUTO_UPDATE:
logger.info('Auto-update is disabled - skipping migrations')
return False
diff --git a/src/backend/InvenTree/build/api.py b/src/backend/InvenTree/build/api.py
index 232b7adca7..7253f87f95 100644
--- a/src/backend/InvenTree/build/api.py
+++ b/src/backend/InvenTree/build/api.py
@@ -386,6 +386,20 @@ class BuildList(
kwargs['create'] = True
return super().get_serializer(*args, **kwargs)
+ def create(self, request, *args, **kwargs):
+ """Save user information on order creation."""
+ serializer = self.get_serializer(data=self.clean_data(request.data))
+ serializer.is_valid(raise_exception=True)
+
+ build = serializer.save()
+ build.issued_by = request.user
+ build.save()
+
+ headers = self.get_success_headers(serializer.data)
+ return Response(
+ serializer.data, status=status.HTTP_201_CREATED, headers=headers
+ )
+
class BuildDetail(BuildMixin, RetrieveUpdateDestroyAPI):
"""API endpoint for detail view of a Build object."""
diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py
index 39018c661a..c908bddd24 100644
--- a/src/backend/InvenTree/build/models.py
+++ b/src/backend/InvenTree/build/models.py
@@ -403,6 +403,14 @@ class Build(
related_name='builds_issued',
)
+ @property
+ def created_by(self):
+ """Alias for issued_by field.
+
+ This is used for compatibility with the order models
+ """
+ return self.issued_by
+
responsible = models.ForeignKey(
users.models.Owner,
on_delete=models.SET_NULL,
diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py
index 724182c978..9264af7375 100644
--- a/src/backend/InvenTree/build/serializers.py
+++ b/src/backend/InvenTree/build/serializers.py
@@ -104,7 +104,8 @@ class BuildSerializer(
read_only_fields = [
'completed',
'creation_date',
- 'completion_data',
+ 'issued_by',
+ 'completion_date',
'status',
'status_text',
'level',
diff --git a/src/backend/InvenTree/build/test_api.py b/src/backend/InvenTree/build/test_api.py
index e63a313238..b7aa4a9cbd 100644
--- a/src/backend/InvenTree/build/test_api.py
+++ b/src/backend/InvenTree/build/test_api.py
@@ -568,6 +568,9 @@ class BuildTest(BuildAPITest):
self.assertEqual(bo.children.count(), 0)
+ self.assertIsNotNone(bo.issued_by)
+ self.assertEqual(bo.issued_by, self.user)
+
class BuildAllocationTest(BuildAPITest):
"""Unit tests for allocation of stock items against a build order.
diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py
index 85f9b10f55..f4d2cd671c 100644
--- a/src/backend/InvenTree/common/api.py
+++ b/src/backend/InvenTree/common/api.py
@@ -395,21 +395,8 @@ class NotificationMessageViewSet(
queryset = queryset.filter(user=request.user)
return queryset
- def get_permissions(self):
- """Override permissions for list view."""
- if self.action == 'list':
- return [IsAuthenticatedOrReadScope()]
- else:
- return super().get_permissions()
-
- def list(self, request, *args, **kwargs):
- """List view for all notifications of the current user."""
- # TODO @matmair permissions for this are currently being overwritten in get_permissions - this should be moved to a dedicated endpoint
- return super().list(request, *args, **kwargs)
-
- # TODO @matmair this should really be a POST
@action(
- detail=False, methods=['get'], permission_classes=[IsAuthenticatedOrReadScope]
+ detail=False, methods=['post'], permission_classes=[IsAuthenticatedOrReadScope]
)
def readall(self, request, *args, **kwargs):
"""Set all messages for the current user as read."""
@@ -1248,7 +1235,6 @@ class EmailViewSet(BulkDeleteViewsetMixin, RetrieveDestroyModelViewSet):
'thread_id_key',
]
- @extend_schema(responses={201: common.serializers.TestEmailSerializer})
@action(
detail=False,
methods=['post'],
@@ -1270,8 +1256,7 @@ class EmailViewSet(BulkDeleteViewsetMixin, RetrieveDestroyModelViewSet):
raise serializers.ValidationError(
detail=f'Failed to send test email: "{reason}"'
) # pragma: no cover
- # TODO @matmair - breaking change: this should be a 200
- return Response(serializer.data, status=201)
+ return Response(serializer.data)
admin_router.register('email', EmailViewSet, basename='api-email')
diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py
index 35f7808750..f8041a0a82 100644
--- a/src/backend/InvenTree/common/serializers.py
+++ b/src/backend/InvenTree/common/serializers.py
@@ -381,7 +381,16 @@ class ConfigSerializer(serializers.Serializer):
"""Return the configuration data as a dictionary."""
if not isinstance(instance, str):
instance = list(instance.keys())[0]
- return {'key': instance, **self.instance.get(instance)}
+
+ data = {'key': instance}
+
+ for k, v in self.instance.get(instance, {}).items():
+ if k == 'default_value':
+ # Skip sensitive default values
+ continue
+ data[k] = v
+
+ return data
class NotesImageSerializer(InvenTreeModelSerializer):
diff --git a/src/backend/InvenTree/common/setting/user.py b/src/backend/InvenTree/common/setting/user.py
index 23dee7e5bd..57a117e20e 100644
--- a/src/backend/InvenTree/common/setting/user.py
+++ b/src/backend/InvenTree/common/setting/user.py
@@ -251,6 +251,12 @@ USER_SETTINGS: dict[str, InvenTreeSettingsKeyType] = {
'default': False,
'validator': bool,
},
+ 'SHOW_BOM_SUBASSEMBLY_LEVELS': {
+ 'name': _('Show Subassemblies in BOM table'),
+ 'description': _('Enable display of subassemblies in the BOM table'),
+ 'default': True,
+ 'validator': bool,
+ },
'NOTIFICATION_ERROR_REPORT': {
'name': _('Receive error reports'),
'description': _('Receive notifications for system errors'),
diff --git a/src/backend/InvenTree/common/test_emails.py b/src/backend/InvenTree/common/test_emails.py
index 355167d2c5..0ba8b24b9f 100644
--- a/src/backend/InvenTree/common/test_emails.py
+++ b/src/backend/InvenTree/common/test_emails.py
@@ -103,7 +103,9 @@ class EmailTests(InvenTreeAPITestCase):
)
def test_email_api(self):
"""Test that the email api endpoints work."""
- self.post(reverse('api-email-test'), {'email': 'test@example.org'})
+ self.post(
+ reverse('api-email-test'), {'email': 'test@example.org'}, expected_code=200
+ )
response = self.get(reverse('api-email-list'), expected_code=200)
self.assertIn('subject', response.data[0])
diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py
index bf89f8b6c2..21a9474328 100644
--- a/src/backend/InvenTree/common/tests.py
+++ b/src/backend/InvenTree/common/tests.py
@@ -1332,7 +1332,7 @@ class NotificationTest(InvenTreeAPITestCase):
self.assertEqual(len(self.get(url, expected_code=200).data), 1)
# Read with readall endpoint
- self.get(reverse('api-notifications-readall'), {}, expected_code=200)
+ self.post(reverse('api-notifications-readall'), {}, expected_code=200)
self.assertEqual(NotificationMessage.objects.filter(read=True).count(), 1)
self.assertEqual(len(self.get(url, expected_code=200).data), 1)
diff --git a/src/backend/InvenTree/config_template.yaml b/src/backend/InvenTree/config_template.yaml
index ab5f232127..4b790e7c17 100644
--- a/src/backend/InvenTree/config_template.yaml
+++ b/src/backend/InvenTree/config_template.yaml
@@ -18,15 +18,15 @@
# TO MAINTAINERS: Do not change database strings
database:
# --- Available options: ---
- # ENGINE: Database engine. Selection from:
+ # engine: Database engine. Selection from:
# - mysql
# - postgresql
# - sqlite3
- # NAME: Database name
- # USER: Database username (if required)
- # PASSWORD: Database password (if required)
- # HOST: Database host address (if required)
- # PORT: Database host port (if required)
+ # name: Database name
+ # user: Database username (if required)
+ # password: Database password (if required)
+ # host: Database host address (if required)
+ # port: Database host port (if required)
# Base URL for the InvenTree server (or use the environment variable INVENTREE_SITE_URL)
# site_url: 'http://localhost:8000'
diff --git a/src/backend/InvenTree/generic/states/transition.py b/src/backend/InvenTree/generic/states/transition.py
index ab9c48c47b..80ae2f7f3c 100644
--- a/src/backend/InvenTree/generic/states/transition.py
+++ b/src/backend/InvenTree/generic/states/transition.py
@@ -63,7 +63,7 @@ class TransitionMethod:
result: bool - True if the transition method was successful, False otherwise.
Raises:
- ValidationError: Alert the user that the transition failued
+ ValidationError: Alert the user that the transition failed
"""
raise NotImplementedError(
'TransitionMethod.transition must be implemented'
diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po
index 81e9282eba..75e47597df 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:33\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Language: ar_SA\n"
@@ -104,13 +104,13 @@ msgstr "أدخل التاريخ"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "ملاحظات"
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "البريد الإلكتروني"
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po
index 1459ae58c3..0ff0231d5e 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Language: bg_BG\n"
@@ -104,13 +104,13 @@ msgstr "Въведи дата"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Бележки"
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr ""
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Китайски (опростен)"
msgid "Chinese (Traditional)"
msgstr "Китайски (традиционен)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Част"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Потребител"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Цялостна наличност"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr "Място в склада"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Места в склада"
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po
index eb33c056d7..2a3460c7b3 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-05-01 04:02\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -23,7 +23,7 @@ msgstr "API endpoint nebyl nalezen"
#: InvenTree/api.py:438
msgid "List of items must be provided for bulk operation"
-msgstr ""
+msgstr "Seznam položek musí být k dispozici pro hromadnou operaci"
#: InvenTree/api.py:445
msgid "Items must be provided as a list"
@@ -104,13 +104,13 @@ msgstr "Zadejte datum"
msgid "Invalid decimal value"
msgstr "Neplaté desetinné číslo"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Poznámky"
@@ -165,19 +165,19 @@ msgstr "Data obsahují zakázaný markdown obsah"
#: InvenTree/helpers_model.py:109
msgid "Invalid URL: no hostname"
-msgstr ""
+msgstr "Neplatná URH: žádný název hostitele"
#: InvenTree/helpers_model.py:114
msgid "Invalid URL: hostname could not be resolved"
-msgstr ""
+msgstr "Neplatná URL: nelze zjistit název hostitele"
#: InvenTree/helpers_model.py:120
msgid "URL points to a private or reserved IP address"
-msgstr ""
+msgstr "URL směřuje na soukromou nebo rezervovanou IP adresu"
#: InvenTree/helpers_model.py:195
msgid "Too many redirects"
-msgstr ""
+msgstr "Příliš mnoho přesměrování"
#: InvenTree/helpers_model.py:200
msgid "Connection error"
@@ -215,7 +215,7 @@ msgstr "Zadaná URL adresa není platný soubor obrázku"
msgid "Log in to the app"
msgstr "Přihlásit se do aplikace"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-mail"
@@ -269,7 +269,7 @@ msgstr "Neplatný výběr"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Server zaznamenal chybu."
msgid "Image"
msgstr "Obrazek"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Měna"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Vyberte měnu z dostupných možností"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Toto pole nesmí být nulové."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Neplatná hodnota"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Vzdálený obraz"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL souboru vzdáleného obrázku"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Stahování obrázků ze vzdálené URL není povoleno"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Nepodařilo se stáhnout obrázek ze vzdálené adresy URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Neplatný formát typu obsahu"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Typ obsahu nenalezen"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Typ obsahu neodpovídá požadované třídě mixinu"
@@ -536,11 +536,11 @@ msgstr "Čínština (zjednodušená)"
msgid "Chinese (Traditional)"
msgstr "Čínština (tradiční)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Dostupná aktualizace"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Aktualizace pro InvenTree je k dispozici"
@@ -561,21 +561,21 @@ msgstr "Stav objednávky"
msgid "Parent Build"
msgstr "Nadřazená sestava"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Zahrnout varianty"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Zahrnout varianty"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Zahrnout varianty"
msgid "Part"
msgstr "Díl"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategorie"
@@ -665,89 +665,89 @@ msgstr "Max datum"
msgid "Exclude Tree"
msgstr "Vyloučit strom"
-#: build/api.py:400
+#: build/api.py:414
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:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Spotřební materiál"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Volitelné"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Sestava"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Sledováno"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testovatelné"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Objednávka nevyřízená"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Přiděleno"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Spotřebováno"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Dostupné"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Na objednávku"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
-msgstr ""
+msgstr "Sestava nenalezena"
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Výrobní příkaz"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Lokace"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Výstup"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrovat podle ID výstupní položky zásoby. Použijte 'null' pro nalezení odinstalovaných položek sestavení."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Výrobní příkazy"
@@ -783,9 +783,9 @@ msgstr "Cílové datum musí být po datu zahájení"
msgid "Build Order Reference"
msgstr "Referenční číslo výrobního příkazu"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referenční číslo prodejní objednávky"
msgid "Sales Order to which this build is allocated"
msgstr "Prodejní objednávka, které je tato stavba přiřazena"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Zdrojové umístění"
@@ -861,16 +861,16 @@ msgstr "Stav sestavení"
msgid "Build status code"
msgstr "Stavový kód sestavení"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Kód dávky"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Dávkový kód pro tento výstup sestavení"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Datum vytvoření"
@@ -907,120 +907,120 @@ msgstr "Vystavil"
msgid "User who issued this build order"
msgstr "Uživatel, který vystavil tento výrobní příkaz"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Odpovědný"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Uživatel nebo skupina odpovědná za tento výrobní příkaz"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Externí odkaz"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Odkaz na externí URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Priorita sestavení"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Priorita tohoto výrobního příkazu"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Kód projektu"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Kód projektu pro tento výrobní příkaz"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Nelze dokončit výrobní příkaz s otevřenými podobjednávkami"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Nelze dokončit výrobní příkaz s neúplnými výstupy"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Nepodařilo se uvolnit úlohu pro dokončení přidělení sestavy"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Výrobní příkaz {build} byl dokončen"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Výrobní příkaz byl dokončen"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nebyl specifikováno žádný výstup sestavení"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Výstup sestavení je již dokončen"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Výstup neodpovídá výrobnímu příkazu"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Množství musí být vyšší než nula"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
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:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Výstup výroby neprošel všemi požadovanými testy"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "Přiřazené skladové položky jsou stále ve výrobě"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Nelze částečně dokončit výrobní příkaz s přiřazenými položkami"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Řádková položka výrobního příkazu"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Vytvořit objekt"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Vytvořit objekt"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Množství"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Vyžadované množství pro výrobní příkaz"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Množství spotřebovaných zásob"
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Vybraná skladová položka neodpovídá řádku kusovníku"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "Přiřazené množství musí být vyšší než nula"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Množství musí být 1 pro zřetězený sklad"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Skladová položka je nadměrně zabrána"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Skladové položky"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Zdrojová skladová položka"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Skladové množství pro sestavení"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Instalovat do"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Cílová skladová položka"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Úroveň sestavení"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Název dílu"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Vytvořit výstup"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Vytvořený výstup neodpovídá nadřazenému sestavení"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Výstupní díl se neshoduje s dílem výrobního příkazu"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Výstup sestavení je již dokončen"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Tento stavební výstup není plně přiřazen"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Zadejte množství pro výstup sestavení"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Celé množství požadované pro sledovatelné díly"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Sériová čísla"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Zadejte sériová čísla pro sestavení výstupů"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Skladové umístění pro výstup sestavy"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Automaticky zvolit sériová čísla"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Musí být uveden seznam výstupů sestavy"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Skladové umístění pro sešrotované výstupy"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Zahodit alokace"
-#: build/serializers.py:493
+#: build/serializers.py:501
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:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Důvod vyřazení výstupu(ů) sestavy"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Umístění dokončených výstupů sestavy"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Přijmout neúplné přidělení"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Spotřebovat přidělené zásoby"
-#: build/serializers.py:691
+#: 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:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Odstranit neúplné výstupy"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Není povoleno"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Přijmout jako spotřebované tímto výrobním příkazem"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Uvolnit před dokončením tohoto výrobního příkazu"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Nadměrně přidělené zásoby"
-#: build/serializers.py:757
+#: build/serializers.py:765
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 tomuto výrobnímu příkazu"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Některé skladové položky byly nadměrně přiděleny"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Přijmout nepřidělené"
-#: build/serializers.py:775
+#: 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 tomuto výrobnímu příkazu"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Požadované zásoby nebyly plně přiděleny"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Přijmout neúplné"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Požadované množství sestavy nebylo dokončeno"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Výrobní příkaz má otevřené podpříkazy"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Výrobní příkaz musí být ve stavu produkce"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Výrobní příkaz má neúplné výstupy"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linka sestavy"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Výstup sestavy"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Výstup sestavy musí odkazovat na stejnou sestavu"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Řádková položka sestavy"
-#: build/serializers.py:926
+#: build/serializers.py:934
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 výrobní příkaz"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Položka musí být skladem"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Dostupné množství ({q}) překročeno"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Položky přidělení musí být poskytnuty"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Vynechat lokace"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Vyloučit skladové položky z tohoto vybraného umístění"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Zaměnitelné zásoby"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Náhradní zásoby"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Povolit přidělování náhradních dílů"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Volitelné položky"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Přiřazení volitelných položek kusovníku k objednávce sestavy"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "Všechny položky"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr "Nesledované položky"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr "Sledované položky"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "Typ položky"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr "Vyberte typ položky pro automatické přiřazení"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Reference v kusovníku"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID dílu kusovníku"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Název dílu kusovníku"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "Informace instalace"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Sestavení"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Díl dodavatele"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Přidělené množství"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Reference sestavení"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Název kategorie dílů"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Sledovatelné"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Zděděno"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Povolit varianty"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Položka kusovníku"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Ve výrobě"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Naplánováno na sestavení"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Externí zásoby"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Dostupné zásoby"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Dostupné náhradní zásoby"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Dostupná varianta skladu"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Spotřebované množství přesahuje přidělené množství"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Nepovinné poznámky ke spotřebě zásob"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "Sestavení položky musí odkazovat na správný výrobní příkaz"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Duplikovat přidělení položky sestavení"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "Výrobní linka musí odkazovat na správný výrobní příkaz"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Duplikovat přiřazení výrobní linky"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Musí být poskytnuta alespoň jedna linka nebo předmět"
@@ -1494,7 +1494,7 @@ msgstr "Pozastaveno"
msgid "Cancelled"
msgstr "Zrušeno"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Opožděný výrobní příkaz"
msgid "Build order {bo} is now overdue"
msgstr "Objednávka sestavy {bo} je nyní opožděná"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Je odkaz"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Je soubor"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Uživatel nemá oprávnění k odstranění těchto příloh"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Uživatel nemá oprávnění k odstranění této přílohy"
@@ -1550,7 +1550,7 @@ msgstr "Nejsou uvedeny žádné platné kódy měn"
msgid "No plugin"
msgstr "Žádný plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Popisek kódu projektu"
@@ -1617,7 +1617,7 @@ msgstr "Klíčový text musí být jedinečný"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Uživatel"
msgid "Price break quantity"
msgstr "Množství cenové slevy"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Cena"
@@ -1652,7 +1652,7 @@ msgstr "Název tohoto webhooku"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktivní"
@@ -1849,7 +1849,7 @@ msgstr "Velikost souboru"
msgid "File size in bytes"
msgstr "Velikost souboru v bytech"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Uveden neplatný typ modelu pro přílohu"
@@ -2058,7 +2058,7 @@ msgstr "Parametry zaškrtávacího pole nemohou mít jednotky"
msgid "Checkbox parameters cannot have choices"
msgstr "Parametry zaškrtávacího pole nemohou mít výběr"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Volby musí být jedinečné"
@@ -2094,7 +2094,7 @@ msgstr "Zaškrtávací políčko"
msgid "Is this parameter a checkbox?"
msgstr "Je tento parametr zaškrtávací políčko?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Volby"
@@ -2106,7 +2106,7 @@ msgstr "Platné volby pro tento parametr (oddělené čárkami)"
msgid "Selection list for this parameter"
msgstr "Seznam výběru pro tento parametr"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Povoleno"
@@ -2126,7 +2126,7 @@ msgstr "Parametry"
msgid "Invalid choice for parameter value"
msgstr "Neplatná volba pro hodnotu parametru"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Neplatný typ modelu pro daný parametr"
@@ -2140,7 +2140,7 @@ msgstr "ID cílového modelu pro tento parametr"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Šablona"
@@ -2148,7 +2148,7 @@ msgstr "Šablona"
msgid "Parameter template"
msgstr "Šablona parametru"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Data"
@@ -2156,18 +2156,18 @@ msgstr "Data"
msgid "Parameter Value"
msgstr "Hodnota parametru"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Poznámka"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Volitelné pole pro poznámku"
@@ -2391,85 +2391,85 @@ msgstr "Indikuje zdali bylo nastavení přepsáno proměnou prostředí"
msgid "Override"
msgstr "Přepsat"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Je spuštěné"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Čekající úkoly"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Naplánované úlohy"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Neúspěšné úlohy"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID úlohy"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Unikátní ID úlohy"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Zamknout"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Čas uzamčení"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Jméno úkolu"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funkce"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Název funkce"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumenty"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumenty úlohy"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Argumenty klíčových slov"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Argumenty klíčových slov úlohy"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Název souboru"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Typ modelu"
-#: common/serializers.py:790
+#: common/serializers.py:799
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"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "Uživatel nemá práva vytvářet nebo upravovat parametry pro tento model"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Tento výběr je uzamčen"
@@ -2547,19 +2547,19 @@ msgstr "Zobrazovat okno `o aplikaci` pouze superuživatelům"
#: common/setting/system.py:239
msgid "Show superuser banner"
-msgstr ""
+msgstr "Zobrazit banner superuživatele"
#: common/setting/system.py:240
msgid "Show a warning banner in the UI when logged in as superuser"
-msgstr ""
+msgstr "Zobrazit varovný banner v uživatelském rozhraní při přihlášení jako superuživatel"
#: common/setting/system.py:245
msgid "Show admin banner"
-msgstr ""
+msgstr "Zobrazit banner administrátora"
#: common/setting/system.py:246
msgid "Show a warning banner in the UI when logged in as admin"
-msgstr ""
+msgstr "Zobrazit varovný banner v uživatelském rozhraní při přihlášení jako administrátor"
#: common/setting/system.py:251 company/models.py:147 company/models.py:148
msgid "Company name"
@@ -2859,8 +2859,8 @@ msgstr "Díly jsou ve výchozím nastavení šablony"
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/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponent"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Vypnuto: Celá kategorie se ukáže jako nápověda. Zapnuto: Celá kategorie se ukáže jako prostý text."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr "Zobrazit podsestavy v tabulce kusovníku"
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr "Povolit zobrazení podsestav v tabulce kusovníku"
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Přijímat zprávy o chybách"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Dostávat oznámení o systémových chybách"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Poslední použité tiskárny"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Uložte poslední použité tiskárny pro uživatele"
@@ -3988,33 +3996,33 @@ msgstr "Díl je aktivní"
msgid "Manufacturer is Active"
msgstr "Výrobce je aktivní"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Díl dodavatele je aktivní"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr "Primární díl dodavatele"
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Interní díl je aktivní"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Dodavatel je aktivní"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Výrobce"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Společnost"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Má zásoby"
@@ -4195,7 +4203,7 @@ msgstr "Doručovací poznámky pro interní použití"
msgid "Link to address information (external)"
msgstr "Odkaz na informace o adrese (externí)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Výrobce dílu"
@@ -4213,12 +4221,12 @@ msgstr "Zvolte díl"
msgid "Select manufacturer"
msgstr "Vyberte výrobce"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Číslo dílu výrobce"
@@ -4242,8 +4250,8 @@ msgstr "Jednotky balení musí být větší než nula"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Dodavatel"
msgid "Select supplier"
msgstr "Vyberte dodavatele"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Skladová evidence dodavatele"
@@ -4282,16 +4290,16 @@ msgstr "Adresa URL pro odkaz na externí díl dodavatele"
msgid "Supplier part description"
msgstr "Popis dílu dodavatele"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "základní cena"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimální poplatek (např. poplatek za skladování)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Balení"
@@ -4307,7 +4315,7 @@ msgstr "Počet kusů v balení"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "více"
@@ -4339,14 +4347,18 @@ msgstr "Výchozí měna používaná pro tohoto dodavatele"
msgid "Company Name"
msgstr "Jméno společnosti"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Skladem"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Množstevní sleva"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr "Hezké jméno"
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Při exportu dat došlo k chybě"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Existující databázový identifikátor pro tento záznam"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Sloupec je již napamován k poli databáze"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Pole je již namapováno do datového sloupce"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Mapování sloupců musí být připojeno k platné relaci importu"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Sloupec neexistuje v datovém souboru"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Pole neexistuje v cílovém modelu"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Vybrané pole je pouze pro čtení"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Importovací relace"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Pole"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Sloupec"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Index řádku"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Původní data řádku"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Chyby"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Platné"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "ID je vyžadováno pro aktualizaci existujících záznamů."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Žádný záznam nalezen pro zadané ID"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Poskytnut neplatný formát ID"
@@ -4821,7 +4833,7 @@ msgstr "Objednávka"
msgid "Order Complete"
msgstr "Objednávka byla dokončena"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Interní díl"
@@ -4839,7 +4851,7 @@ msgstr "Má zásilku"
#: order/api.py:1442
msgid "Shipment not found"
-msgstr ""
+msgstr "Zásilka nebyla nalezena"
#: order/api.py:1840 order/models.py:577 order/models.py:1973
#: order/models.py:2099
@@ -4918,7 +4930,7 @@ msgstr "Datum zahájení"
msgid "Scheduled start date for this order"
msgstr "Plánované datum zahájení této objednávky"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Cílené datum"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Číslo objednávky"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Stav"
@@ -5010,10 +5022,10 @@ msgstr "Množství musí být kladné"
#: order/models.py:1072
msgid "Serial numbers cannot be assigned to virtual parts"
-msgstr ""
+msgstr "Sériová čísla nemohou být přiřazena virtuálním dílům"
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5077,11 +5089,11 @@ msgstr "Množství položky"
#: order/models.py:1814
msgid "Line Number"
-msgstr ""
+msgstr "Číslo linky"
#: order/models.py:1815
msgid "Line number for this item (optional)"
-msgstr ""
+msgstr "Číslo řádku pro tuto položku (nepovinné)"
#: order/models.py:1822
msgid "Line item reference"
@@ -5139,7 +5151,7 @@ msgstr "Doručeno"
msgid "Number of items received"
msgstr "Počet přijatých položek"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Nákupní cena"
@@ -5211,8 +5223,8 @@ msgstr "Kontroloval(a)"
msgid "User who checked this shipment"
msgstr "Uživatel, který zkontroloval tuto zásilku"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Doprava"
@@ -5277,7 +5289,7 @@ msgstr "Přidělené množství nesmí překročit množství zásob"
msgid "Allocation quantity must be greater than zero"
msgstr "Zabrané množství musí být větší než nula"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Množství musí být 1 pro serializovanou skladovou položku"
@@ -5393,7 +5405,7 @@ msgstr "Kopírovat extra řádky"
msgid "Copy extra line items from the original order"
msgstr "Kopírovat extra řádkové položky z původní objednávky"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopírovat parametry"
@@ -5412,216 +5424,216 @@ msgstr "Řádkové položky"
msgid "Completed Lines"
msgstr "Dokončené řádky"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Duplikovat objednávku"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Specifikujte možnosti pro duplikaci této objednávky"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Neplatné ID objednávky"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Název dodavatele"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Objednávku nelze zrušit"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
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:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Objednávka má nedokončené řádkové položky"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Objednávka není otevřena"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Automatická cena"
-#: order/serializers.py:653
+#: order/serializers.py:678
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:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Měna nákupní ceny"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Sloučit položky"
-#: order/serializers.py:691
+#: order/serializers.py:728
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:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Číslo zboží (SKU)"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Interní číslo dílu"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Interní název dílu"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Musí být uveden díl dodavatele"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Objednávka musí být zadána"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Dodavatel musí odpovídat objednávce"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Objednávka musí odpovídat dodavateli"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Řádková položka"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Vyberte cílové umístění pro přijaté položky"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Zadat kód šarže pro příchozí skladové položky"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Datum expirace"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Zadejte datum expirace pro příchozí skladové položky"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Zadat sériová čísla pro příchozí skladové položky"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Přepsat informace o obalu pro příchozí skladové položky"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Dodatečná poznámka pro příchozí skladové položky"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Čárový kód"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Naskenovaný čárový kód"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Tento čárový kód se již používá"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Musí být uvedeny řádkové položky"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Místo určení musí být specifikováno"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Hodnoty dodaných čárových kódů musí být unikátní"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Zásilky"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Dokončené zásilky"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr "Přidělené řádky"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Měna prodejní ceny"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Přidělené položky"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Nebyly poskytnuty žádné údaje o zásilce"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Řádková položka není přiřazena k této objednávce"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Množství musí být kladné"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Zadejte sériová čísla pro přidělení"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Zásilka již byla odeslána"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Zásilka není spojena s touto objednávkou"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Nebyla nalezena žádná shoda pro následující sériová čísla"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Následující sériová čísla nejsou k dispozici"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Řádkový předmět vratky"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Řádková položka neodpovídá vratce"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Řádková položka již byla přijata"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Položky lze přijímat pouze proti objednávkám, které probíhají"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Množství k vrácení"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Měna ceny řádku"
@@ -5732,71 +5744,71 @@ msgstr "Vyloučit podkategorie v zadané kategorii"
msgid "Has Results"
msgstr "Má výsledky"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Je varianta"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Je revizí"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Má revize"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "Kusovník schválen"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Kaskádové kategorie"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Pokud je pravda, zahrne položky z podkategorií dané kategorie"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtrovat podle numerického ID kategorie nebo doslovného 'null'"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr "Sestavený díl je aktivní"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr "Sestavený díl je sledovatelný"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Sestavený díl je testovatelný"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr "Kompotenta je aktivní"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr "Komponenta je sledovatelná"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Díl komponenty je testovatelný"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr "Komponenta je část sestavy"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr "Komponenta je virtuální"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr "Má dostupné zásoby"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Využití"
@@ -5805,7 +5817,7 @@ msgstr "Využití"
msgid "Part Category"
msgstr "Kategorie dílu"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Kategorie dílů"
@@ -5837,7 +5849,7 @@ msgstr "Výchozí klíčová slova pro díly v této kategorii"
msgid "Icon"
msgstr "Ikona"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikona (volitelná)"
@@ -5858,7 +5870,7 @@ msgstr "Výchozí hodnota"
msgid "Default Parameter Value"
msgstr "Výchozí hodnota parametru"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Díly"
@@ -5903,7 +5915,7 @@ msgstr "Díl nemůže být revize same sebe"
#: part/models.py:783
msgid "Revision code must be specified for a part marked as a revision"
-msgstr ""
+msgstr "Kód revize musí být specifikován pro díl označený jako revize"
#: part/models.py:791
msgid "Revisions are only allowed for assembly parts"
@@ -5973,7 +5985,7 @@ msgstr "Klíčová slova dílu pro zlepšení vyhledávání"
msgid "Part category"
msgstr "Kategorie dílu"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "Interní číslo dílu (IPN)"
@@ -6006,7 +6018,7 @@ msgstr "Výchozí expirace"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Expirační čas (ve dnech) pro zásoby tohoto dílu"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimální zásoby na skladě"
@@ -6086,756 +6098,756 @@ msgstr "Vytváření uživatele"
msgid "Owner responsible for this part"
msgstr "Vlastník odpovědný za tento díl"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Prodat více"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Měna použitá pro výpočet cen v mezipaměti"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimální cena kusovníku"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Minimální cena komponent dílu"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maximální cena kusovníku"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Maximální cena komponent dílu"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimální nákupní cena"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Minimální historická nákupní cena"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maximální nákupní cena"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Maximální historická nákupní cena"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimální interní cena"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Minimální cena závislá na množstevní slevě"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maximální interní cena"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Maximální cena závislá na množstevní slevě"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimální cena dodavatele"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Minimální cena dílu od externích dodavatelů"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maximální cena dodavatele"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Maximální cena dílu od externích dodavatelů"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimální cena variant"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Vypočítané minimální náklady na varianty dílů"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maximální cena variant"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Vypočítané maximální náklady na varianty dílů"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimální cena"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Přepsat minimální náklady"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maximální cena"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Přepsat maximální náklady"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Vypočítané minimální celkové náklady"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Vypočítané maximální celkové náklady"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimální prodejní cena"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Minimální prodejní cena na základě cenových zvýhodnění"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maximální prodejní cena"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Maximální prodejní cena na základě cenových zvýhodnění"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Minimální prodejní cena"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Minimální historická prodejní cena"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maximální prodejní cena"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Maximální historická prodejní cena"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Díl na inventuru"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Počet položek"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Počet jednotlivých položek zásob v době inventury"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Celkové dostupné zásoby v době inventury"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Datum"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Datum provedení inventury"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimální cena zásob"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Odhadovaná minimální cena zásob k dispozici"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maximální cena zásob"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Odhadovaná maximální cena zásob k dispozici"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Částeční sleva v ceně"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Šablona testu položky"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Neplatný název šablony - musí obsahovat alespoň jeden alfanumerický znak"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Zkušební šablony lze vytvořit pouze pro testovatelné části"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Testovací šablona se stejným klíčem již existuje pro díl"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Název testu"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Zadejte název testu"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Testovací klíč"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Zjednodušený klíč pro testování"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Popis testu"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Zadejte popis pro tento test"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Je tento test povolen?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Požadováno"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Je tato zkouška vyžadována k projití?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Požadovaná hodnota"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Vyžaduje tato zkouška hodnotu při výpočtu výsledku zkoušky?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Vyžaduje přílohu"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Vyžaduje tato zkouška soubor při přidání výsledku testu?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Platné volby pro tento test (oddělené čárkami)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "Položku kusovníku nelze změnit - sestava je uzamčena"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "Položku kusovníku nelze změnit - varianta montáže je uzamčena"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Vyberte nadřazený díl"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Poddílec"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Vyberte díl které bude použit v kusovníku"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Kusovníkové množství pro tuto kusovníkovou položku"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Tato položka kusovníku je nepovinná"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Tento předmět kusovníku je spotřebovatelný (není sledován v objednávkách stavby)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Nastavit množství"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "Dodatečné množství potřebné pro sestavení k vyúčtování ztráty nastavení"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Přirozené ztráty"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Odhadované přirozené ztráty pro stavbu, vyjádřeno v procentech (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Zaokrouhlení více"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Zaokrouhlit požadované množství produkce na nejbližší násobek této hodnoty"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Reference položky kusovníku"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Poznámky k položce kusovníku"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Kontrolní součet"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Kontrolní součet řádku kusovníku"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Schváleno"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Tato položka kusovníku ještě nebyla schválena"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Se zdědí"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Tento kusovník se zdědí kusovníky pro varianty dílů"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Skladové položky pro varianty dílu lze použít pro tuto položku kusovníku"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Množství musí být celé číslo pro sledovatelné díly"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Poddíl musí být specifikován"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Náhradní položka kusovníku"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Náhradní díl nemůže být stejný jako hlavní díl"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Nadřazená položka kusovníku"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Náhradní díl"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Díl 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Díl 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Vyberte související díl"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Poznámka pro tento vztah"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Část vztahu nemůže být vytvořena mezi dílem samotným"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Duplicitní vztah již existuje"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Nadřazená kategorie"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Nadřazená kategorie dílu"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Podkategorie"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Výsledky"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Počet výsledků zaznamenaných podle této šablony"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Nákupní měna této skladové položky"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Soubor není obrázek"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Původní díl"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Vyberte původní díl, který má být duplikován"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopírovat obrázek"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Kopírovat obrázek z původního dílu"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Kopírovat kusovník"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Kopírovat kusovník z původního dílu"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Kopírovat data parametrů z původního dílu"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Kopírovat poznámky"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Kopírovat poznámky z původního dílu"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Kopírovat testy"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Kopírovat testovací šablony z původního dílu"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Počáteční skladové množství"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Zadejte počáteční skladové množství pro tuto část. Pokud je množství nulové, není přidáno žádné."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Počáteční skladové místo"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Zadejte počáteční skladové místo pro tento díl"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Vyberte dodavatele (nebo nechte prázdné pro přeskočení)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Vyberte výrobce (nebo nechte prázdné pro přeskočení)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Číslo dílu výrobce"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Vybraná společnost není platný dodavatel"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Vybraná společnost není platný výrobce"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Výrobce dílu se stejným MPN již existuje"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Dodavatelský díl s tímto SKU již existuje"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Název kategorie"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Budova"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Množství tohoto dílu, které je v současné době ve výrobě"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Zbývající množství tohoto dílu, které má být postaveno"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Skladové položky"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Revize"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Celkem skladem"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Nezařazené zásoby"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Skladové varianty"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Duplikovat díl"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Kopírovat počáteční data z jiného dílu"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Počáteční zásoby"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Vytvořit díl s počátečním množstvím zásob"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Informace o dodavateli"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Přidat počáteční informace dodavatele pro tento díl"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kopírovat parametry kategorie"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Kopírovat šablony parametrů z vybrané kategorie dilu"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Stávající obrázek"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Název souboru existujícího obrázku dílu"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Obrázek neexistuje"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Schválit celý kusovník"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Lze postavit"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Vyžadováno pro výrobní objednávku"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Přířazeno výrobním objednávkám"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Vyžadováno pro prodejní objednávky"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Přiřazeno prodejním objednávkám"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr "IPN dílu"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr "Popis dílu"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Vyberte díl u kterého chce vytvořit informace inventury (i pro jeho varianty)"
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Vyberte kategorii pro obsažení všech dílů v dané kategorii (a podkategoriích)"
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Vyberte lokaci pro obsažení všech dílů se zásobami na dané lokaci (včetně pod-lokací)"
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr "Generovat vstupy inventury"
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr "Uložit vstupy inventury pro vybrané díly"
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr "Generovat report"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr "Generovat report inventury pro vybrané díly"
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minimální cena"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Přespat vypočítanou hodnotu pro minimální cenu"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Měna minimální ceny"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Maximální cena"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Přespat vypočítanou hodnotu pro maximální cenu"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Měna maximální ceny"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Aktualizovat"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Aktualizovat cenu pro díl"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Nelze převést z poskytnutých měn na {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimální cena musí být vyšší než maximální cena"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Maximální cena nesmí být nížší než minimální cena"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr "Množství musí být větší nebo rovno nule"
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Vybrat nadřazenou sestavu"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Vyberte komponentu dílu"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Vyberte díl pro kopírování kusovníku z"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Odstranit existující data"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Odstranit existující položky kusovníku před kopírováním"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Zahrnout zděděné"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Zahrnout položky kusovníku které jsou zdědené z šablonových dílů"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Přeskočit neplatné řádky"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Povolte tuto možnost pro přeskočení neplatných řádků"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Kopírovat náhradní díly"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopírovat náhradní díly při duplikaci položek kusovníku"
@@ -7639,7 +7651,7 @@ msgstr "Dodavatel, který funguje jako 'TME'"
#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
-msgstr ""
+msgstr "Pouze superuživatelské účty mohou spravovat pluginy"
#: plugin/installer.py:243
msgid "Plugin installation is disabled"
@@ -7647,11 +7659,11 @@ msgstr "Instalace pluginu je zakázana"
#: plugin/installer.py:273
msgid "No package name or URL provided for installation"
-msgstr ""
+msgstr "Není k dispozici žádný název balíčku nebo URL pro instalaci"
#: plugin/installer.py:277
msgid "Invalid characters in package name or URL"
-msgstr ""
+msgstr "Neplatné znaky v názvu balíčku nebo v URL"
#: plugin/installer.py:287
msgid "Installed plugin successfully"
@@ -7758,7 +7770,7 @@ msgstr "Balíčkový plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Nebyl nalezen žádný autor"
@@ -8172,7 +8184,7 @@ msgstr "Popis souboru aktiva"
#: report/serializers.py:37
msgid "User must be authenticated to save report templates"
-msgstr ""
+msgstr "Uživatel musí být ověřen pro uložení šablon reportu"
#: report/serializers.py:118
msgid "Select report template"
@@ -8288,7 +8300,7 @@ msgstr "Report o testu skladové položky"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Instalované položky"
@@ -8323,15 +8335,15 @@ msgstr "Žádný výsledek"
#: report/templatetags/report.py:166
msgid "Invalid media file path"
-msgstr ""
+msgstr "Neplatná cesta k media souboru"
#: report/templatetags/report.py:185
msgid "Invalid static file path"
-msgstr ""
+msgstr "Neplatná cesta ke statickému souboru"
#: report/templatetags/report.py:287
msgid "Asset file not found"
-msgstr ""
+msgstr "Soubor aktiva nebyl nalezen"
#: report/templatetags/report.py:345 report/templatetags/report.py:461
msgid "Image file not found"
@@ -8339,7 +8351,7 @@ msgstr "Soubor obrázku nebyl nalezen"
#: report/templatetags/report.py:430
msgid "No image file specified"
-msgstr ""
+msgstr "Nebyl zadán žádný obrázek"
#: report/templatetags/report.py:455
msgid "part_image tag requires a Part instance"
@@ -8361,7 +8373,7 @@ msgstr "Filtrovat dle nejvyšší lokace"
msgid "Include sub-locations in filtered results"
msgstr "Zahrnout pod-lokace ve filtrovaných výsledcích"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Nadřazená místo"
@@ -8445,7 +8457,7 @@ msgstr "Datum expirace ped"
msgid "Expiry date after"
msgstr "Datum expirace po"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Zastaralé"
@@ -8530,7 +8542,7 @@ msgstr "Výchozí ikona pro všechny lokace které nemají ikonu nastavenou (vol
msgid "Stock Location"
msgstr "Skladové umístění"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Skladová umístění"
@@ -8579,7 +8591,7 @@ msgstr "Díl musí být zadán"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Skladové položky nelze umístit do strukturálních skladových umístění!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Nelze vytvořit skladovou položku pro virtuální díl"
@@ -8624,7 +8636,7 @@ msgstr "Vyberte odpovídající díl dodavatele pro tuto skladovou položku"
msgid "Where is this stock item located?"
msgstr "Kde se tato skladová položka nachází?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Balení, ve kterém je tato skladová položka uložena"
@@ -8640,7 +8652,7 @@ msgstr "Je tato položka nainstalována v jiné položce?"
msgid "Serial number for this item"
msgstr "Sériové číslo pro tuto položku"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Kód šarže pro tuto skladovou položku"
@@ -8753,7 +8765,7 @@ msgstr "Skladová položka je ve výrobě"
msgid "Serialized stock cannot be merged"
msgstr "Serializované zásoby nelze sloučit"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Duplicitní skladové položky"
@@ -8877,7 +8889,7 @@ msgstr "Vyberte díl, pro který se má vygenerovat sériové číslo"
msgid "Quantity of serial numbers to generate"
msgstr "Množství sériových čísel k vygenerování"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Testovací šablona pro tento výsledek"
@@ -8901,222 +8913,222 @@ msgstr "Nadřazená položka"
msgid "Parent stock item"
msgstr "Nadřazená skladová položka"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Použít velikost balení při přidání: definované množství je počet v balení"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "Použít velikost balení"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Zadejte sériová čísla pro nové položky"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Číslo dílu dodavatele"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Expirováno"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Podřízené položky"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Sledování položky"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Nákupní cena této skladové položky za jednotku nebo balení"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Zadejte počet skladových položek k serializaci"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "Nebyla poskytnuta žádná skladová položka"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Množství nesmí překročit dostupné skladové množství ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Cílové skladové umístění"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "K tomuto dílu nelze přiřadit sériová čísla"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Sériová čísla již existují"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Vyberte skladovou položku k instalaci"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Množství k instalaci"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Zadejte množství položek k instalaci"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Přidat poznámku o transakci (volitelné)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Množství k instalaci musí být alespoň 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Skladová položka je nedostupná"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Vybraný díl není v kusovníku"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Množství k instalaci nesmí překročit dostupné množství"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Cílové umístění pro odinstalovanou položku"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Vyberte díl pro převedení do skladové položky"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Vybraný díl není platnou volbou pro převod"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Nelze převést skladovou položku s přiřazeným dílem dodavetele"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Stavový kód skladové položky"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Vybrat skladové položky pro změnu stavu"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Nejsou vybrány žádné skladové položky"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Podumístění"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Nadřazené skladové umístění"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Díl musí být prodejný"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Položka je přidělena prodejní objednávce"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Položka je přidělena výrobnímu příkazu"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Zákazník, kterému mají být přiděleny skladové položky"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Vybraná společnost není zákazník"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Poznámky ke skladové položce"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Musí být poskytnut seznam skladových položek"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Poznámky ke sloučení skladových položek"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Povolit neodpovídající dodavatele"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Povolit sloučení skladových položek s různými díly dodavatele"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Povolit neodpovídající stav"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Povolit sloučení skladových položek s různými stavovými kódy"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Musí být poskytnuty alespoň dvě skladové položky"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Beze změny"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Hodnota primárního klíče skladové položky"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Skladová položka není skladem"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "Skladová položka je již na skladě"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "Množství nesmí být záporné"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Poznámky ke skladovací transakci"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "Sloučit do existující zásoby"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "Sloučit vrácené položky do existujích položek, pokud je to možné"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Další sériové číslo"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Předchozí sériové číslo"
@@ -9582,115 +9594,119 @@ msgstr "Primární skupina"
msgid "Primary group for the user"
msgstr "Primární skupina uživatele"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Administrátor"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr "Kusovník"
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Zakoupené objednávky"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Prodejní objednávky"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Návratové objednávky"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Uživatelské jméno"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Křestní jméno"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Křestní jméno uživatele"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Příjmení"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Příjmení uživatele"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Emailová adresa uživatele"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
-msgstr ""
+msgstr "Uživatel musí být autentizován"
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
-msgstr ""
+msgstr "Pouze superuživatel může vytvořit token pro jiného uživatele"
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
-msgstr ""
+msgstr "Administrátor"
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
-msgstr ""
+msgstr "Má tento uživatel administrativní oprávnění"
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Super-uživatel"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Je tento uživatel superuživatel"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Je tento uživatelský účet aktivní"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Pouze superuživatel může toto pole upravit"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Heslo"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Heslo uživatele"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Přepsat varování"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Přepsat varování o pravidlech pro heslo"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
-msgstr ""
+msgstr "Personál"
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "Má tento uživatel oprávnění personálu"
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Nemáte oprávnění k vytváření uživatelů"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Váš účet byl vytvořen."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Pro přihlášení použijte funkci obnovení hesla"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Vítejte v InvenTree"
diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po
index 8dd82cb034..7c2c76c934 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -104,13 +104,13 @@ msgstr "Angiv dato"
msgid "Invalid decimal value"
msgstr "Ugyldig decimalværdi"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Bemærkninger"
@@ -215,7 +215,7 @@ msgstr "Angivet URL er ikke en gyldig billedfil"
msgid "Log in to the app"
msgstr "Log ind på appen"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-mail"
@@ -269,7 +269,7 @@ msgstr "Ugyldigt valg"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "En fejl blev logget af serveren."
msgid "Image"
msgstr "Billede"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Skal være et gyldigt tal"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Vælg valuta fra tilgængelige muligheder"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Dette felt kan ikke være tomt."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Ugyldig værdi"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Eksternt billede"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL til ekstern billedfil"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Download af billeder fra ekstern URL er ikke aktiveret"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Kinesisk (forenklet)"
msgid "Chinese (Traditional)"
msgstr "Kinesisk (traditionelt)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Opdatering tilgængelig"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "En opdatering til InvenTree er tilgængelig"
@@ -561,21 +561,21 @@ msgstr "Ordre status"
msgid "Parent Build"
msgstr "Overordnet produktion"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Del"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategori"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Produktion skal anulleres, før den kan slettes"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Forbrugsvare"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Valgfri"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Sporet"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Ordre Udestående"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Allokeret"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tilgængelig"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Produktionsordre"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Lokation"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Produktionsordrer"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Produktionsordre reference"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Salgsordrereference"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Kilde Lokation"
@@ -861,16 +861,16 @@ msgstr "Produktions Status"
msgid "Build status code"
msgstr "Produktions statuskode"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Batch Kode"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Batch kode til dette produktions output"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Oprettelsesdato"
@@ -907,120 +907,120 @@ msgstr "Udstedt af"
msgid "User who issued this build order"
msgstr "Bruger som udstedte denne byggeordre"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Ansvarlig"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Bruger eller gruppe ansvarlig for denne byggeordre"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Ekstern link"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link til ekstern URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Bygge Prioritet"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioritet af denne byggeordre"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Projektkode"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Projektkode for denne byggeordre"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Bygningsordre {build} er fuldført"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "En byggeordre er fuldført"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Antal"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Lagervarer"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Kilde lagervare"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Del Navn"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Serienummer"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Indtast serienumre for bygge output"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Automatisk alloker serienumre"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Følgende serienumre findes allerede eller er ugyldige"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Ikke tilladt"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Accepter som forbrugt af denne byggeordre"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Accepter Ikke tildelt"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Accepter ufuldført"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Bygge linje"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Varen skal være på lager"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Tilgængeligt antal ({q}) overskredet"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Stykliste Reference"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "Stykliste del ID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Stykliste Del Navn"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Byg"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Leverandør Del"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Tildelt Antal"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Stykliste Del"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "I Produktion"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Ekstern Lager"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Tilgængelig Lager"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "På Hold"
msgid "Cancelled"
msgstr "Annulleret"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr "Ingen plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Projekt Kode Label"
@@ -1617,7 +1617,7 @@ msgstr "Nøglestrengen skal være unik"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Bruger"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Pris"
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1849,7 +1849,7 @@ msgstr "Filstørrelse"
msgid "File size in bytes"
msgstr "Filstørrelse i bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Filnavn"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Fornavn på brugeren"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Efternavn"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Efternavn på brugeren"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Email adresse på brugeren"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superbruger"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Er denne bruger en superbruger"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Er denne brugerkonto aktiv"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Kun en superbruger kan justere dette felt"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Adgangskode"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Brugers adgangskode"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Tilsidesæt advarsel"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Tilsidesæt advarslen om adgangskode regler"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Du har ikke tilladelse til at oprette brugere"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Din konto er oprettet."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Benyt funktionen til nulstilling af adgangskode til at logge ind"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Velkommen til InvenTree"
diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po
index ad951bf9b0..af696de318 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -104,13 +104,13 @@ msgstr "Datum eingeben"
msgid "Invalid decimal value"
msgstr "Ungültiger Dezimalwert"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notizen"
@@ -215,7 +215,7 @@ msgstr "Angegebene URL ist kein gültiges Bild"
msgid "Log in to the app"
msgstr "Bei der App anmelden"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Email"
@@ -269,7 +269,7 @@ msgstr "Ungültige Auswahl"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Ein Fehler wurde vom Server protokolliert."
msgid "Image"
msgstr "Bild"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Währung"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Währung aus verfügbaren Optionen auswählen"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Dieses Feld darf nicht leer sein."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Ungültiger Wert"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Grafiken aus externen Quellen"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL der Remote-Bilddatei"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Fehler beim Herunterladen des Bildes von entfernter URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Content type stimmt nicht mit der benötigten Mixin-Klasse überein"
@@ -536,11 +536,11 @@ msgstr "Chinesisch (Vereinfacht)"
msgid "Chinese (Traditional)"
msgstr "Chinesisch (Traditionell)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Update verfügbar"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Ein Update für InvenTree ist verfügbar"
@@ -561,21 +561,21 @@ msgstr "Bestellstatus"
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Varianten einschließen"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Varianten einschließen"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Varianten einschließen"
msgid "Part"
msgstr "Teil"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategorie"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr "Baum ausschließen"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Verbrauchsmaterial"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Optional"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Baugruppe"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Nachverfolgt"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Prüfbar"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Offene Bestellung"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Zugeordnet"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Verbraucht"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Verfügbar"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Bestellt"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Lagerort"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Bauprodukt"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Bauaufträge"
@@ -783,9 +783,9 @@ msgstr "Zieldatum muss nach dem Startdatum liegen"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Auftrag Referenz"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Quell-Lagerort"
@@ -861,16 +861,16 @@ msgstr "Bauauftrags-Status"
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Erstelldatum"
@@ -907,120 +907,120 @@ msgstr "Aufgegeben von"
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Bauauftrags-Priorität"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Priorität dieses Bauauftrags"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Projektcode"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Projektcode für diesen Auftrag"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Fehler beim Abladen der Aufgabe, um die Build-Allokation abzuschließen"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Bauauftrag {build} wurde fertiggestellt"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Ein Bauauftrag wurde fertiggestellt"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Seriennummern müssen für nachverfolgbare Teile angegeben werden"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Menge kann nicht größer als die Ausgangsmenge sein"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Bauauftragsposition"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Objekt bauen"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Objekt bauen"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Anzahl"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Erforderliche Menge für Auftrag"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Lagerartikel"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Quell-Lagerartikel"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Ziel-Lagerartikel"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Name des Teils"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Endprodukt"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Dieses Endprodukt wurde bereits fertiggestellt"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Seriennummer"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Seriennummer für dieses Endprodukt eingeben"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Lagerort für Bauprodukt"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Seriennummern automatisch zuweisen"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Eine Liste von Endprodukten muss angegeben werden"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Lagerort für ausgemusterte Ausgänge"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Zuteilungen verwerfen"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Bestandszuteilung für ausgemusterte Endprodukte verwerfen"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Grund für das Verwerfen des Bauauftrages/der Bauaufträge"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Lagerort für fertige Endprodukte"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Unvollständige Zuweisung akzeptieren"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Zugewiesen Bestand verbrauchen"
-#: build/serializers.py:691
+#: 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:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Unfertige Endprodukte entfernen"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Nicht erlaubt"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Als von diesem Bauauftrag verbraucht setzen"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Bestandszuordnung vor dem Abschluss dieses Bauauftrags freigeben"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Überbelegter Lagerbestand"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Der Bestand einiger Lagerartikel ist überbelegt"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Nicht zugewiesene akzeptieren"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Unvollständig Zuweisung akzeptieren"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Bauauftrag hat unvollständige Aufbauten"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Bauauftragsposition"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Endprodukt"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Bauauftragspositionsartikel"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Lagerort ausschließen"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Lagerartikel vom ausgewählten Ort ausschließen"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Wechselbares Lagerbestand"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Ersatzbestand"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Zuordnung von Ersatzteilen erlauben"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Optionale Positionen"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Optionale Stücklisten-Positionen dem Bauauftrag hinzufügen"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "Alle Artikel"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr "Unverfolgte Artikel"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr "Verfolgte Artikel"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "Item-Typ"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr "Elementtyp zur automatischen Zuweisung auswählen"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Stücklisten-Referenz"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "Stückliste Teil-ID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Stückliste Teil-Name"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Zusammenbau"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Zuliefererteil"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Zugewiesene Menge"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Teilkategorienname"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Nachverfolgbar"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Vererbt"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "In Produktion"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Geplant zum Erstellen"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Externes Lager"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Verfügbares Ersatzmaterial"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Verfügbarer Varianten Lagerbestand"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Verbrauchsmenge überschreitet die zugewiesene Menge"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Optionale Notizen für den Bestandsverbrauch"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Dupliziere Bauauftrag Artikelzuordnung"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Mindestens ein Element oder eine Zeile muss angegeben werden"
@@ -1494,7 +1494,7 @@ msgstr "Pausiert"
msgid "Cancelled"
msgstr "Storniert"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Überfälliger Bauauftrag"
msgid "Build order {bo} is now overdue"
msgstr "Bauauftrag {bo} ist jetzt überfällig"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Link"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Datei"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Benutzer hat keine Berechtigung zum Löschen der Anhänge"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs"
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr "Kein Plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr "Schlüsseltext muss eindeutig sein"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Benutzer"
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Preis"
@@ -1652,7 +1652,7 @@ msgstr "Name für diesen Webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1849,7 +1849,7 @@ msgstr "Dateigröße"
msgid "File size in bytes"
msgstr "Dateigröße in Bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Ungültiger Modelltyp für Anhang angegeben"
@@ -2058,7 +2058,7 @@ msgstr "Checkbox-Parameter können keine Einheiten haben"
msgid "Checkbox parameters cannot have choices"
msgstr "Checkbox-Parameter können keine Auswahl haben"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Auswahl muss einzigartig sein"
@@ -2094,7 +2094,7 @@ msgstr "Checkbox"
msgid "Is this parameter a checkbox?"
msgstr "Ist dieser Parameter eine Checkbox?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Auswahlmöglichkeiten"
@@ -2106,7 +2106,7 @@ msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)"
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Aktiviert"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Ungültige Auswahl für Parameterwert"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Vorlage"
@@ -2148,7 +2148,7 @@ msgstr "Vorlage"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Wert"
@@ -2156,18 +2156,18 @@ msgstr "Wert"
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Notiz"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Optionales Notizfeld"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Wird ausgeführt"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Anstehende Aufgaben"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Geplante Aufgaben"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Fehlgeschlagene Aufgaben"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Aufgabe-ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Eindeutige Aufgaben-ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Sperren"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Sperrzeit"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Aufgabenname"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funktion"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Funktionsname"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Parameter"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Aufgaben-Parameter"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Schlüsselwort Parameter"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Schlüsselwort Parameter für Aufgaben"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Dateiname"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Modelltyp"
-#: common/serializers.py:790
+#: common/serializers.py:799
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"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr "Teile sind standardmäßig Vorlagen"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponente"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Fehlerberichte empfangen"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Benachrichtigungen bei Systemfehlern erhalten"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Zuletzt verwendete Druckmaschinen"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern"
@@ -3988,33 +3996,33 @@ msgstr "Teil ist aktiv"
msgid "Manufacturer is Active"
msgstr "Hersteller ist aktiv"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Lieferantenteil ist aktiv"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Internes Teil ist aktiv"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Lieferant ist aktiv"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Firma"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr "Versandnotizen für interne Verwendung"
msgid "Link to address information (external)"
msgstr "Link zu Adressinformationen (extern)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Herstellerteil"
@@ -4213,12 +4221,12 @@ msgstr "Teil auswählen"
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
@@ -4242,8 +4250,8 @@ msgstr "Packeinheiten müssen größer als Null sein"
msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Zulieferer"
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
@@ -4282,16 +4290,16 @@ msgstr "Teil-URL des Zulieferers"
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Verpackungen"
@@ -4307,7 +4315,7 @@ msgstr "Packmenge"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "Vielfache"
@@ -4339,14 +4347,18 @@ msgstr "Standard-Währung für diesen Zulieferer"
msgid "Company Name"
msgstr "Firmenname"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Auf Lager"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Feld"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Spalte"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Fehler"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Gültig"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Bestellung"
msgid "Order Complete"
msgstr "Bestellung abgeschlossen"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Internes Teil"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Zieldatum"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Bestell-Referenz"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Empfangen"
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Preis"
@@ -5211,8 +5223,8 @@ msgstr "Kontrolliert von"
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Sendung"
@@ -5277,7 +5289,7 @@ msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Parameter kopieren"
@@ -5412,216 +5424,216 @@ msgstr "Positionen"
msgid "Completed Lines"
msgstr "Abgeschlossene Positionen"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Lieferant"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Erlaube das Schließen des Auftrags mit unvollständigen Positionen"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Auftrag hat unvollständige Positionen"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Der Auftrag ist nicht offen"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Automatische Preisgestaltung"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Kaufpreis automatisch basierend auf Lieferantenbestandsdaten berechnen"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Elemente zusammenfügen"
-#: order/serializers.py:691
+#: order/serializers.py:728
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:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Lieferanten-Teilenummer"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Bestellung muss angegeben sein"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Lieferant muss mit der Bestellung übereinstimmen"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Position"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Losnummer für eingehende Lagerartikel"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Seriennummern für eingehende Lagerartikel"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Barcode"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Gescannter Barcode"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Abgeschlossene Sendungen"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Keine Sendungsdetails angegeben"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Position ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Seriennummern zum Zuweisen eingeben"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Sendung wurde bereits versandt"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Folgende Serienummern konnten nicht gefunden werden"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Artikel der Bestellzeile zurücksenden"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Artikel entspricht nicht der Rücksendeschrift"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Artikel wurde bereits erhalten"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Verkaufspreis-Währung"
@@ -5732,71 +5744,71 @@ msgstr "Unterkategorien in der angegebenen Kategorie ausschließen"
msgid "Has Results"
msgstr "Ergebnisse"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Verwendet"
@@ -5805,7 +5817,7 @@ msgstr "Verwendet"
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Teil-Kategorien"
@@ -5837,7 +5849,7 @@ msgstr "Standard-Stichworte für Teile dieser Kategorie"
msgid "Icon"
msgstr "Symbol"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Symbol (optional)"
@@ -5858,7 +5870,7 @@ msgstr "Standard-Wert"
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Teile"
@@ -5973,7 +5985,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -6006,7 +6018,7 @@ msgstr "Standard Ablaufzeit"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
@@ -6086,756 +6098,756 @@ msgstr "Erstellungs-Nutzer"
msgid "Owner responsible for this part"
msgstr "Verantwortlicher Besitzer für dieses Teil"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Währung für die Berechnung der Preise im Cache"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimale Stücklisten Kosten"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Minimale Kosten für Teile"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maximale Stücklisten Kosten"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Maximale Kosten für Teile"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimale Einkaufskosten"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Minimale historische Kaufkosten"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maximale Einkaufskosten"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Maximale historische Einkaufskosten"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimaler interner Preis"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Minimale Kosten basierend auf den internen Staffelpreisen"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maximaler interner Preis"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Maximale Kosten basierend auf internen Preisstaffeln"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimaler Lieferantenpreis"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Mindestpreis für Teil von externen Lieferanten"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maximaler Lieferantenpreis"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Maximaler Preis für Teil von externen Lieferanten"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimale Variantenkosten"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Berechnete minimale Kosten für Variantenteile"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maximale Variantenkosten"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Berechnete maximale Kosten für Variantenteile"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimale Kosten"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Mindestkosten überschreiben"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maximale Kosten"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Maximale Kosten überschreiben"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Berechnete Mindestkosten"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Berechnete Maximalkosten"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Mindestverkaufspreis"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Mindestverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maximaler Verkaufspreis"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Maximalverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Mindestverkaufskosten"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Minimaler historischer Verkaufspreis"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maximale Verkaufskosten"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Maximaler historischer Verkaufspreis"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Teil für die Inventur"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Stückzahl"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Datum"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Datum der Inventur"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Mindestbestandswert"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Geschätzter Mindestwert des vorhandenen Bestands"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maximaler Bestandswert"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Geschätzter Maximalwert des vorhandenen Bestands"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
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:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
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:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Testschlüssel"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Vereinfachter Schlüssel zum Test"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Ist dieser Test aktiviert?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Gültige Optionen für diesen Test (durch Komma getrennt)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "überprüft"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Diese Stücklistenposition wurde validiert"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Wird vererbt"
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
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:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Doppelte Beziehung existiert bereits"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Übergeordnete Kategorie"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Übergeordnete Teilkategorie"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Unter-Kategorien"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Ergebnisse"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Kaufwährung dieses Lagerartikels"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Originalteil"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Originalteil zum Duplizieren auswählen"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Bild kopieren"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Anmerkungen kopieren"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Notizen aus Originalteil kopieren"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: part/serializers.py:448
+#: part/serializers.py:451
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:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Initialer Lagerort"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Lagerstandort für dieses Teil angeben"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Hersteller-Teilenummer"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Ausgewählte Firma ist kein gültiger Lieferant"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Ausgewählte Firma ist kein gültiger Hersteller"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Herstellerteil mit dieser MPN existiert bereits"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Lieferantenteil mit dieser SKU existiert bereits"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategoriename"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Im Bau"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Lagerartikel"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Gesamtbestand"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Nicht zugewiesenes Lager"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Alternatives Lager"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Teil duplizieren"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Initiale Daten von anderem Teil kopieren"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Initialer Lagerbestand"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Erstelle Teil mit Ausgangsbestand"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Lieferanteninformationen"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Lieferanteninformationen zu diesem Teil hinzufügen"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Vorhandenes Bild"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Dateiname eines vorhandenen Teilbildes"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Bilddatei existiert nicht"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Gesamte Stückliste validieren"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Herstellbar"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Niedrigster Preis"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Berechneten Wert für Mindestpreis überschreiben"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Mindestpreis Währung"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Höchster Preis"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Berechneten Wert für maximalen Preis überschreiben"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Maximalpreis Währung"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Aktualisieren"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Preis für dieses Teil aktualisieren"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, 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:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Teil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Ersatzteile kopieren"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
@@ -7758,7 +7770,7 @@ msgstr "Paket-Plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Kein Autor gefunden"
@@ -8288,7 +8300,7 @@ msgstr "Lagerartikel Test-Bericht"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Verbaute Objekte"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr "Unterorte in gefilterte Ergebnisse einbeziehen"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Übergeordneter Ort"
@@ -8445,7 +8457,7 @@ msgstr "Gültigkeitsdauer vor"
msgid "Expiry date after"
msgstr "Gültigkeitsdauer nach"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "überfällig"
@@ -8530,7 +8542,7 @@ msgstr "Standardsymbol für alle Orte, die kein Icon gesetzt haben (optional)"
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden"
@@ -8624,7 +8636,7 @@ msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Verpackung, in der dieser Lagerartikel gelagert ist"
@@ -8640,7 +8652,7 @@ msgstr "Ist dieses Teil in einem anderen verbaut?"
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
@@ -8753,7 +8765,7 @@ msgstr "Lagerartikel wird aktuell produziert"
msgid "Serialized stock cannot be merged"
msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Artikel duplizeren"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Testvorlage für dieses Ergebnis"
@@ -8901,222 +8913,222 @@ msgstr "Elternposition"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
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:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Seriennummern für neue Teile eingeben"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "abgelaufen"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Untergeordnete Objekte"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Einkaufspreis dieses Lagerartikels, pro Einheit oder Verpackungseinheit"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Ziel-Bestand"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Lagerartikel für Installation auswählen"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Zu installierende Menge"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Anzahl der zu verwendenden Artikel eingeben"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr " Transaktionsnotizen hinzufügen (optional)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Die zu verwendende Menge muss mindestens 1 sein"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Lagerartikel ist nicht verfügbar"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Ausgewähltes Teil ist nicht in der Stückliste"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Die zu verwendende Menge darf die verfügbare Menge nicht überschreiten"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Ziel Lagerort für unverbautes Objekt"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
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:955
+#: stock/serializers.py:969
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:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Lagerartikel konnte nicht mit Zulieferteil zugewiesen werden"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Lagerartikel Status-Code"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Lagerartikel auswählen, um den Status zu ändern"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Keine Lagerartikel ausgewählt"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Unter-Lagerorte"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Teil muss verkaufbar sein"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Artikel ist einem Kundenauftrag zugeordnet"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Artikel ist einem Fertigungsauftrag zugeordnet"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Kunde zum Zuweisen von Lagerartikel"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Ausgewählte Firma ist kein Kunde"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Notizen zur Lagerzuordnung"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Notizen zur Lagerartikelzusammenführung"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Unterschiedliche Lieferanten erlauben"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Unterschiedliche Status erlauben"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Mindestens zwei Lagerartikel müssen angegeben werden"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Keine Änderung"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Nächste Seriennummer"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Vorherige Seriennummer"
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Admin"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Bestellungen"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Aufträge"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Rücksendeaufträge"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Benutzername"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Vorname"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Vorname des Benutzers"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Nachname"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Nachname des Benutzers"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "E-Mailadresse des Benutzers"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Administrator"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Ist dieser Benutzer ein Administrator"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Ist dieses Benutzerkonto aktiv"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Passwort"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Ihr Konto wurde erstellt."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Bitte benutzen Sie die Passwort-zurücksetzen-Funktion, um sich anzumelden"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Willkommen bei InvenTree"
diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po
index 8aa6cceb62..bba720c3df 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -104,13 +104,13 @@ msgstr "Εισάγετε ημερομηνία"
msgid "Invalid decimal value"
msgstr "Μη έγκυρη δεκαδική τιμή"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Σημειώσεις"
@@ -215,7 +215,7 @@ msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας"
msgid "Log in to the app"
msgstr "Σύνδεση στην εφαρμογή"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Email"
@@ -269,7 +269,7 @@ msgstr "Μη έγκυρη επιλογή"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Ένα σφάλμα έχει καταγραφεί από το διακο
msgid "Image"
msgstr "Εικόνα"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Πρέπει να είναι αριθμός"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Νόμισμα"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Μη έγκυρη τιμή"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Απομακρυσμένες Εικόνες"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Αποτυχία λήψης εικόνας από απομακρυσμένο URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Κινέζικα (απλοποιημένα)"
msgid "Chinese (Traditional)"
msgstr "Κινέζικα (Παραδοσιακά)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Διαθέσιμη ενημέρωση"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Μια ενημέρωση για το InvenTree είναι διαθέσιμη"
@@ -561,21 +561,21 @@ msgstr "Κατάσταση παραγγελίας"
msgid "Parent Build"
msgstr "Γονική Κατασκευή"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Συμπερίληψη παραλλαγών"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Συμπερίληψη παραλλαγών"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Συμπερίληψη παραλλαγών"
msgid "Part"
msgstr "Εξάρτημα"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Κατηγορία"
@@ -665,89 +665,89 @@ msgstr "Μέγιστη ημερομηνία"
msgid "Exclude Tree"
msgstr "Εξαίρεση δέντρου"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Αναλώσιμο"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Προαιρετικό"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Συναρμολόγηση"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Υπό παρακολούθηση"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Υπό δοκιμή"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Εκκρεμής παραγγελία"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Κατανεμημένο"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Καταναλωμένο"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Διαθέσιμο"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Σε παραγγελία"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Σειρά Κατασκευής"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Τοποθεσία"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Έξοδος"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Φιλτράρισμα με βάση το ID του αποθέματος εξόδου. Χρησιμοποιήστε 'null' για να βρείτε μη εγκατεστημένα στοιχεία κατασκευής"
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Δημιουργία Παραγγελιών"
@@ -783,9 +783,9 @@ msgstr "Η ημερομηνία στόχος πρέπει να είναι μετ
msgid "Build Order Reference"
msgstr "Αναφορά Παραγγελίας Κατασκευής"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Κωδικός Παραγγελίας Πωλήσεων"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Τοποθεσία Προέλευσης"
@@ -861,16 +861,16 @@ msgstr "Κατάσταση Κατασκευής"
msgid "Build status code"
msgstr "Κωδικός κατάστασης κατασκευής"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Κωδικός Παρτίδας"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Ημερομηνία Δημιουργίας"
@@ -907,120 +907,120 @@ msgstr "Εκδόθηκε από"
msgid "User who issued this build order"
msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Υπεύθυνος"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την εντολή κατασκευής"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Εξωτερικοί σύνδεσμοι"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Προτεραιότητα Κατασκευής"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Προτεραιότητα αυτής της εντολής κατασκευής"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Κωδικός Έργου"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Κωδικός έργου για αυτήν την εντολή κατασκευής"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Δεν είναι δυνατή η ολοκλήρωση της εντολής κατασκευής με ανοιχτές θυγατρικές κατασκευές"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Δεν είναι δυνατή η ολοκλήρωση της εντολής κατασκευής με μη ολοκληρωμένα προϊόντα"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Αποτυχία εκχώρησης εργασίας για την ολοκλήρωση των κατανομών κατασκευής"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Η παραγγελία κατασκευής {build} έχει ολοκληρωθεί"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Πρέπει να δοθούν σειριακοί αριθμοί για τα ανιχνεύσιμα Προϊόντα"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Δεν καθορίστηκε έξοδος κατασκευής"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Η έξοδος κατασκευής δεν έχει περάσει όλες τις απαιτούμενες δοκιμές"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Δεν είναι δυνατή η μερική ολοκλήρωση προϊόντος κατασκευής με δεσμευμένα στοιχεία"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Γραμμή εντολής κατασκευής"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Αντικείμενο κατασκευής"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Αντικείμενο κατασκευής"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Ποσότητα"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Ποσότητα καταναλωμένου αποθέματος"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Στοιχείο Αποθέματος"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Στοιχείο πηγαίου αποθέματος"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Εγκατάσταση σε"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Αποθήκη προορισμού"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Επίπεδο κατασκευής"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Όνομα Προϊόντος"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Κατασκευή Εξόδου"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Σειριακοί αριθμοί"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Τοποθεσία αποθέματος για την έξοδο κατασκευής"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Πρέπει να παρέχεται μια λίστα με τα αποτελέσματα κατασκευής"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Θέση αποθέματος για απορριφθείσες παραγωγές"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Απόρριψη Κατανομών"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Απορρίψτε τυχόν κατανομές αποθέματος για παραγωγές που έχουν απορριφθεί"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Αιτία απόρριψης προϊόντων κατασκευής"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κατασκευής"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Αποδοχή Ελλιπούς Δέσμευσης"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Ολοκλήρωσε τα προϊόντα εάν το απόθεμα δεν έχει δεσμευτεί πλήρως"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Κατανάλωση δεσμευμένου αποθέματος"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Κατανάλωση οποιουδήποτε αποθέματος έχει ήδη δεσμευτεί για αυτή την κατασκευή"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Αφαίρεση Ατελείωτων Προϊόντων"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "Διαγράψτε τυχόν προϊόντα κατασκευής που δεν έχουν ολοκληρωθεί"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Δεν επιτρέπεται"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Αποδοχή ως κατανάλωση για αυτή την παραγγελία κατασκευής"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Αποδέσμευση πριν από την ολοκλήρωση αυτής της παραγγελίας κατασκευής"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Υπερ-δεσμευμένο Απόθεμα"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Πώς θέλετε να χειριστείτε το επιπλέον απόθεμα που έχει δεσμευτεί στην παραγγελία κατασκευής"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Μερικά στοιχεία αποθέματος έχουν υπερ-δεσμευτεί"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Αποδοχή Μη Δεσμευμένων"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Αποδεχτείτε ότι αντικείμενα αποθέματος δεν έχουν δεσμευτεί πλήρως σε αυτή την παραγγελία κατασκευής"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Το απαιτούμενο απόθεμα δεν έχει δεσμευτεί πλήρως"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Αποδοχή Μη Ολοκληρωμένων"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Αποδεχτείτε ότι ο απαιτούμενος αριθμός προϊόντων κατασκευής δεν έχει ολοκληρωθεί"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Ο απαιτούμενος αριθμός προϊόντων δεν έχει ολοκληρωθεί"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Η εντολή κατασκευής έχει ανοιχτές θυγατρικές εντολές κατασκευής"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Η εντολή κατασκευής πρέπει να βρίσκεται σε κατάσταση παραγωγής"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Η παραγγελία κατασκευής έχει ελλιπή προϊόντα"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Γραμμή Κατασκευής"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Προϊόν Κατασκευής"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Το προϊόν κατασκευής πρέπει να δείχνει στην ίδια κατασκευή"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Αντικείμενο Γραμμής Κατασκευής"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Το στοιχείο πρέπει να υπάρχει στο απόθεμα"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Η διαθέσιμη ποσότητα ({q}) έχει ξεπεραστεί"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Πρέπει να καθοριστεί έξοδος κατασκευής για την κατανομή ανιχνεύσιμων Προϊόντων"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Δεν μπορεί να καθοριστεί έξοδος κατασκευής για την κατανομή μη ανιχνεύσιμων Προϊόντων"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Πρέπει να δοθούν στοιχεία κατανομής"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Τοποθεσία αποθέματος από την οποία θα ληφθούν τα Προϊόντα (αφήστε κενό για λήψη από οποιαδήποτε τοποθεσία)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Εξαίρεση τοποθεσίας"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Εξαιρέστε στοιχεία αποθέματος από αυτή την επιλεγμένη τοποθεσία"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Εναλλάξιμο απόθεμα"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Στοιχεία αποθέματος σε πολλές τοποθεσίες μπορούν να χρησιμοποιηθούν εναλλάξ"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Εναλλακτικό απόθεμα"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Να επιτρέπεται η κατανομή εναλλακτικών Προϊόντων"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Προαιρετικά στοιχεία"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Κατανομή προαιρετικών στοιχείων BOM στην εντολή κατασκευής"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Αναφορά BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID Προϊόντος BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Όνομα Προϊόντος BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Κατασκευή"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Aντικειμένου προμηθευτή"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Δεσμευμένη ποσότητα"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Αναφορά κατασκευής"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Όνομα κατηγορίας Προϊόντος"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Ανιχνεύσιμο"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Κληρονομημένο"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Να επιτρέπονται παραλλαγές"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Στοιχείο BOM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Σε παραγωγή"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Προγραμματισμένο για κατασκευή"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Εξωτερικό απόθεμα"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Διαθέσιμο απόθεμα"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Διαθέσιμο εναλλακτικό απόθεμα"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Διαθέσιμο απόθεμα παραλλαγών"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Η καταναλωμένη ποσότητα υπερβαίνει τη δεσμευμένη ποσότητα"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Προαιρετικές σημειώσεις για την κατανάλωση αποθέματος"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "Το στοιχείο κατασκευής πρέπει να αντιστοιχεί στη σωστή εντολή κατασκευής"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Διπλή κατανομή στοιχείου κατασκευής"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "Η γραμμή κατασκευής πρέπει να αντιστοιχεί στη σωστή εντολή κατασκευής"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Διπλή κατανομή γραμμής κατασκευής"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Πρέπει να δοθεί τουλάχιστον ένα στοιχείο ή μία γραμμή"
@@ -1494,7 +1494,7 @@ msgstr "Σε αναμονή"
msgid "Cancelled"
msgstr "Ακυρώθηκε"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Εκπρόθεσμη εντολή κατασκευής"
msgid "Build order {bo} is now overdue"
msgstr "Η εντολή κατασκευής {bo} είναι πλέον εκπρόθεσμη"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Είναι σύνδεσμος"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Είναι αρχείο"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Ο χρήστης δεν έχει δικαίωμα να διαγράψει αυτά τα συνημμένα"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Ο χρήστης δεν έχει δικαίωμα να διαγράψει αυτό το συνημμένο"
@@ -1550,7 +1550,7 @@ msgstr "Δεν δόθηκαν έγκυροι κωδικοί συναλλάγμα
msgid "No plugin"
msgstr "Χωρίς πρόσθετο"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Ετικέτα κωδικού έργου"
@@ -1617,7 +1617,7 @@ msgstr "Η συμβολοσειρά κλειδιού πρέπει να είνα
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Χρήστης"
msgid "Price break quantity"
msgstr "Ποσότητα κλιμακωτής τιμής"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Τιμή"
@@ -1652,7 +1652,7 @@ msgstr "Όνομα για αυτό το webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Ενεργό"
@@ -1849,7 +1849,7 @@ msgstr "Μέγεθος αρχείου"
msgid "File size in bytes"
msgstr "Μέγεθος αρχείου σε bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Μη έγκυρος τύπος μοντέλου που ορίστηκε για το συνημμένο"
@@ -2058,7 +2058,7 @@ msgstr "Οι παράμετροι τύπου checkbox δεν μπορούν να
msgid "Checkbox parameters cannot have choices"
msgstr "Οι παράμετροι τύπου checkbox δεν μπορούν να έχουν επιλογές"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Οι επιλογές πρέπει να είναι μοναδικές"
@@ -2094,7 +2094,7 @@ msgstr "Checkbox"
msgid "Is this parameter a checkbox?"
msgstr "Είναι αυτή η παράμετρος τύπου checkbox;"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Επιλογές"
@@ -2106,7 +2106,7 @@ msgstr "Έγκυρες επιλογές για αυτή την παράμετρ
msgid "Selection list for this parameter"
msgstr "Λίστα επιλογών για αυτή την παράμετρο"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Ενεργό"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Μη έγκυρη επιλογή για την τιμή παραμέτρου"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Πρότυπο"
@@ -2148,7 +2148,7 @@ msgstr "Πρότυπο"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Δεδομένα"
@@ -2156,18 +2156,18 @@ msgstr "Δεδομένα"
msgid "Parameter Value"
msgstr "Τιμή παραμέτρου"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Σημείωση"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Προαιρετικό πεδίο σημείωσης"
@@ -2391,85 +2391,85 @@ msgstr "Δείχνει αν η ρύθμιση παρακάμπτεται από
msgid "Override"
msgstr "Παράκαμψη"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Εκτελείται"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Εργασίες σε αναμονή"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Προγραμματισμένες εργασίες"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Αποτυχημένες εργασίες"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID εργασίας"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Μοναδικό ID εργασίας"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Κλείδωμα"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Χρόνος κλειδώματος"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Όνομα εργασίας"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Συνάρτηση"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Όνομα συνάρτησης"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Ορίσματα"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Ορίσματα εργασίας"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Ορίσματα λέξεων-κλειδιών"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Ορίσματα λέξεων-κλειδιών της εργασίας"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Όνομα αρχείου"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Τύπος μοντέλου"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Ο χρήστης δεν έχει δικαίωμα να δημιουργήσει ή να επεξεργαστεί συνημμένα για αυτό το μοντέλο"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Η λίστα επιλογών είναι κλειδωμένη"
@@ -2859,8 +2859,8 @@ msgstr "Τα Προϊόντα είναι πρότυπα από προεπιλο
msgid "Parts can be assembled from other components by default"
msgstr "Τα Προϊόντα μπορούν να συναρμολογούνται από άλλα συστατικά από προεπιλογή"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Συστατικό"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Ανενεργό: Η πλήρης διαδρομή κατηγορίας εμφανίζεται ως tooltip κατά το πέρασμα του δείκτη. Ενεργό: Η πλήρης διαδρομή κατηγορίας εμφανίζεται ως απλό κείμενο"
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Λήψη αναφορών σφαλμάτων"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Λήψη ειδοποιήσεων για σφάλματα συστήματος"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Τελευταίες χρησιμοποιημένες εκτυπωτικές μηχανές"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Αποθήκευση των τελευταίων εκτυπωτικών μηχανών που χρησιμοποίησε ο χρήστης"
@@ -3988,33 +3996,33 @@ msgstr "Το προϊόν είναι ενεργό"
msgid "Manufacturer is Active"
msgstr "Ο κατασκευαστής είναι ενεργός"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Το προϊόν προμηθευτή είναι ενεργό"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Το εσωτερικό προϊόν είναι ενεργό"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Ο προμηθευτής είναι ενεργός"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Κατασκευαστής"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Εταιρεία"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Διαθέτει απόθεμα"
@@ -4195,7 +4203,7 @@ msgstr "Σημειώσεις αποστολής για εσωτερική χρή
msgid "Link to address information (external)"
msgstr "Σύνδεσμος σε πληροφορίες διεύθυνσης (εξωτερικό)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Προϊόν κατασκευαστή"
@@ -4213,12 +4221,12 @@ msgstr "Επιλογή προϊόντος"
msgid "Select manufacturer"
msgstr "Επιλογή κατασκευαστή"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Κωδικός προϊόντος κατασκευαστή"
@@ -4242,8 +4250,8 @@ msgstr "Οι μονάδες συσκευασίας πρέπει να είναι
msgid "Linked manufacturer part must reference the same base part"
msgstr "Το συνδεδεμένο προϊόν κατασκευαστή πρέπει να αναφέρεται στο ίδιο βασικό προϊόν"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Προμηθευτής"
msgid "Select supplier"
msgstr "Επιλογή προμηθευτή"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Κωδικός αποθέματος προμηθευτή"
@@ -4282,16 +4290,16 @@ msgstr "URL εξωτερικού συνδέσμου προϊόντος προμ
msgid "Supplier part description"
msgstr "Περιγραφή προϊόντος προμηθευτή"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "βασικό κόστος"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Ελάχιστη χρέωση (π.χ. χρέωση αποθήκευσης)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Συσκευασία"
@@ -4307,7 +4315,7 @@ msgstr "Ποσότητα ανά συσκευασία"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Συνολική ποσότητα που παρέχεται σε μία συσκευασία. Αφήστε κενό για μεμονωμένα είδη."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "πολλαπλάσιο"
@@ -4339,14 +4347,18 @@ msgstr "Προεπιλεγμένο νόμισμα που χρησιμοποιε
msgid "Company Name"
msgstr "Όνομα εταιρείας"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Σε απόθεμα"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Κλιμακωτές τιμές"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Προέκυψε σφάλμα κατά την εξαγωγή δεδομένων"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Υπάρχον αναγνωριστικό βάσης δεδομένων για την εγγραφή"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Η στήλη έχει ήδη αντιστοιχιστεί σε πεδίο της βάσης δεδομένων"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Το πεδίο έχει ήδη αντιστοιχιστεί σε στήλη δεδομένων"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Η αντιστοίχιση στήλης πρέπει να συνδέεται με έγκυρη συνεδρία εισαγωγής"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Η στήλη δεν υπάρχει στο αρχείο δεδομένων"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Το πεδίο δεν υπάρχει στο μοντέλο προορισμού"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Το επιλεγμένο πεδίο είναι μόνο για ανάγνωση"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Συνεδρία εισαγωγής"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Πεδίο"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Στήλη"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Δείκτης γραμμής"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Αρχικά δεδομένα γραμμής"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Σφάλματα"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Έγκυρο"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "Απαιτείται ID για την ενημέρωση υπαρχόντων εγγραφών."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Δεν βρέθηκε εγγραφή με το παρεχόμενο ID"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Δόθηκε μη έγκυρη μορφή ID"
@@ -4821,7 +4833,7 @@ msgstr "Παραγγελία"
msgid "Order Complete"
msgstr "Η παραγγελία ολοκληρώθηκε"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Εσωτερικό προϊόν"
@@ -4918,7 +4930,7 @@ msgstr "Ημερομηνία έναρξης"
msgid "Scheduled start date for this order"
msgstr "Προγραμματισμένη ημερομηνία έναρξης για αυτή την παραγγελία"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Επιθυμητή Προθεσμία"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Αναφορά παραγγελίας"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Κατάσταση"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Παραλήφθηκε"
msgid "Number of items received"
msgstr "Αριθμός ειδών που παραλήφθηκαν"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Τιμή αγοράς"
@@ -5211,8 +5223,8 @@ msgstr "Έλεγχος από"
msgid "User who checked this shipment"
msgstr "Χρήστης που έλεγξε αυτή την αποστολή"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Αποστολή"
@@ -5277,7 +5289,7 @@ msgstr "Η ποσότητα δέσμευσης δεν μπορεί να υπερ
msgid "Allocation quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Η ποσότητα πρέπει να είναι 1 για σειριοποιημένο είδος αποθέματος"
@@ -5393,7 +5405,7 @@ msgstr "Αντιγραφή επιπλέον γραμμών"
msgid "Copy extra line items from the original order"
msgstr "Αντιγραφή επιπλέον γραμμών από την αρχική παραγγελία"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Αντιγραφή παραμέτρων"
@@ -5412,216 +5424,216 @@ msgstr "Γραμμές"
msgid "Completed Lines"
msgstr "Ολοκληρωμένες γραμμές"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Αντιγραφή παραγγελίας"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Καθορίστε επιλογές για την αντιγραφή αυτής της παραγγελίας"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Μη έγκυρο ID παραγγελίας"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Όνομα προμηθευτή"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Η παραγγελία δεν μπορεί να ακυρωθεί"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Να επιτρέπεται το κλείσιμο της παραγγελίας με μη ολοκληρωμένες γραμμές"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Η παραγγελία έχει μη ολοκληρωμένες γραμμές"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Η παραγγελία δεν είναι ανοικτή"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Αυτόματη τιμολόγηση"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Αυτόματος υπολογισμός τιμής αγοράς βάσει των δεδομένων προϊόντος προμηθευτή"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Νόμισμα τιμής αγοράς"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Συγχώνευση ειδών"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Συγχώνευση ειδών με το ίδιο προϊόν, προορισμό και ημερομηνία στόχο σε μία γραμμή"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Εσωτερικός κωδικός προϊόντος"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Εσωτερική ονομασία προϊόντος"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Πρέπει να καθοριστεί προϊόν προμηθευτή"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Πρέπει να καθοριστεί εντολή αγοράς"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Ο προμηθευτής πρέπει να ταιριάζει με την εντολή αγοράς"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Η εντολή αγοράς πρέπει να ταιριάζει με τον προμηθευτή"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Γραμμή"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Επιλογή τοποθεσίας προορισμού για τα παραληφθέντα είδη"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Εισαγάγετε κωδικό παρτίδας για τα εισερχόμενα είδη αποθέματος"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Ημερομηνία λήξης"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Εισαγάγετε ημερομηνία λήξης για τα εισερχόμενα είδη αποθέματος"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Εισαγάγετε σειριακούς αριθμούς για τα εισερχόμενα είδη αποθέματος"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Παράκαμψη πληροφοριών συσκευασίας για τα εισερχόμενα είδη αποθέματος"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Πρόσθετη σημείωση για τα εισερχόμενα είδη αποθέματος"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Barcode"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Σαρωμένο barcode"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Το barcode χρησιμοποιείται ήδη"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Πρέπει να δοθούν γραμμές"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Πρέπει να καθοριστεί τοποθεσία προορισμού"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Οι δοθείσες τιμές barcode πρέπει να είναι μοναδικές"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Αποστολές"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Ολοκληρωμένες αποστολές"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Νόμισμα τιμής πώλησης"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Δεσμευμένα είδη"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Δεν δόθηκαν λεπτομέρειες αποστολής"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Η γραμμή δεν συνδέεται με αυτή την παραγγελία"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Η ποσότητα πρέπει να είναι θετική"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Εισαγάγετε σειριακούς αριθμούς προς δέσμευση"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Η αποστολή έχει ήδη σταλεί"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Η αποστολή δεν συνδέεται με αυτή την παραγγελία"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Δεν βρέθηκε αντιστοίχιση για τους παρακάτω σειριακούς αριθμούς"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Οι παρακάτω σειριακοί αριθμοί δεν είναι διαθέσιμοι"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Γραμμή εντολής επιστροφής"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Η γραμμή δεν αντιστοιχεί στην εντολή επιστροφής"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Η γραμμή έχει ήδη παραληφθεί"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Είδη μπορούν να παραληφθούν μόνο για παραγγελίες που είναι σε εξέλιξη"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Ποσότητα προς επιστροφή"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Νόμισμα τιμής γραμμής"
@@ -5732,71 +5744,71 @@ msgstr "Εξαίρεση υποκατηγοριών κάτω από την κα
msgid "Has Results"
msgstr "Έχει αποτελέσματα"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Είναι παραλλαγή"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Είναι αναθεώρηση"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Έχει αναθεωρήσεις"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "Έγκυρο BOM"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Κατηγορίες κατά κληρονομικότητα"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Αν είναι αληθές, συμπεριλαμβάνονται είδη σε θυγατρικές κατηγορίες της δοσμένης κατηγορίας"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Φιλτράρισμα κατά αριθμητικό ID κατηγορίας ή τη λέξη 'null'"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Το προϊόν συναρμολόγησης είναι υπό δοκιμή"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Το προϊόν Προϊόντος είναι υπό δοκιμή"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Χρήσεις"
@@ -5805,7 +5817,7 @@ msgstr "Χρήσεις"
msgid "Part Category"
msgstr "Κατηγορία προϊόντος"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Κατηγορίες προϊόντων"
@@ -5837,7 +5849,7 @@ msgstr "Προεπιλεγμένες λέξεις-κλειδιά για προϊ
msgid "Icon"
msgstr "Εικονίδιο"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Εικονίδιο (προαιρετικό)"
@@ -5858,7 +5870,7 @@ msgstr "Προεπιλεγμένη τιμή"
msgid "Default Parameter Value"
msgstr "Προεπιλεγμένη τιμή παραμέτρου"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Προϊόντα"
@@ -5973,7 +5985,7 @@ msgstr "Λέξεις-κλειδιά προϊόντος για βελτίωση
msgid "Part category"
msgstr "Κατηγορία προϊόντος"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6006,7 +6018,7 @@ msgstr "Προεπιλεγμένη λήξη"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Χρόνος λήξης (σε ημέρες) για είδη αποθέματος αυτού του προϊόντος"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Ελάχιστο απόθεμα"
@@ -6086,756 +6098,756 @@ msgstr "Χρήστης δημιουργίας"
msgid "Owner responsible for this part"
msgstr "Ιδιοκτήτης υπεύθυνος για αυτό το προϊόν"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Πώληση πολλαπλάσιων"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Νόμισμα που χρησιμοποιείται για την προσωρινή αποθήκευση υπολογισμών τιμολόγησης"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Ελάχιστο κόστος BOM"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Ελάχιστο κόστος προϊόντων Προϊόντων"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Μέγιστο κόστος BOM"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Μέγιστο κόστος προϊόντων Προϊόντων"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Ελάχιστο κόστος αγοράς"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Ελάχιστο ιστορικό κόστος αγοράς"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Μέγιστο κόστος αγοράς"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Μέγιστο ιστορικό κόστος αγοράς"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Ελάχιστη εσωτερική τιμή"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Ελάχιστο κόστος βάσει εσωτερικών κλιμακωτών τιμών"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Μέγιστη εσωτερική τιμή"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Μέγιστο κόστος βάσει εσωτερικών κλιμακωτών τιμών"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Ελάχιστη τιμή προμηθευτή"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Ελάχιστη τιμή προϊόντος από εξωτερικούς προμηθευτές"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Μέγιστη τιμή προμηθευτή"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Μέγιστη τιμή προϊόντος από εξωτερικούς προμηθευτές"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Ελάχιστο κόστος παραλλαγής"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Υπολογισμένο ελάχιστο κόστος προϊόντων παραλλαγών"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Μέγιστο κόστος παραλλαγής"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Υπολογισμένο μέγιστο κόστος προϊόντων παραλλαγών"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Ελάχιστο κόστος"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Παράκαμψη ελάχιστου κόστους"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Μέγιστο κόστος"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Παράκαμψη μέγιστου κόστους"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Υπολογισμένο συνολικό ελάχιστο κόστος"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Υπολογισμένο συνολικό μέγιστο κόστος"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Ελάχιστη τιμή πώλησης"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Ελάχιστη τιμή πώλησης βάσει κλιμακωτών τιμών"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Μέγιστη τιμή πώλησης"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Μέγιστη τιμή πώλησης βάσει κλιμακωτών τιμών"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Ελάχιστο κόστος πώλησης"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Ελάχιστη ιστορική τιμή πώλησης"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Μέγιστο κόστος πώλησης"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Μέγιστη ιστορική τιμή πώλησης"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Προϊόν για απογραφή"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Αριθμός ειδών"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Αριθμός μεμονωμένων εγγραφών αποθέματος κατά τον χρόνο απογραφής"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Συνολικό διαθέσιμο απόθεμα κατά τον χρόνο απογραφής"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Ημερομηνία"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Ημερομηνία που πραγματοποιήθηκε η απογραφή"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Ελάχιστο κόστος αποθέματος"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Εκτιμώμενο ελάχιστο κόστος αποθέματος σε διαθεσιμότητα"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Μέγιστο κόστος αποθέματος"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Εκτιμώμενο μέγιστο κόστος αποθέματος σε διαθεσιμότητα"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Κλιμακωτή τιμή πώλησης προϊόντος"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Πρότυπο δοκιμής προϊόντος"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Μη έγκυρο όνομα προτύπου - πρέπει να περιλαμβάνει τουλάχιστον έναν αλφαριθμητικό χαρακτήρα"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Πρότυπα δοκιμών μπορούν να δημιουργηθούν μόνο για προϊόντα που είναι υπό δοκιμή"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Υπάρχει ήδη πρότυπο δοκιμής με το ίδιο κλειδί για το προϊόν"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Όνομα δοκιμής"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Εισαγάγετε όνομα για τη δοκιμή"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Κλειδί δοκιμής"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Απλοποιημένο κλειδί για τη δοκιμή"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Περιγραφή δοκιμής"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Εισαγάγετε περιγραφή για αυτή τη δοκιμή"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Είναι αυτή η δοκιμή ενεργή;"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Απαραίτητη"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Απαιτείται η επιτυχής ολοκλήρωση αυτής της δοκιμής;"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Απαιτεί τιμή"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Απαιτεί αυτή η δοκιμή τιμή κατά την προσθήκη αποτελέσματος δοκιμής;"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Απαιτεί συνημμένο"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Απαιτεί αυτή η δοκιμή συνημμένο αρχείο κατά την προσθήκη αποτελέσματος δοκιμής;"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Έγκυρες επιλογές για αυτή τη δοκιμή (διαχωρισμένες με κόμμα)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "Το στοιχείο BOM δεν μπορεί να τροποποιηθεί - η συναρμολόγηση είναι κλειδωμένη"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "Το στοιχείο BOM δεν μπορεί να τροποποιηθεί - η συναρμολόγηση παραλλαγής είναι κλειδωμένη"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Επιλέξτε γονικό προϊόν"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Υποπροϊόν"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Επιλέξτε προϊόν που θα χρησιμοποιηθεί στο BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Ποσότητα BOM για αυτό το στοιχείο BOM"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Αυτό το στοιχείο BOM είναι προαιρετικό"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Αυτό το στοιχείο BOM είναι αναλώσιμο (δεν παρακολουθείται στις εντολές παραγωγής)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Ποσότητα ρύθμισης"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "Επιπλέον απαιτούμενη ποσότητα για μια παραγωγή, για να ληφθούν υπόψη οι απώλειες ρύθμισης"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Φθορά"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Εκτιμώμενη φθορά για μια παραγωγή, εκφρασμένη ως ποσοστό (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Πολλαπλάσιο στρογγυλοποίησης"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Στρογγυλοποίηση προς τα πάνω της απαιτούμενης ποσότητας παραγωγής στο πλησιέστερο πολλαπλάσιο αυτής της τιμής"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Αναφορά στοιχείου BOM"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Σημειώσεις στοιχείου BOM"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Άθροισμα ελέγχου"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Άθροισμα ελέγχου γραμμής BOM"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Επικυρωμένο"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Αυτό το στοιχείο BOM έχει επικυρωθεί"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Κληρονομείται"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Αυτό το στοιχείο BOM κληρονομείται από τα BOM για προϊόντα παραλλαγών"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Είδη αποθέματος για προϊόντα παραλλαγών μπορούν να χρησιμοποιηθούν για αυτό το στοιχείο BOM"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Η ποσότητα πρέπει να είναι ακέραια τιμή για προϊόντα με ιχνηλάτηση"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Πρέπει να καθοριστεί υποπροϊόν"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Εναλλακτικό στοιχείο BOM"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Το εναλλακτικό προϊόν δεν μπορεί να είναι το ίδιο με το κύριο προϊόν"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Γονικό στοιχείο BOM"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Εναλλακτικό προϊόν"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Προϊόν 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Προϊόν 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Επιλέξτε σχετικό προϊόν"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Σημείωση για αυτή τη σχέση"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Δεν μπορεί να δημιουργηθεί σχέση προϊόντος μεταξύ ενός προϊόντος και του εαυτού του"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Υπάρχει ήδη διπλή σχέση"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Γονική κατηγορία"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Γονική κατηγορία προϊόντος"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Υποκατηγορίες"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Αποτελέσματα"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Αριθμός αποτελεσμάτων που έχουν καταγραφεί για αυτό το πρότυπο"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Νόμισμα αγοράς για αυτό το είδος αποθέματος"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Το αρχείο δεν είναι εικόνα"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Αρχικό προϊόν"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Επιλέξτε αρχικό προϊόν για αντιγραφή"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Αντιγραφή εικόνας"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Αντιγραφή εικόνας από το αρχικό προϊόν"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Αντιγραφή BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Αντιγραφή λίστας υλικών (BOM) από το αρχικό προϊόν"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Αντιγραφή δεδομένων παραμέτρων από το αρχικό προϊόν"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Αντιγραφή σημειώσεων"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Αντιγραφή σημειώσεων από το αρχικό προϊόν"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Αντιγραφή δοκιμών"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Αντιγραφή προτύπων δοκιμών από το αρχικό προϊόν"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Αρχική ποσότητα αποθέματος"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Καθορίστε αρχική ποσότητα αποθέματος για αυτό το προϊόν. Αν η ποσότητα είναι μηδέν, δεν προστίθεται απόθεμα"
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Αρχική τοποθεσία αποθέματος"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Καθορίστε αρχική τοποθεσία αποθέματος για αυτό το προϊόν"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Επιλέξτε προμηθευτή (ή αφήστε κενό για παράλειψη)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Επιλέξτε κατασκευαστή (ή αφήστε κενό για παράλειψη)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Κωδικός προϊόντος κατασκευαστή"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Η επιλεγμένη εταιρεία δεν είναι έγκυρος προμηθευτής"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Η επιλεγμένη εταιρεία δεν είναι έγκυρος κατασκευαστής"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Υπάρχει ήδη προϊόν κατασκευαστή με αυτό το MPN"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Υπάρχει ήδη προϊόν προμηθευτή με αυτό το SKU"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Όνομα κατηγορίας"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Σε παραγωγή"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Ποσότητα αυτού του προϊόντος που βρίσκεται αυτή τη στιγμή σε παραγωγή"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Εκκρεμής ποσότητα αυτού του προϊόντος που έχει προγραμματιστεί για παραγωγή"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Είδη αποθέματος"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Αναθεωρήσεις"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Συνολικό απόθεμα"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Μη δεσμευμένο απόθεμα"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Απόθεμα παραλλαγών"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Αντιγραφή προϊόντος"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Αντιγραφή αρχικών δεδομένων από άλλο προϊόν"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Αρχικό απόθεμα"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Δημιουργία προϊόντος με αρχική ποσότητα αποθέματος"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Πληροφορίες προμηθευτή"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Προσθήκη αρχικών πληροφοριών προμηθευτή για αυτό το προϊόν"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Αντιγραφή παραμέτρων κατηγορίας"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Αντιγραφή προτύπων παραμέτρων από την επιλεγμένη κατηγορία προϊόντος"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Υπάρχουσα εικόνα"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Όνομα αρχείου υπάρχουσας εικόνας προϊόντος"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Το αρχείο εικόνας δεν υπάρχει"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Επικύρωση ολόκληρης της λίστας υλικών (BOM)"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Μπορεί να παραχθεί"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Απαιτείται για εντολές παραγωγής"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Δεσμευμένο σε εντολές παραγωγής"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Απαιτείται για εντολές πώλησης"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Δεσμευμένο σε εντολές πώλησης"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Ελάχιστη τιμή"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Παράκαμψη υπολογισμένης τιμής για την ελάχιστη τιμή"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Νόμισμα ελάχιστης τιμής"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Μέγιστη τιμή"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Παράκαμψη υπολογισμένης τιμής για τη μέγιστη τιμή"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Νόμισμα μέγιστης τιμής"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Ενημέρωση"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Ενημέρωση τιμολόγησης για αυτό το προϊόν"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Δεν ήταν δυνατή η μετατροπή από τα δοθέντα νομίσματα σε {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Η ελάχιστη τιμή δεν πρέπει να είναι μεγαλύτερη από τη μέγιστη τιμή"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Η μέγιστη τιμή δεν πρέπει να είναι μικρότερη από την ελάχιστη τιμή"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Επιλέξτε τη γονική συναρμολόγηση"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Επιλέξτε το προϊόν Προϊόντος"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Επιλέξτε προϊόν από το οποίο θα αντιγραφεί το BOM"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Αφαίρεση υπαρχόντων δεδομένων"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Αφαίρεση υπαρχόντων στοιχείων BOM πριν την αντιγραφή"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Συμπερίληψη κληρονομημένων"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Συμπερίληψη στοιχείων BOM που κληρονομούνται από προϊόντα προτύπων"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Παράλειψη μη έγκυρων γραμμών"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Ενεργοποιήστε αυτή την επιλογή για να παραλείπονται οι μη έγκυρες γραμμές"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Αντιγραφή εναλλακτικών προϊόντων"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Αντιγραφή εναλλακτικών προϊόντων κατά την αντιγραφή στοιχείων BOM"
@@ -7758,7 +7770,7 @@ msgstr "Πρόσθετο πακέτου"
msgid "Plugin"
msgstr "Πρόσθετο"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Δεν βρέθηκε δημιουργός"
@@ -8288,7 +8300,7 @@ msgstr "Αναφορά δοκιμών είδους αποθέματος"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Εγκατεστημένα είδη"
@@ -8361,7 +8373,7 @@ msgstr "Φιλτράρισμα κατά τοποθεσίες ανώτατου ε
msgid "Include sub-locations in filtered results"
msgstr "Συμπερίληψη υποτοποθεσιών στα φιλτραρισμένα αποτελέσματα"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Γονική τοποθεσία"
@@ -8445,7 +8457,7 @@ msgstr "Ημερομηνία λήξης πριν από"
msgid "Expiry date after"
msgstr "Ημερομηνία λήξης μετά από"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Παλαιωμένο"
@@ -8530,7 +8542,7 @@ msgstr "Προεπιλεγμένο εικονίδιο για όλες τις τ
msgid "Stock Location"
msgstr "Τοποθεσία αποθέματος"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Τοποθεσίες αποθέματος"
@@ -8579,7 +8591,7 @@ msgstr "Πρέπει να καθοριστεί προϊόν"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Τα είδη αποθέματος δεν μπορούν να τοποθετηθούν σε δομικές τοποθεσίες αποθέματος!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Δεν μπορεί να δημιουργηθεί είδος αποθέματος για εικονικά προϊόντα"
@@ -8624,7 +8636,7 @@ msgstr "Επιλέξτε αντίστοιχο προϊόν προμηθευτή
msgid "Where is this stock item located?"
msgstr "Πού βρίσκεται αυτό το είδος αποθέματος;"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Συσκευασία στην οποία αποθηκεύεται αυτό το είδος αποθέματος"
@@ -8640,7 +8652,7 @@ msgstr "Είναι αυτό το είδος εγκατεστημένο σε άλ
msgid "Serial number for this item"
msgstr "Σειριακός αριθμός για αυτό το είδος"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Κωδικός παρτίδας για αυτό το είδος αποθέματος"
@@ -8753,7 +8765,7 @@ msgstr "Το είδος αποθέματος βρίσκεται αυτή τη σ
msgid "Serialized stock cannot be merged"
msgstr "Σειριακό απόθεμα δεν μπορεί να συγχωνευθεί"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Διπλότυπα είδη αποθέματος"
@@ -8877,7 +8889,7 @@ msgstr "Επιλέξτε προϊόν για το οποίο θα δημιουρ
msgid "Quantity of serial numbers to generate"
msgstr "Ποσότητα σειριακών αριθμών προς δημιουργία"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Πρότυπο δοκιμής για αυτό το αποτέλεσμα"
@@ -8901,222 +8913,222 @@ msgstr "Γονικό είδος"
msgid "Parent stock item"
msgstr "Γονικό είδος αποθέματος"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Χρήση μεγέθους συσκευασίας κατά την προσθήκη: η καθορισμένη ποσότητα είναι ο αριθμός των συσκευασιών"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "Χρήση μεγέθους συσκευασίας"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Εισαγάγετε σειριακούς αριθμούς για νέα είδη"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Κωδικός προϊόντος προμηθευτή"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Ληγμένο"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Θυγατρικά είδη"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Εγγραφές ιχνηλάτησης"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Τιμή αγοράς αυτού του είδους αποθέματος, ανά μονάδα ή συσκευασία"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Εισαγάγετε τον αριθμό ειδών αποθέματος για σειριοποίηση"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "Δεν δόθηκε είδος αποθέματος"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Η ποσότητα δεν πρέπει να υπερβαίνει το διαθέσιμο απόθεμα ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Τοποθεσία προορισμού αποθέματος"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Δεν μπορούν να εκχωρηθούν σειριακοί αριθμοί σε αυτό το προϊόν"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Οι σειριακοί αριθμοί υπάρχουν ήδη"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Επιλέξτε είδος αποθέματος προς εγκατάσταση"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Ποσότητα προς εγκατάσταση"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Εισαγάγετε την ποσότητα των ειδών προς εγκατάσταση"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Προσθέστε σημείωση συναλλαγής (προαιρετικά)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Η ποσότητα προς εγκατάσταση πρέπει να είναι τουλάχιστον 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Το είδος αποθέματος δεν είναι διαθέσιμο"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Το επιλεγμένο προϊόν δεν βρίσκεται στο Δελτίο Υλικών (BOM)"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Η ποσότητα προς εγκατάσταση δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Τοποθεσία προορισμού για το απεγκατεστημένο είδος"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Επιλέξτε προϊόν στο οποίο θα μετατραπεί το είδος αποθέματος"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Το επιλεγμένο προϊόν δεν είναι έγκυρη επιλογή για μετατροπή"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Δεν είναι δυνατή η μετατροπή είδους αποθέματος με εκχωρημένο SupplierPart"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Κωδικός κατάστασης είδους αποθέματος"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Επιλέξτε είδη αποθέματος για αλλαγή κατάστασης"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Δεν επιλέχθηκαν είδη αποθέματος"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Υποτοποθεσίες"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Γονική τοποθεσία αποθέματος"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Το προϊόν πρέπει να είναι διαθέσιμο για πώληση"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Το είδος έχει δεσμευτεί σε εντολή πώλησης"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Το είδος έχει δεσμευτεί σε εντολή παραγωγής"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Πελάτης στον οποίο θα αποδοθούν τα είδη αποθέματος"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Η επιλεγμένη εταιρεία δεν είναι πελάτης"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Σημειώσεις απόδοσης αποθέματος"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Πρέπει να δοθεί λίστα ειδών αποθέματος"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Σημειώσεις συγχώνευσης αποθέματος"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Να επιτρέπονται διαφορετικοί προμηθευτές"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Να επιτρέπεται η συγχώνευση ειδών αποθέματος με διαφορετικά προϊόντα προμηθευτή"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Να επιτρέπεται διαφορετική κατάσταση"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Να επιτρέπεται η συγχώνευση ειδών αποθέματος με διαφορετικούς κωδικούς κατάστασης"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Πρέπει να δοθούν τουλάχιστον δύο είδη αποθέματος"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Καμία αλλαγή"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Τιμή πρωτεύοντος κλειδιού StockItem"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Το είδος δεν βρίσκεται σε απόθεμα"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "Το είδος βρίσκεται ήδη σε απόθεμα"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "Η ποσότητα δεν πρέπει να είναι αρνητική"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Σημειώσεις συναλλαγής αποθέματος"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "Συγχώνευση με υπάρχον απόθεμα"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "Συγχώνευση επιστρεφόμενων ειδών με υπάρχοντα είδη αποθέματος, όπου είναι δυνατό"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Επόμενος σειριακός αριθμός"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Προηγούμενος σειριακός αριθμός"
@@ -9582,115 +9594,119 @@ msgstr "Κύρια ομάδα"
msgid "Primary group for the user"
msgstr "Κύρια ομάδα του χρήστη"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Διαχειριστής"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Εντολές Αγοράς"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Εντολές Πώλησης"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Εντολές Επιστροφής"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Όνομα χρήστη"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Όνομα"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Το όνομα του χρήστη"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Επώνυμο"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Το επώνυμο του χρήστη"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Διεύθυνση email του χρήστη"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Υπερχρήστης"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Είναι ο χρήστης υπερχρήστης;"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Είναι ο λογαριασμός χρήστη ενεργός;"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Μόνο υπερχρήστης μπορεί να τροποποιήσει αυτό το πεδίο"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Κωδικός πρόσβασης"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Κωδικός πρόσβασης του χρήστη"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Παράβλεψη προειδοποίησης"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Παράβλεψη της προειδοποίησης σχετικά με τους κανόνες κωδικού πρόσβασης"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Δεν έχετε δικαίωμα δημιουργίας χρηστών"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Ο λογαριασμός σας δημιουργήθηκε."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Παρακαλούμε χρησιμοποιήστε τη λειτουργία επαναφοράς κωδικού πρόσβασης για να συνδεθείτε"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Καλώς ήρθατε στο InvenTree"
diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po
index 4a5c3ee85b..5aea72b2ec 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: 2026-04-11 10:22+0000\n"
+"POT-Creation-Date: 2026-05-03 02:20+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -105,13 +105,13 @@ msgstr ""
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr ""
@@ -216,7 +216,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr ""
@@ -270,7 +270,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -337,51 +337,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -537,11 +537,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -562,21 +562,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -586,8 +586,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -596,9 +596,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -666,89 +666,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -784,9 +784,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -814,7 +814,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -862,16 +862,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -908,120 +908,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1033,445 +1033,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1495,7 +1495,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1519,19 +1519,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1551,7 +1551,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1618,7 +1618,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1629,7 +1629,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1653,7 +1653,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1850,7 +1850,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2059,7 +2059,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2095,7 +2095,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2107,7 +2107,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2127,7 +2127,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2141,7 +2141,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2149,7 +2149,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2157,18 +2157,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2392,85 +2392,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2860,8 +2860,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3929,18 +3929,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3989,33 +3997,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4196,7 +4204,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4214,12 +4222,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4243,8 +4251,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4255,7 +4263,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4283,16 +4291,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4308,7 +4316,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4340,14 +4348,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4452,67 +4464,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4822,7 +4834,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4919,7 +4931,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4957,7 +4969,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5014,7 +5026,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5140,7 +5152,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5212,8 +5224,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5278,7 +5290,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5394,7 +5406,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5413,216 +5425,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5733,71 +5745,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5806,7 +5818,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5838,7 +5850,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5859,7 +5871,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5974,7 +5986,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6007,7 +6019,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6087,756 +6099,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7759,7 +7771,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8289,7 +8301,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8362,7 +8374,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8446,7 +8458,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8531,7 +8543,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8580,7 +8592,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8625,7 +8637,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8641,7 +8653,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8754,7 +8766,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8878,7 +8890,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8902,222 +8914,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9583,114 +9595,118 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po
index bec0242164..93a544c8b5 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -104,13 +104,13 @@ msgstr "Ingrese la fecha"
msgid "Invalid decimal value"
msgstr "Número decimal no válido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notas"
@@ -215,7 +215,7 @@ msgstr "La URL proporcionada no es un archivo de imagen válido"
msgid "Log in to the app"
msgstr "Iniciar sesión en la aplicación"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Correo electrónico"
@@ -269,7 +269,7 @@ msgstr "Selección no válida"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Se ha registrado un error por el servidor."
msgid "Image"
msgstr "Imágen"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Moneda"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Seleccionar moneda de las opciones disponibles"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Imagen remota"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL de imagen remota"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Error al descargar la imagen desde la URL remota"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Chino (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chino (Tradicional)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Actualización disponible"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Una actualización para InvenTree está disponible"
@@ -561,21 +561,21 @@ msgstr "Estado del pedido"
msgid "Parent Build"
msgstr "Construcción o Armado Superior"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Incluye Variantes"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Incluye Variantes"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Incluye Variantes"
msgid "Part"
msgstr "Parte"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categoría"
@@ -665,89 +665,89 @@ msgstr "Fecha Máxima"
msgid "Exclude Tree"
msgstr "Excluir Árbol"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "La compilación debe cancelarse antes de poder ser eliminada"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consumible"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Montaje"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Comprobable"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Pedido pendiente"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Asignadas"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Agotado"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponible"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "En pedido"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Construir órden"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Ubicación"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Salida"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Construir órdenes"
@@ -783,9 +783,9 @@ msgstr "La fecha límite debe ser posterior a la fecha de inicio"
msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referencia de orden de venta"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Ubicación de la fuente"
@@ -861,16 +861,16 @@ msgstr "Estado de la construcción"
msgid "Build status code"
msgstr "Código de estado de construcción"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Fecha de Creación"
@@ -907,120 +907,120 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Usuario o grupo responsable de esta orden de construcción"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Enlace a URL externa"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Prioridad de construcción"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioridad de esta orden de construcción"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Código del proyecto"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Código de proyecto para esta orden de ensamble"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "No se pudo descargar la tarea para completar las asignaciones de construcción"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "El pedido {build} ha sido procesado"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Pedido #[order] ha sido procesado"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "La construcción de la salida ya está completa"
-#: build/models.py:1022
+#: build/models.py:1030
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:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "La cantidad no puede ser mayor que la cantidad de salida"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "La construcción {serial} no ha pasado todas las pruebas requeridas"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Construir línea de pedido"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Ensamblar equipo"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Ensamblar equipo"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Cantidad"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Cantidad requerida para orden de ensamble"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
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:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Artículo de stock"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Producto original de stock"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Cantidad de stock a asignar para construir"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Instalar en"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Artículo de stock de destino"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Nivel de construcción"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nombre de parte"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Resultado de la construcción o armado"
-#: build/serializers.py:219
+#: build/serializers.py:227
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:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Esta salida de construcción ya ha sido completada"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Esta salida de construcción no está completamente asignada"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 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:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Cantidad entera requerida para partes rastreables"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Números de serie"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Introduzca los números de serie de salidas de construcción"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Ubicación de stock para objetos construidos"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Autoasignar Números de Serie"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Debe proporcionarse una lista de salidas de construcción"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Ubicación de almacén para salidas descartadas"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Descartar asignaciones"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Descartar cualquier asignación de existencias para las salidas descartadas"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Razón para descartar la salida de ensamble(s)"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Ubicación para las salidas de construcción completadas"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Aceptar Asignación Incompleta"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Completar salidas si el inventario no se ha asignado completamente"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Consumir Stock Asignado"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Consume cualquier stock que ya ha sido asignado a esta construcción"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Eliminar salidas incompletas"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "No permitido"
-#: build/serializers.py:726
+#: 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:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Liberar antes de completar esta orden de construcción"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Stock sobreasignado"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Algunos artículos de inventario han sido sobreasignados"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Aceptar no asignado"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "El stock requerido no ha sido completamente asignado"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Aceptar incompleto"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "La cantidad de construcción requerida aún no se ha completado"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "La orden de construcción tiene órdenes hijas de construcción abiertas"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Orden de construcción debe estar en estado de producción"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "El orden de construcción tiene salidas incompletas"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linea de ensamble"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Resultado de la construcción o armado"
-#: build/serializers.py:877
+#: build/serializers.py:885
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:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Crear partida"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "El artículo debe estar en stock"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Cantidad disponible ({q}) excedida"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Debe proporcionarse la adjudicación de artículos"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Excluir ubicación"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Excluir artículos de stock de esta ubicación seleccionada"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Stock intercambiable"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Sustituir stock"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Permitir la asignación de partes sustitutas"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Elementos opcionales"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Asignar artículos de la BOM opcionales para construir la orden"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Referencia BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID de la parte BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nombre de parte la BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Parte del proveedor"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Cantidad Asignada"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Referencia de orden de Ensamblado"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Nombre de la categoría por pieza"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Rastreable"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Heredado"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "En producción"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Stock externo"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Stock Disponible"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Stock sustituto disponible"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Stock variable disponible"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "En espera"
msgid "Cancelled"
msgstr "Cancelado"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Orden de construcción atrasada"
msgid "Build order {bo} is now overdue"
msgstr "El pedido de construcción {bo} está atrasado"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "¿Es enlace?"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "¿Es archivo?"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "El usuario no tiene permiso para eliminar estos adjuntos"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "El usuario no tiene permiso para eliminar este adjunto"
@@ -1550,7 +1550,7 @@ msgstr "No se han proporcionado códigos de divisa válidos"
msgid "No plugin"
msgstr "Sin plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Etiqueta del código del proyecto"
@@ -1617,7 +1617,7 @@ msgstr "Cadena de clave debe ser única"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Usuario"
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Precio"
@@ -1652,7 +1652,7 @@ msgstr "Nombre para este webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Activo"
@@ -1849,7 +1849,7 @@ msgstr "Tamaño del archivo"
msgid "File size in bytes"
msgstr "Tamaño del archivo en bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Tipo de modelo no válido especificado para el archivo adjunto"
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr "Casilla de verificación"
msgid "Is this parameter a checkbox?"
msgstr "¿Es este parámetro una casilla de verificación?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Opciones"
@@ -2106,7 +2106,7 @@ msgstr "Opciones válidas para este parámetro (separados por comas)"
msgid "Selection list for this parameter"
msgstr "Lista de selección para este parámetro"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Habilitado"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Opción inválida para el valor del parámetro"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Plantilla"
@@ -2148,7 +2148,7 @@ msgstr "Plantilla"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Datos"
@@ -2156,18 +2156,18 @@ msgstr "Datos"
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Nota"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Campo de nota opcional"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Está en ejecución"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Tareas pendientes"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Tareas Programadas"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Tareas fallidas"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Identificación de Tarea"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Identificación de tarea única"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Bloquear"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Bloquear hora"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nombre de la tarea"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Función"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nombre de la Función"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumentos"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumentos de la tarea"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Argumentos de palabra clave"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Argumentos de palabra clave de tarea"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nombre de Archivo"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "El usuario no tiene permiso para crear o editar archivos adjuntos para este modelo"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lista de selección bloqueada"
@@ -2859,8 +2859,8 @@ msgstr "Las partes son plantillas por defecto"
msgid "Parts can be assembled from other components by default"
msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Componente"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Recibir reportes de error"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Recibir notificación de errores del sistema"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Últimas impresoras usadas"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr "La parte está activa"
msgid "Manufacturer is Active"
msgstr "El fabricante está activo"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Empresa"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Tiene Stock"
@@ -4195,7 +4203,7 @@ msgstr "Notas de envío para uso interno"
msgid "Link to address information (external)"
msgstr "Enlace a información de dirección (externa)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Parte del fabricante"
@@ -4213,12 +4221,12 @@ msgstr "Seleccionar parte"
msgid "Select manufacturer"
msgstr "Seleccionar fabricante"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Número de parte de fabricante"
@@ -4242,8 +4250,8 @@ msgstr "Las unidades de paquete deben ser mayor que cero"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Proveedor"
msgid "Select supplier"
msgstr "Seleccionar proveedor"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
@@ -4282,16 +4290,16 @@ msgstr "URL del enlace de parte del proveedor externo"
msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "costo base"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Paquetes"
@@ -4307,7 +4315,7 @@ msgstr "Cantidad de paquete"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "múltiple"
@@ -4339,14 +4347,18 @@ msgstr "Moneda predeterminada utilizada para este proveedor"
msgid "Company Name"
msgstr "Nombre de la empresa"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "En Stock"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "La columna ya fue mapeada a un campo de la base de datos"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "La columna no existe en el archivo de datos"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "El campo no existe en el modelo destino"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "El campo seleccionado es de solo lectura"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Sesión de importación"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Campo"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Columna"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Número de fila"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Datos de la fila original"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Errores"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Válido"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Orden"
msgid "Order Complete"
msgstr "Orden completada"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Componente interno"
@@ -4918,7 +4930,7 @@ msgstr "Fecha de inicio"
msgid "Scheduled start date for this order"
msgstr "Fecha de inicio programada para este pedido"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Fecha objetivo"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Referencia del pedido"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Estado"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Recibido"
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Precio de Compra"
@@ -5211,8 +5223,8 @@ msgstr "Revisado por"
msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envío"
@@ -5277,7 +5289,7 @@ msgstr "La cantidad de asignación no puede exceder la cantidad de stock"
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "La cantidad debe ser 1 para el stock serializado"
@@ -5393,7 +5405,7 @@ msgstr "Copiar líneas adicionales"
msgid "Copy extra line items from the original order"
msgstr "Copiar elementos extra de la línea del pedido original"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
@@ -5412,216 +5424,216 @@ msgstr "Partidas"
msgid "Completed Lines"
msgstr "Líneas completadas"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Duplicar pedido"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Especificar opciones para duplicar este pedido"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "ID de pedido no válido"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Nombre del proveedor"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "El pedido no puede ser cancelado"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Permitir cerrar el pedido con partidas incompletas"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "El pedido tiene partidas incompletas"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "El pedido no está abierto"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Precio automático"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Calcular precio de compra automáticamente con base en los datos del proveedor"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Moneda del precio de compra"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Combinar artículos"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Número de parte interna"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Nombre interno de parte"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Debe especificar la parte del proveedor"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "La orden de compra debe especificarse"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "El proveedor debe coincidir con la orden de compra"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "La orden de compra debe coincidir con el proveedor"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Partida"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Seleccione la ubicación de destino para los artículos recibidos"
-#: order/serializers.py:821
+#: order/serializers.py:862
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:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Fecha de Expiración"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Introduzca números de serie para artículos de almacén entrantes"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Código de barras"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Código de barras escaneado"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Código de barras en uso"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Se deben proporcionar las partidas"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Se requiere ubicación de destino"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Los valores del código de barras deben ser únicos"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Envíos"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Envíos completados"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Moneda del precio de venta"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Elementos asignados"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "No se proporcionaron detalles de envío"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "La partida no está asociada con este pedido"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "La cantidad debe ser positiva"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Introduzca números de serie para asignar"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "El envío ya ha sido enviado"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "El envío no está asociado con este pedido"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
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:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Los siguientes números de serie no están disponibles"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Partida de orden de devolución"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "La partida no coincide con la orden de devolución"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "La partida ya ha sido recibida"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Cantidad a devolver"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Moneda de precio de línea"
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr "Tiene resultados"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Categoría de parte"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Categorías de parte"
@@ -5837,7 +5849,7 @@ msgstr "Palabras clave por defecto para partes en esta categoría"
msgid "Icon"
msgstr "Icono"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icono (opcional)"
@@ -5858,7 +5870,7 @@ msgstr "Valor predeterminado"
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Partes"
@@ -5973,7 +5985,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6006,7 +6018,7 @@ msgstr "Expiración por defecto"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Stock mínimo"
@@ -6086,756 +6098,756 @@ msgstr "Creación de Usuario"
msgid "Owner responsible for this part"
msgstr "Dueño responsable de esta parte"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Moneda utilizada para almacenar en caché los cálculos de precios"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Costo mínimo de BOM"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Costo mínimo de partes de componentes"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Costo máximo de BOM"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Costo máximo de partes de componentes"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Costo mínimo de compra"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Costo histórico mínimo de compra"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Costo máximo de compra"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Costo histórico máximo de compra"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Precio interno mínimo"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Costo mínimo basado en precios reducidos internos"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Precio interno máximo"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Costo máximo basado en precios reducidos internos"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Precio mínimo de proveedor"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Precio mínimo de la parte de proveedores externos"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Precio máximo de proveedor"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Precio máximo de la parte de proveedores externos"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Costo mínimo de variante"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Costo mínimo calculado de las partes variantes"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Costo máximo de variante"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Costo máximo calculado de las partes variantes"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Costo mínimo"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Anular el costo mínimo"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Costo máximo"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Reemplazar coste máximo"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Costo mínimo general calculado"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Precio de venta mínimo"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Precio de venta mínimo basado en precios reducidos"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Precio de venta máximo"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Precio de venta máximo basado en precios reducidos"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Costo de venta mínimo"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Precio de venta mínimo histórico"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Costo de Venta Máximo"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Precio de venta máximo histórico"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Número de artículos"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Fecha"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Costo de Stock Mínimo"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo mínimo estimado del stock disponible"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
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:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Este artículo BOM es opcional"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Suma de verificación"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Suma de verificación de línea de BOM"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Validado"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Este artículo de BOM ha sido validado"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "La cantidad debe ser un valor entero para las partes rastreables"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:4364
+#: part/models.py:4378
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:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Nota para esta relación"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Categoría principal de parte"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Subcategorías"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Moneda de compra de ítem de stock"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Parte original"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Seleccione la parte original a duplicar"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Número de parte del fabricante"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "La empresa seleccionada no es un proveedor válido"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "La empresa seleccionada no es un fabricante válido"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Nombre de categoría"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "En construcción"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Elementos de stock"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Inventario Total"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Duplicar Parte"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Stock Inicial"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Crear Parte con cantidad inicial de stock"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Información del proveedor"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Añadir información inicial del proveedor para esta parte"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Imagen Existente"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "El archivo de imagen no existe"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Puede construir"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Precio mínimo"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Anular el valor calculado para precio mínimo"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Precio mínimo de moneda"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Precio máximo"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Precio máximo de moneda"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Actualizar"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
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:1531
+#: part/serializers.py:1563
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:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Eliminar artículos BOM existentes antes de copiar"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
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:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Copiar partes sustitutas"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Complemento"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "No se encontró autor"
@@ -8288,7 +8300,7 @@ msgstr "Artículo Stock Informe de prueba"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Elementos instalados"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Ubicación principal"
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Desactualizado"
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr "Ubicación de Stock"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Ubicaciones de Stock"
@@ -8579,7 +8591,7 @@ msgstr "Se debe especificar la pieza"
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr "Seleccione una parte del proveedor correspondiente para este artículo d
msgid "Where is this stock item located?"
msgstr "¿Dónde se encuentra este artículo de stock?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Empaquetar este artículo de stock se almacena en"
@@ -8640,7 +8652,7 @@ msgstr "¿Está este artículo instalado en otro artículo?"
msgid "Serial number for this item"
msgstr "Número de serie para este artículo"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Código de lote para este artículo de stock"
@@ -8753,7 +8765,7 @@ msgstr "El artículo de stock está en producción"
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Elemento padre"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Introduzca números de serie para nuevos artículos"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Número de pieza del proveedor"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Expirado"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Elementos secundarios"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Introduzca el número de artículos de stock para serializar"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Ubicación de stock de destino"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
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:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Números de serie ya existen"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Añadir nota de transacción (opcional)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sub-ubicación"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "La parte debe ser vendible"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "El artículo está asignado a una orden de venta"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "El artículo está asignado a una orden de creación"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Cliente para asignar artículos de stock"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "La empresa seleccionada no es un cliente"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Notas de asignación de stock"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Debe proporcionarse una lista de artículos de stock"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Notas de fusión de stock"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Permitir proveedores no coincidentes"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
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:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Permitir estado no coincidente"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
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:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Debe proporcionar al menos dos artículos de stock"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Sin cambios"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Valor de clave primaria de Stock"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "No hay existencias del artículo"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Notas de transacción de stock"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Ordenes de compra"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Órdenes de venta"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Ordenes de devolución"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nombre de usuario"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Nombre"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Nombre del usuario"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Apellido"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Apellido del usuario"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Dirección de correo del usuario"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superusuario"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Es este usuario un superusuario"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Esta cuenta de usuario está activa"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Su cuenta ha sido creada."
-#: users/serializers.py:484
+#: users/serializers.py:491
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"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Bienvenido a InvenTree"
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 12e3a63eac..b5c7c06e59 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -104,13 +104,13 @@ msgstr "Ingrese la fecha"
msgid "Invalid decimal value"
msgstr "Número decimal inválido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notas"
@@ -215,7 +215,7 @@ msgstr "La URL proporcionada no es un archivo de imagen válido"
msgid "Log in to the app"
msgstr "Iniciar sesión en la aplicación"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Correo electrónico"
@@ -269,7 +269,7 @@ msgstr "Selección no válida"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Se ha registrado un error por el servidor."
msgid "Image"
msgstr "Imágen"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Moneda"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Seleccionar moneda de las opciones disponibles"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Imagen remota"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL de imagen remota"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Error al descargar la imagen desde la URL remota"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Chino (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chino (Tradicional)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Estado del pedido"
msgid "Parent Build"
msgstr "Construcción o Armado Superior"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Incluye Variantes"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Incluye Variantes"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Incluye Variantes"
msgid "Part"
msgstr "Parte"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categoría"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "La compilación debe cancelarse antes de poder ser eliminada"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consumible"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Montaje"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Comprobable"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Pedido pendiente"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Asignadas"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponible"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "En pedido"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Construir órden"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Ubicación"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Construir órdenes"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referencia de orden de venta"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Ubicación de la fuente"
@@ -861,16 +861,16 @@ msgstr "Estado de la construcción"
msgid "Build status code"
msgstr "Código de estado de construcción"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Fecha de Creación"
@@ -907,120 +907,120 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Usuario o grupo responsable de esta orden de construcción"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Enlace a URL externa"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Prioridad de construcción"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioridad de esta orden de construcción"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Código del proyecto"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Código de proyecto para esta orden de ensamble"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "No se pudo descargar la tarea para completar las asignaciones de construcción"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "El pedido {build} ha sido procesado"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Pedido #[order] ha sido procesado"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "La construcción de la salida ya está completa"
-#: build/models.py:1022
+#: build/models.py:1030
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:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "La cantidad no puede ser mayor que la cantidad de salida"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "La construcción {serial} no ha pasado todas las pruebas requeridas"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Construir línea de pedido"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Ensamblar equipo"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Ensamblar equipo"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Cantidad"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Cantidad requerida para orden de ensamble"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
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:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Artículo de stock"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Producto original de stock"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Cantidad de stock a asignar para construir"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Instalar en"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Artículo de stock de destino"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Nivel de construcción"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nombre de parte"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Resultado de la construcción o armado"
-#: build/serializers.py:219
+#: build/serializers.py:227
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:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Esta salida de construcción ya ha sido completada"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Esta salida de construcción no está completamente asignada"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 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:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Cantidad entera requerida para partes rastreables"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Números de serie"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Introduzca los números de serie de salidas de construcción"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Ubicación de stock para objetos construidos"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Autoasignar Números de Serie"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Debe proporcionarse una lista de salidas de construcción"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Ubicación de almacén para salidas descartadas"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Descartar asignaciones"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Descartar cualquier asignación de existencias para las salidas descartadas"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Razón para descartar la salida de ensamble(s)"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Ubicación para las salidas de construcción completadas"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Aceptar Asignación Incompleta"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Completar salidas si el inventario no se ha asignado completamente"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Consumir Stock Asignado"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Consume cualquier stock que ya ha sido asignado a esta construcción"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Eliminar salidas incompletas"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "No permitido"
-#: build/serializers.py:726
+#: 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:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Liberar antes de completar esta orden de construcción"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Stock sobreasignado"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Algunos artículos de inventario han sido sobreasignados"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Aceptar no asignado"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "El stock requerido no ha sido completamente asignado"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Aceptar incompleto"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "La cantidad de construcción requerida aún no se ha completado"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "La orden de construcción tiene órdenes hijas de construcción abiertas"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Orden de construcción debe estar en estado de producción"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "El orden de construcción tiene salidas incompletas"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linea de ensamble"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Resultado de la construcción o armado"
-#: build/serializers.py:877
+#: build/serializers.py:885
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:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Crear partida"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "El artículo debe estar en stock"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Cantidad disponible ({q}) excedida"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Debe proporcionarse la adjudicación de artículos"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Excluir ubicación"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Excluir artículos de stock de esta ubicación seleccionada"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Stock intercambiable"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Sustituir stock"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Permitir la asignación de partes sustitutas"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Elementos opcionales"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Asignar artículos de la BOM opcionales para construir la orden"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Referencia BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID de la parte BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nombre de parte la BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Parte del proveedor"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Cantidad Asignada"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Referencia de orden de Ensamblado"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Nombre de la categoría por pieza"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Rastreable"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Heredado"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "En producción"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Stock externo"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Stock Disponible"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Stock sustituto disponible"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Stock variable disponible"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "En espera"
msgid "Cancelled"
msgstr "Cancelado"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Orden de construcción atrasada"
msgid "Build order {bo} is now overdue"
msgstr "El pedido de construcción {bo} está atrasado"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "¿Es enlace?"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "¿Es archivo?"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "El usuario no tiene permiso para eliminar estos adjuntos"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "El usuario no tiene permiso para eliminar este adjunto"
@@ -1550,7 +1550,7 @@ msgstr "No se han proporcionado códigos de divisa válidos"
msgid "No plugin"
msgstr "Sin plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Etiqueta del código del proyecto"
@@ -1617,7 +1617,7 @@ msgstr "Cadena de clave debe ser única"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Usuario"
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Precio"
@@ -1652,7 +1652,7 @@ msgstr "Nombre para este webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Activo"
@@ -1849,7 +1849,7 @@ msgstr "Tamaño del archivo"
msgid "File size in bytes"
msgstr "Tamaño del archivo en bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Tipo de modelo no válido especificado para el archivo adjunto"
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr "Casilla de verificación"
msgid "Is this parameter a checkbox?"
msgstr "¿Es este parámetro una casilla de verificación?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Opciones"
@@ -2106,7 +2106,7 @@ msgstr "Opciones válidas para este parámetro (separados por comas)"
msgid "Selection list for this parameter"
msgstr "Lista de selección para este parámetro"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Habilitado"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Opción inválida para el valor del parámetro"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Plantilla"
@@ -2148,7 +2148,7 @@ msgstr "Plantilla"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Datos"
@@ -2156,18 +2156,18 @@ msgstr "Datos"
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Nota"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Campo de nota opcional"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Está en ejecución"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Tareas pendientes"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Tareas Programadas"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Tareas fallidas"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Identificación de Tarea"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Identificación de tarea única"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Bloquear"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Bloquear hora"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nombre de la tarea"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Función"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nombre de la Función"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumentos"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumentos de la tarea"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Argumentos de palabra clave"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Argumentos de palabra clave de tarea"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nombre de Archivo"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lista de selección bloqueada"
@@ -2859,8 +2859,8 @@ msgstr "Las partes son plantillas por defecto"
msgid "Parts can be assembled from other components by default"
msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Componente"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Recibir reportes de error"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Recibir notificación de errores del sistema"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Últimas impresoras usadas"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Empresa"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Tiene existencias"
@@ -4195,7 +4203,7 @@ msgstr "Notas de envío para uso interno"
msgid "Link to address information (external)"
msgstr "Enlace a información de dirección (externa)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Parte del fabricante"
@@ -4213,12 +4221,12 @@ msgstr "Seleccionar parte"
msgid "Select manufacturer"
msgstr "Seleccionar fabricante"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Número de parte de fabricante"
@@ -4242,8 +4250,8 @@ msgstr "Las unidades de paquete deben ser mayor que cero"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Proveedor"
msgid "Select supplier"
msgstr "Seleccionar proveedor"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
@@ -4282,16 +4290,16 @@ msgstr "URL del enlace de parte del proveedor externo"
msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "costo base"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Paquetes"
@@ -4307,7 +4315,7 @@ msgstr "Cantidad de paquete"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "múltiple"
@@ -4339,14 +4347,18 @@ msgstr "Moneda predeterminada utilizada para este proveedor"
msgid "Company Name"
msgstr "Nombre de la empresa"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "En Stock"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "La columna ya fue mapeada a un campo de la base de datos"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "La columna no existe en el archivo de datos"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "El campo no existe en el modelo destino"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "El campo seleccionado es de solo lectura"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Sesión de importación"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Campo"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Columna"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Número de fila"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Datos de la fila original"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Errores"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Válido"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Orden"
msgid "Order Complete"
msgstr "Orden completada"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Componente interno"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Fecha objetivo"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Referencia del pedido"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Estado"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Recibido"
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Precio de Compra"
@@ -5211,8 +5223,8 @@ msgstr "Revisado por"
msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envío"
@@ -5277,7 +5289,7 @@ msgstr "La cantidad de asignación no puede exceder la cantidad de stock"
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "La cantidad debe ser 1 para el stock serializado"
@@ -5393,7 +5405,7 @@ msgstr "Copiar líneas adicionales"
msgid "Copy extra line items from the original order"
msgstr "Copiar partidas extra del pedido original"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
@@ -5412,216 +5424,216 @@ msgstr "Partidas"
msgid "Completed Lines"
msgstr "Líneas completadas"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Duplicar pedido"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Especificar opciones para duplicar este pedido"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "ID de pedido inválido"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Nombre del proveedor"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "El pedido no puede ser cancelado"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Permitir cerrar el pedido con partidas incompletas"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "El pedido tiene partidas incompletas"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "El pedido no está abierto"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Precio automático"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Calcular precio de compra automáticamente con base en los datos del proveedor"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Moneda del precio de compra"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Combinar artículos"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Número de parte interna"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Nombre interno de parte"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Debe especificar la parte del proveedor"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "La orden de compra debe especificarse"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "El proveedor debe coincidir con la orden de compra"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "La orden de compra debe coincidir con el proveedor"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Partida"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Seleccione la ubicación de destino para los artículos recibidos"
-#: order/serializers.py:821
+#: order/serializers.py:862
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:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Fecha de Expiración"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Introduzca números de serie para artículos de almacén entrantes"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Código de barras"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Código de barras escaneado"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Código de barras en uso"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Se deben proporcionar las partidas"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Se requiere ubicación de destino"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Los valores del código de barras deben ser únicos"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Envíos"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Envíos completados"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Moneda del precio de venta"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Elementos asignados"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "No se proporcionaron detalles de envío"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "La partida no está asociada con este pedido"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "La cantidad debe ser positiva"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Introduzca números de serie para asignar"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "El envío ya ha sido enviado"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "El envío no está asociado con este pedido"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
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:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Los siguientes números de serie no están disponibles"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Partida de orden de devolución"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "La partida no coincide con la orden de devolución"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "La partida ya ha sido recibida"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Cantidad a devolver"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Moneda de precio de línea"
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr "Tiene resultados"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Categoría de parte"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Categorías de parte"
@@ -5837,7 +5849,7 @@ msgstr "Palabras clave por defecto para partes en esta categoría"
msgid "Icon"
msgstr "Icono"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icono (opcional)"
@@ -5858,7 +5870,7 @@ msgstr "Valor predeterminado"
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Partes"
@@ -5973,7 +5985,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6006,7 +6018,7 @@ msgstr "Expiración por defecto"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Stock mínimo"
@@ -6086,756 +6098,756 @@ msgstr "Creación de Usuario"
msgid "Owner responsible for this part"
msgstr "Dueño responsable de esta parte"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Moneda utilizada para almacenar en caché los cálculos de precios"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Costo mínimo de BOM"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Costo mínimo de partes de componentes"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Costo máximo de BOM"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Costo máximo de partes de componentes"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Costo mínimo de compra"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Costo histórico mínimo de compra"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Costo máximo de compra"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Costo histórico máximo de compra"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Precio interno mínimo"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Costo mínimo basado en precios reducidos internos"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Precio interno máximo"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Costo máximo basado en precios reducidos internos"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Precio mínimo de proveedor"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Precio mínimo de la parte de proveedores externos"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Precio máximo de proveedor"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Precio máximo de la parte de proveedores externos"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Costo mínimo de variante"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Costo mínimo calculado de las partes variantes"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Costo máximo de variante"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Costo máximo calculado de las partes variantes"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Costo mínimo"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Anular el costo mínimo"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Costo máximo"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Reemplazar coste máximo"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Costo mínimo general calculado"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Precio de venta mínimo"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Precio de venta mínimo basado en precios reducidos"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Precio de venta máximo"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Precio de venta máximo basado en precios reducidos"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Costo de venta mínimo"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Precio de venta mínimo histórico"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Costo de Venta Máximo"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Precio de venta máximo histórico"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Número de artículos"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Fecha"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Costo de Stock Mínimo"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo mínimo estimado del stock disponible"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
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:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Este artículo BOM es opcional"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Suma de verificación"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Suma de verificación de línea de BOM"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Validado"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Este artículo de BOM ha sido validado"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "La cantidad debe ser un valor entero para las partes rastreables"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:4364
+#: part/models.py:4378
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:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Nota para esta relación"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Categoría principal de parte"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Subcategorías"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Moneda de compra de ítem de stock"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Parte original"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Seleccione la parte original a duplicar"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Número de parte del fabricante"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "La empresa seleccionada no es un proveedor válido"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "La empresa seleccionada no es un fabricante válido"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Nombre de categoría"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "En construcción"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Elementos de stock"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Inventario Total"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Duplicar Parte"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Stock Inicial"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Crear Parte con cantidad inicial de stock"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Información del proveedor"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Añadir información inicial del proveedor para esta parte"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Imagen Existente"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "El archivo de imagen no existe"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Puede construir"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Precio mínimo"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Anular el valor calculado para precio mínimo"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Precio mínimo de moneda"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Precio máximo"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Precio máximo de moneda"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Actualizar"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
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:1531
+#: part/serializers.py:1563
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:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Eliminar artículos BOM existentes antes de copiar"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
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:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Copiar partes sustitutas"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Complemento"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "No se encontró autor"
@@ -8288,7 +8300,7 @@ msgstr "Artículo Stock Informe de prueba"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Elementos instalados"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Ubicación principal"
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Desactualizado"
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr "Ubicación de Stock"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Ubicaciones de Stock"
@@ -8579,7 +8591,7 @@ msgstr "Se debe especificar la pieza"
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr "Seleccione una parte del proveedor correspondiente para este artículo d
msgid "Where is this stock item located?"
msgstr "¿Dónde se encuentra este artículo de stock?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Empaquetar este artículo de stock se almacena en"
@@ -8640,7 +8652,7 @@ msgstr "¿Está este artículo instalado en otro artículo?"
msgid "Serial number for this item"
msgstr "Número de serie para este artículo"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Código de lote para este artículo de stock"
@@ -8753,7 +8765,7 @@ msgstr "El artículo de stock está en producción"
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Elemento padre"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Introduzca números de serie para nuevos artículos"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Número de pieza del proveedor"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Expirado"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Elementos secundarios"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Introduzca el número de artículos de stock para serializar"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Ubicación de stock de destino"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
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:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Números de serie ya existen"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Añadir nota de transacción (opcional)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sub-ubicación"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "La parte debe ser vendible"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "El artículo está asignado a una orden de venta"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "El artículo está asignado a una orden de creación"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Cliente para asignar artículos de stock"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "La empresa seleccionada no es un cliente"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Notas de asignación de stock"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Debe proporcionarse una lista de artículos de stock"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Notas de fusión de stock"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Permitir proveedores no coincidentes"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
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:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Permitir estado no coincidente"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
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:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Debe proporcionar al menos dos artículos de stock"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Sin cambios"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Valor de clave primaria de Stock"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "No hay existencias del artículo"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Notas de transacción de stock"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Ordenes de compra"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Órdenes de venta"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Ordenes de devolución"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nombre de usuario"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Nombre"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Nombre del usuario"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Apellido"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Apellido del usuario"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Dirección de correo del usuario"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superusuario"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Es este usuario un superusuario"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Esta cuenta de usuario está activa"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Su cuenta ha sido creada."
-#: users/serializers.py:484
+#: users/serializers.py:491
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"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Bienvenido a InvenTree"
diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po
index 9c0f2fd393..0c58f7e8e2 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Estonian\n"
"Language: et_EE\n"
@@ -104,13 +104,13 @@ msgstr "Pane kuupäev"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Märkmed"
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-post"
@@ -269,7 +269,7 @@ msgstr "Vigane valik"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr "Pilt"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Hiina (lihtsustatud)"
msgid "Chinese (Traditional)"
msgstr "Hiina (traditsiooniline)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Osa"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Valikuline"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Jälgitud"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Saadaval"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Asukoht"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr "Koostamise olek"
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Loomise kuupäev"
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Kogus"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Osa nimi"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Tühista kõik laoseisu eraldised mahakantud väljundite jaoks"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Valikained"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Jälgitav"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Saadaval laos"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Katkestatud"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "On link"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "On fail"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr "Pluginat pole"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr "Faili suurus"
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Mall"
@@ -2148,7 +2148,7 @@ msgstr "Mall"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Andmed"
@@ -2156,18 +2156,18 @@ msgstr "Andmed"
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Märkus"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Ülesande nimi"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funktsioon"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Funktsiooni nimi"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumendid"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Ülesande argumendid"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Failinimi"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Mudeli liik"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponent"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Tootja"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Ettevõte"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Laos"
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Tarnija"
msgid "Select supplier"
msgstr "Vali tarnija"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Väli"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Veerg"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Staatus"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Saadetis"
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr "Kopeeri lisareaüksused algsest tellimusest"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopeeri parameetrid"
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Määrake selle tellimuse dubleerimise valikud"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Vale tellimuse ID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Tootekood"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Vöötkood"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Skännitud ribakood"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Saadetised"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Järgmised seerianumbrid ei ole saadaval"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Osa kategooria"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Osa kategooriad"
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr "Ikoon"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikoon (valikuline)"
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Osad"
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr "Osa kategooria"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimaalne laoseis"
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Testimalle saab luua ainult testitavate osade jaoks"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Originaalosa"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopeeri pilt"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategooria nimi"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Ehitamine"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Tarnija info"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minimaalne hind"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Maksimaalne hind"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Uuenda"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr "Paki plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Autorit ei leitud"
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Tarnija osa number"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Admin"
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Kasutajanimi"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Eesnimi"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Perekonnanimi"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po
index a3dd6f0e68..b9cf4f8fef 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -104,13 +104,13 @@ msgstr "تاریخ را وارد کنید"
msgid "Invalid decimal value"
msgstr "مقدار اعشاری نامعتبر است"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "یادداشت"
@@ -215,7 +215,7 @@ msgstr "URL ارائه شده یک فایل تصویری معتبر نیست"
msgid "Log in to the app"
msgstr "وارد برنامه شوید"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "ایمیل"
@@ -269,7 +269,7 @@ msgstr "انتخاب نامعتبر"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "یک خطا توسط سرور ثبت شده است."
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "باید یک عدد معتبر باشد"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "ارز"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "ارز را از گزینه های موجود انتخاب کنید"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "مقدار نامعتبر"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "تصویر ریموت"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "آدرس فایل تصویری از راه دور"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "دانلود تصاویر از URL ریموت فعال نیست"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "دانلود تصویر از URL ریموت انجام نشد"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "چینی (ساده شده)"
msgid "Chinese (Traditional)"
msgstr "چینی (سنتی)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "وضعیت سفارش"
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "قطعه"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "دسته"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "مصرفی"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "اختیاری"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "مونتاژ"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "سفارش معوق"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "اختصاص داده شده"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "در دسترس"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "سفارش ساخت"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "مکان"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "سفارشهای ساخت"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "مرجع سفارش فروش"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "منبع محل"
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr "صادر شده توسط"
msgid "User who issued this build order"
msgstr "کاربری که این سفارش ساخت را صادر کرده است"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "پیوند خارجی"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po
index 27dacfa79c..b2bb175db0 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@@ -104,13 +104,13 @@ msgstr "Anna päivämäärä"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Merkinnät"
@@ -215,7 +215,7 @@ msgstr "Annettu URL ei ole kelvollinen kuvatiedosto"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Sähköposti"
@@ -269,7 +269,7 @@ msgstr "Virheellinen valinta"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr "Kuva"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Täytyy olla kelvollinen luku"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuutta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Virheellinen arvo"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "Kuvatiedoston URL"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Kuvien lataaminen ei ole käytössä"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Osa"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategoria"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Saatavilla"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Sijainti"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Ulkoinen linkki"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Linkki ulkoiseen URLiin"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Määrä"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Varastotuote"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Sarjanumerot"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Ei sallittu"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Seurattavissa"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Peruttu"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Käyttäjä"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Hinta"
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiivinen"
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Käytössä"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Muistiinpano"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Tiedostonimi"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponentti"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Valmistaja"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Yritys"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr "Valitse valmistaja"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Valmistajan osanumero"
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Toimittaja"
msgid "Select supplier"
msgstr "Valitse toimittaja"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Toimittajan varastonimike"
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Tilauksen viite"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Tila"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Vastaanotettu"
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Viivakoodi"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr "Kuvake"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Kuvake (valinnainen)"
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Päivämäärä"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Valmistajan osanumero"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Käyttäjätunnus"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Etunimi"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Sukunimi"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po
index d209872183..d432eecce2 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -104,13 +104,13 @@ msgstr "Entrer la date"
msgid "Invalid decimal value"
msgstr "Valeur décimale invalide"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notes"
@@ -215,7 +215,7 @@ msgstr "L'URL fournie n'est pas un fichier image valide"
msgid "Log in to the app"
msgstr "Se connecter à l'application"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-mail"
@@ -269,7 +269,7 @@ msgstr "Choix invalide"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Une erreur a été loguée par le serveur."
msgid "Image"
msgstr "Image"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Devise"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Sélectionnez la devise à partir des options disponibles"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Ce champ ne peut pas être vide."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valeur non valide"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Images distantes"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL du fichier image distant"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
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/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Échec du téléchargement de l'image à partir de l'URL distant"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Format du type de contenu invalide"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Type de contenu introuvable"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Le type de contenu ne correspond pas à la classe de mixin requise"
@@ -536,11 +536,11 @@ msgstr "Chinois (Simplifié)"
msgid "Chinese (Traditional)"
msgstr "Chinois (Traditionnel)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Mise à jour disponible"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Une mise à jour pour InvenTree est disponible"
@@ -561,21 +561,21 @@ msgstr "Statut de la commande"
msgid "Parent Build"
msgstr "Fabrication parente"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Inclure les variantes"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Inclure les variantes"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Inclure les variantes"
msgid "Part"
msgstr "Pièce"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Catégorie"
@@ -665,89 +665,89 @@ msgstr "Date maximale"
msgid "Exclude Tree"
msgstr "Exclure l'arbre"
-#: build/api.py:400
+#: build/api.py:414
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:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consommable"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Facultatif"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Assemblage"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Suivi"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testable"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Commande en cours"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Allouée"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Consommé"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponible"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "En Commande"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordre de Fabrication"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Emplacement"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Sortie"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrer par l'identifiant (ID) des articles du stock de sortie. Utilisez 'null' pour trouver les éléments de fabrication non installés."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Ordres de Fabrication"
@@ -783,9 +783,9 @@ msgstr "La date cible doit être postérieure à la date de début"
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Bon de commande de référence"
msgid "Sales Order to which this build is allocated"
msgstr "Commande de vente à laquelle cette fabrication est allouée"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Emplacement d'origine"
@@ -861,16 +861,16 @@ msgstr "État de la construction"
msgid "Build status code"
msgstr "Code de statut de construction"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Code de lot"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Code de lot pour ce build output"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Date de création"
@@ -907,120 +907,120 @@ msgstr "Émis par"
msgid "User who issued this build order"
msgstr "Utilisateur ayant émis cette commande de construction"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Utilisateur ou groupe responsable de cet ordre de construction"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Lien vers une url externe"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Priorité de fabrication"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Priorité de cet ordre de fabrication"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Code du projet"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Code de projet pour cet ordre de construction"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Impossible de terminer l'ordre de fabrication avec des constructions enfant ouvertes"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Impossible de terminer l'ordre de fabrication avec des sorties incomplètes"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Échec du déchargement de la tâche pour terminer les allocations de construction"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "La commande de construction {build} a été effectuée"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Une commande de construction a été effectuée"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Pas d'ordre de production défini"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "L'ordre de production a déjà été réalisé"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "L'ordre de production de correspond pas à l'ordre de commande"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
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:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Les sorties de fabrication n'ont pas passé tous les tests requis"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "Les articles en stock alloués sont toujours en production"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Impossible de compléter partiellement une sortie de construction avec les éléments alloués"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Poste de l'ordre de construction"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Création de l'objet"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Création de l'objet"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Quantité"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Quantité requise pour la commande de construction"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Quantité de stock consommé"
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
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:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantité doit être de 1 pour stock sérialisé"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Article en stock"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Stock d'origine de l'article"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Quantité de stock à allouer à la construction"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Installer dans"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Stock de destination de l'article"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Niveau de construction"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nom de l'article"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Sortie d'assemblage"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "L'ordre de production ne correspond pas à l'ordre parent"
-#: build/serializers.py:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Cet ordre de production a déjà été produit"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Cet ordre de production n'est pas complètement attribué"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Quantité entière requise pour les pièces à suivre"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Numéros de série"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Entrer les numéros de séries pour la fabrication"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Emplacement de stock pour la sortie de la fabrication"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Allouer automatiquement les numéros de série"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Une liste d'ordre de production doit être fourni"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Emplacement du stock pour les sorties épuisées"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Ignorer les allocations"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Abandonner les allocations de stock pour les sorties abandonnées"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Motif de l'élimination des produits de construction(s)"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Emplacement des ordres de production achevés"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Accepter l'allocation incomplète"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Consommation du stock alloué"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Consommer tout stock qui a déjà été alloué à cette construction"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Retirer les sorties incomplètes"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Non permis"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Accepter comme consommé par cet ordre de construction"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Désaffecter avant de terminer cette commande de fabrication"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Stock suralloué"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Certains articles de stock ont été suralloués"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Accepter les non-alloués"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Le stock requis n'a pas encore été totalement alloué"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Accepter les incomplèts"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "La quantité nécessaire n'a pas encore été complétée"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "L'ordre de construction a des ordres de construction enfants ouverts"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "L'ordre de construction doit être en état de production"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "L'ordre de production a des sorties incomplètes"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Chaîne d'assemblage"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Sortie d'assemblage"
-#: build/serializers.py:877
+#: build/serializers.py:885
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:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Élément de la ligne de construction"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantité disponible ({q}) dépassée"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Les articles d'allocation doivent être fournis"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Emplacements exclus"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Exclure les articles de stock de cet emplacement sélectionné"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Stock interchangeable"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Stock de substitution"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Autoriser l'allocation de pièces de remplacement"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Objets Optionnels"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Affecter des éléments de nomenclature facultatifs à l'ordre de fabrication"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Référence de la nomenclature"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID de la pièce de la nomenclature"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nomenclature Nom de la pièce"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Construire"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Pièce fournisseur"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Quantité allouée"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Référence de construction"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Nom de la catégorie de pièces"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Traçable"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Reçu de quelqu'un"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Autoriser les variantes"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Article du BOM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "En Production"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Planifié pour fabrication"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Stock externe"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Stock disponible"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Stock de substitution disponible"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Stock de variantes disponibles"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "La quantité consommée dépasse la quantité allouée"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Note optionnelle pour la consommation du stock"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "L'article fabriqué doit pointer vers l'ordre de fabrication correct"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Dupliquer l'allocation de l'article de fabrication"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "L'article fabriqué doit pointer vers l'ordre de fabrication correct"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Dupliquer l'allocation de ligne de fabrication"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Au moins un élément ou une ligne doit être fourni"
@@ -1494,7 +1494,7 @@ msgstr "En pause"
msgid "Cancelled"
msgstr "Annulé"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Ordre de commande en retard"
msgid "Build order {bo} is now overdue"
msgstr "L'ordre de commande {bo} est maintenant en retard"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "C'est un lien"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "C'est un fichier"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe"
@@ -1550,7 +1550,7 @@ msgstr "Aucun code de devise valide fourni"
msgid "No plugin"
msgstr "Pas de plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Code du projet Étiquette"
@@ -1617,7 +1617,7 @@ msgstr "La chaîne de caractères constituant la clé doit être unique"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Utilisateur"
msgid "Price break quantity"
msgstr "Quantité de rupture de prix"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Prix"
@@ -1652,7 +1652,7 @@ msgstr "Nom de ce webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Actif"
@@ -1849,7 +1849,7 @@ msgstr "Taille du fichier"
msgid "File size in bytes"
msgstr "Taille du fichier en octets"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Type de modèle non valide spécifié pour la pièce jointe"
@@ -2058,7 +2058,7 @@ msgstr "Les paramètres des cases à cocher ne peuvent pas avoir d'unités"
msgid "Checkbox parameters cannot have choices"
msgstr "Les paramètres des cases à cocher ne peuvent pas comporter de choix"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Les choix doivent être uniques"
@@ -2094,7 +2094,7 @@ msgstr "Case à cocher"
msgid "Is this parameter a checkbox?"
msgstr "Ce paramètre est-il une case à cocher ?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Choix"
@@ -2106,7 +2106,7 @@ msgstr "Choix valables pour ce paramètre (séparés par des virgules)"
msgid "Selection list for this parameter"
msgstr "Liste de sélection pour ce paramètre"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Activé"
@@ -2126,7 +2126,7 @@ msgstr "Paramètres"
msgid "Invalid choice for parameter value"
msgstr "Choix incorrect pour la valeur du paramètre"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Type de modèle non valide pour la pièce jointe"
@@ -2140,7 +2140,7 @@ msgstr "ID du modèle cible pour ce paramètre"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Modèle"
@@ -2148,7 +2148,7 @@ msgstr "Modèle"
msgid "Parameter template"
msgstr "Modèle de paramètre"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Données"
@@ -2156,18 +2156,18 @@ msgstr "Données"
msgid "Parameter Value"
msgstr "Valeur du paramètre"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Note"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Champ de notes facultatif"
@@ -2391,85 +2391,85 @@ msgstr "Indique si le paramètre est écrasé par une variable d'environnement"
msgid "Override"
msgstr "Écraser"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "En cours d'exécution"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Tâches en attente"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Tâches planifiées"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Tâches échouées"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID de la tâche"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "ID unique de la tâche"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Verrouillé"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Heure verrouillé"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nom de la tâche"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Fonction"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nom de la fonction"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Arguments"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Arguments tâche"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Mots-clés Arguments"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Mots-clés arguments tâche"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nom du fichier"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Type de modèle"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "L'utilisateur n'a pas le droit de créer ou de modifier des pièces jointes pour ce modèle"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "L'utilisateur n'a pas le droit de créer ou de modifier les paramètres de ce modèle."
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "La liste de sélection est verrouillée"
@@ -2859,8 +2859,8 @@ msgstr "Les pièces sont des templates par défaut"
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/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Composant"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Désactivé : Le chemin de la catégorie complète est affiché comme un info-bulle de survol. Activé : Le chemin de la catégorie complète est affiché en texte brut."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Recevoir des rapports d'erreur"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Recevoir des notifications en cas d'erreurs du système"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Dernières machines d'impression utilisées"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Sauvegarder les dernières machines d'impression utilisées par un utilisateur"
@@ -3988,33 +3996,33 @@ msgstr "La pièce est active"
msgid "Manufacturer is Active"
msgstr "Le fabricant est actif"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Le fournisseur de la pièce est active"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "La pièce interne est active"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Le fournisseur est actif"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Fabricant"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Société"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "A du stock"
@@ -4195,7 +4203,7 @@ msgstr "Notes internes pour la livraison"
msgid "Link to address information (external)"
msgstr "Lien vers les informations de l'adresse (externe)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Pièces du fabricant"
@@ -4213,12 +4221,12 @@ msgstr "Sélectionner une partie"
msgid "Select manufacturer"
msgstr "Sélectionner un fabricant"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "Référence fabricant"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Référence du fabricant"
@@ -4242,8 +4250,8 @@ msgstr "Les unités d'emballage doivent être supérieures à zéro"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Fournisseur"
msgid "Select supplier"
msgstr "Sélectionner un fournisseur"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Unité de gestion des stocks des fournisseurs"
@@ -4282,16 +4290,16 @@ msgstr "Lien de la pièce du fournisseur externe"
msgid "Supplier part description"
msgstr "Description de la pièce du fournisseur"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Frais minimums (par exemple frais de stock)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Conditionnement"
@@ -4307,7 +4315,7 @@ msgstr "Nombre de paquet"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Quantité totale fournie dans un emballage unique. Laisser vide pour les articles individuels."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "plusieurs"
@@ -4339,14 +4347,18 @@ msgstr "Devise par défaut utilisée pour ce fournisseur"
msgid "Company Name"
msgstr "Nom de l'entreprise"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "En Stock"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Ruptures de prix"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Une erreur s'est produite lors de l'exportation des données"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Identifiant de base de données existant pour l'enregistrement"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "La colonne est déjà associée à un champ de la base de données"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Le champ est déjà associé à une colonne de données"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Le mappage des colonnes doit être lié à une session d'importation valide"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "La colonne n'existe pas dans le fichier de données"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Le champ n'existe pas dans le modèle cible"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Le champ sélectionné est en lecture seule"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Session d'importation"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Champ d'application"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Colonne"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Index des lignes"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Données de la ligne d'origine"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Erreurs"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Valide"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "L'ID est requis pour mettre à jour les enregistrements existants."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Aucun enregistrement trouvé avec l'ID fourni"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Format d'ID invalide"
@@ -4821,7 +4833,7 @@ msgstr "Commande"
msgid "Order Complete"
msgstr "Commande Complétée"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Pièces Internes"
@@ -4918,7 +4930,7 @@ msgstr "Date de début"
msgid "Scheduled start date for this order"
msgstr "Date de début prévue pour cette commande"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Date Cible"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Référence de la commande"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "État"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Reçu"
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Prix d'achat"
@@ -5211,8 +5223,8 @@ msgstr "Vérifié par"
msgid "User who checked this shipment"
msgstr "Utilisateur qui a vérifié cet envoi"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envoi"
@@ -5277,7 +5289,7 @@ msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock"
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "La quantité doit être égale à 1 pour un article de stock sérialisé"
@@ -5393,7 +5405,7 @@ msgstr "Copier les lignes supplémentaires"
msgid "Copy extra line items from the original order"
msgstr "Copier les postes supplémentaires de l'ordre original"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Copier les paramètres"
@@ -5412,216 +5424,216 @@ msgstr "Postes de travail"
msgid "Completed Lines"
msgstr "Lignes achevées"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Duplicata de commande"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Spécifier les options de duplication de cette commande"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "ID de commande invalide"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Nom du fournisseur"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "La commande ne peut pas être annulée"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Permettre la clôture d'une commande avec des postes incomplets"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "La commande comporte des postes incomplets"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "La commande n'est pas ouverte"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Tarification automobile"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Calculer automatiquement le prix d'achat sur la base des données de pièces du fournisseur"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Fusionner des éléments"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Fusionner en un seul poste les éléments ayant la même partie, la même destination et la même date cible"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Unité de gestion des stocks"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Numéro de pièce interne"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Nom de la pièce interne"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "La pièce du fournisseur doit être spécifiée"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Le bon de commande doit être spécifié"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Le fournisseur doit correspondre au bon de commande"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Le bon de commande doit correspondre au fournisseur"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Poste"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Sélectionner le lieu de destination des envois reçus"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Saisir le code de lot pour les articles de stock entrant"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Date d'expiration"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Saisir la date d'expiration des articles de stock entrant"
-#: order/serializers.py:837
+#: order/serializers.py:878
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:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Remplacer les informations d'emballage pour les articles en stock entrants"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Note supplémentaire pour les articles en stock entrant"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Code-barres"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Code-barres scanné"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Les postes doivent être fournis"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "L'emplacement de la destination doit être spécifié"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Les valeurs de code-barres fournies doivent être uniques"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Envois"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Envois terminés"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr "Lignes allouées"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Devise du prix de vente"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Postes alloués"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Aucun détail sur l'expédition n'est fourni"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Le poste n'est pas associé à cette commande"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "La quantité doit être positive"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Entrez les numéros de série à allouer"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "L'envoi a déjà été effectué"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "L'envoi n'est pas associé à cette commande"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
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:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Les numéros de série suivants sont indisponibles"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Poste de commande de retour"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Le poste ne correspond pas à l'ordre de retour"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Le poste a déjà été reçu"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Les articles ne peuvent être reçus que pour des commandes en cours"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Quantité à retourner"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Devise du prix de la ligne"
@@ -5732,71 +5744,71 @@ msgstr "Exclure les sous-catégories de la catégorie spécifiée"
msgid "Has Results"
msgstr "A des résultats"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Est variante"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Est la révision"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "A des révisions"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "Nomenclature valide"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Catégories en cascade"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Si vrai, inclure des éléments dans les sous-catégories de la catégorie donnée"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtrer par ID de catégorie numérique ou par 'null'"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr "La pièce d'assemblage est active"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr "La pièce d'assemblage est traçable"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "La pièce d'assemblage est testable"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Le composant est testable"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Utilise"
@@ -5805,7 +5817,7 @@ msgstr "Utilise"
msgid "Part Category"
msgstr "Catégorie de composant"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Catégories de composants"
@@ -5837,7 +5849,7 @@ msgstr "Mots-clés par défaut pour les pièces de cette catégorie"
msgid "Icon"
msgstr "Icône"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icône (facultatif)"
@@ -5858,7 +5870,7 @@ msgstr "Valeur par Défaut"
msgid "Default Parameter Value"
msgstr "Valeur par défaut du paramètre"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Pièces"
@@ -5973,7 +5985,7 @@ msgstr "Les mots-clés partiels pour améliorer la visibilité dans les résulta
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6006,7 +6018,7 @@ msgstr "Expiration par défaut"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Délai d'expiration (en jours) pour les articles en stock de cette pièce"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Stock Minimum"
@@ -6086,756 +6098,756 @@ msgstr "Création Utilisateur"
msgid "Owner responsible for this part"
msgstr "Propriétaire responsable de cette pièce"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Devise utilisée pour cacher les calculs de prix"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Coût minimum de la nomenclature"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Coût minimal des composants"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Coût maximal de la nomenclature"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Coût maximal des composants"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Coût d'achat minimum"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Coût d'achat historique minimum"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Coût d'achat maximum"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Coût d'achat historique maximum"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Prix interne minimum"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Coût minimum basé sur des ruptures de prix internes"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Prix interne maximum"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Coût maximum basé sur les écarts de prix internes"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Prix minimum du fournisseur"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Prix minimum des pièces provenant de fournisseurs externes"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Prix maximum du fournisseur"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Prix maximum des pièces provenant de fournisseurs externes"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Coût minimum de la variante"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Calcul du coût minimum des pièces de la variante"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Coût maximal de la variante"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Calcul du coût maximal des pièces de la variante"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Coût minimal"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Remplacer le coût minimum"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Coût maximal"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Dépassement du coût maximal"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Calcul du coût minimum global"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Calcul du coût maximum global"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Prix de vente minimum"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Prix de vente minimum basé sur des ruptures de prix"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Prix de vente maximum"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Prix de vente maximum en fonction des écarts de prix"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Coût minimum de vente"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Prix de vente historique minimum"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Coût de vente maximum"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Prix de vente historique maximum"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Partie pour l'inventaire"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Nombre d'articles"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Nombre d'entrées individuelles au moment de l'inventaire"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Stock total disponible au moment de l'inventaire"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Date"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Date de l'inventaire"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Coût minimum du stock"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Coût minimum estimé des stocks disponibles"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Coût maximal du stock"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Coût maximum estimé des stocks disponibles"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Vente de pièces détachées Prix cassé"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Modèle de test partiel"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Le nom du modèle n'est pas valide - il doit comporter au moins un caractère alphanumérique"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Les modèles de test ne peuvent être créés que pour les parties testables"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Un modèle de test avec la même clé existe déjà pour la partie"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Entrez un nom pour le test"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Clé de test"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Clé simplifiée pour le test"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Description du test"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Saisir la description de ce test"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Ce test est-il activé ?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Requis"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Ce test est-il obligatoire pour passer l'examen ?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Valeur requise"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Ce test nécessite-t-il une valeur lors de l'ajout d'un résultat de test ?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Nécessite une pièce jointe"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Ce test nécessite-t-il un fichier joint lors de l'ajout d'un résultat de test ?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Choix valables pour ce test (séparés par des virgules)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "L'article de nomenclature ne peut pas être modifié - l'assemblage est verrouillé"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "Le poste de nomenclature ne peut pas être modifié - l'assemblage de la variante est verrouillé"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Sélectionner la partie parentale"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sous-partie"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Sélectionner la pièce à utiliser dans la nomenclature"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Quantité de nomenclature pour ce poste de nomenclature"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Ce poste de nomenclature est facultatif"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Ce poste de nomenclature est consommable (il n'est pas suivi dans les ordres de fabrication)."
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Définir la quantité"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Attrition"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Attrition estimée pour cette fabrication, exprimée en pourcentage (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Arrondi au multiple"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Arrondir la quantité de production requise au multiple le plus proche de cette valeur"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Référence du poste de nomenclature"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Notes sur les postes de nomenclature"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Somme de contrôle"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Somme de contrôle de la ligne de nomenclature"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Validée"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Ce poste de nomenclature a été validé"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Obtient l'héritage"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Ce poste de nomenclature est hérité des nomenclatures des composants variants"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Les postes de stock pour les composants variants peuvent être utilisés pour ce poste de nomenclature"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "La quantité doit être un nombre entier pour les pièces pouvant être suivies"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "La sous-partie doit être spécifiée"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Remplacement d'un poste de nomenclature"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "La pièce de remplacement ne peut pas être identique à la pièce maîtresse"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Poste de nomenclature parent"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Pièce de rechange"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Première partie"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Partie 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Sélectionner une partie connexe"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Note pour cette relation"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Il n'est pas possible de créer une relation entre une pièce et elle-même"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Une relation en double existe déjà"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Catégorie de parents"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Catégorie de pièce mère"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Sous-catégories"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Résultats"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Nombre de résultats enregistrés par rapport à ce modèle"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Devise d'achat de l'item"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Le fichier n'est pas une image"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Partie originale"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Sélectionner la partie originale à dupliquer"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Copier l'image"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Copier l'image à partir de la partie originale"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Copier la nomenclature"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Copie de la nomenclature de la pièce originale"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Copie des données de paramètres de la pièce d'origine"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Notes sur la copie"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Copier les notes de la partie originale"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Test Copie"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Quantité de stock initial"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Indiquer la quantité de stock initiale pour cette pièce. Si la quantité est égale à zéro, aucun stock n'est ajouté."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Emplacement initial du stock"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Spécifier l'emplacement du stock initial pour cette pièce"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Sélectionner le fournisseur (ou laisser en blanc pour passer)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Sélectionner le fabricant (ou laisser en blanc pour ignorer)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Numéro de pièce du fabricant"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "L'entreprise sélectionnée n'est pas un fournisseur valide"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "L'entreprise sélectionnée n'est pas un fabricant valide"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "La pièce du fabricant correspondant à ce MPN existe déjà"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "La pièce du fournisseur correspondant à cette UGS existe déjà"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Nom catégorie"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Construction"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Quantité de cette pièce actuellement en production"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Quantité exceptionnelle de cette pièce sont planifié à la fabrication"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Éléments en stock"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Révisions"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Stock total"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Stock non attribué"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Variante Stock"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Dupliquer une pièce"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Copier les données initiales d'une autre partie"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Stock initial"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Créer une pièce avec une quantité de stock initiale"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Informations sur le fournisseur"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Ajouter les informations initiales du fournisseur pour cette pièce"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Copier les paramètres de la catégorie"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Copier les modèles de paramètres de la catégorie de pièces sélectionnée"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Image existante"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Nom de fichier d'une image de pièce existante"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Le fichier image n'existe pas"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Valider l'ensemble de la nomenclature"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Peut construire"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Nécessaire pour fabrication"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Alloué à la fabrication"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Nécessaire pour les commandes"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Alloué aux commandes"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Prix Minimum"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Remplacer la valeur calculée pour le prix minimum"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Prix minimum monnaie"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Prix Maximum"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Remplacer la valeur calculée pour le prix maximum"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Devise du prix maximum"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Mise à jour"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Mise à jour des prix pour cette pièce"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Impossible de convertir les devises fournies en {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Le prix minimum ne doit pas être supérieur au prix maximum"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Le prix maximum ne doit pas être inférieur au prix minimum"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Sélectionner l'assemblage parent"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Sélectionner le composant"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Sélectionner la pièce à partir de laquelle copier la nomenclature"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Supprimer les données existantes"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Supprimer les postes de nomenclature existants avant de les copier"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Inclure l'héritage"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inclure les éléments de nomenclature hérités des pièces modélisées"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Sauter les lignes non valides"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Activez cette option pour ignorer les lignes non valides"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Copier les pièces de remplacement"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copie de pièces de rechange en cas de duplication de postes de nomenclature"
@@ -7758,7 +7770,7 @@ msgstr "Plugin Package"
msgid "Plugin"
msgstr "Extension"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Aucun auteur trouvé"
@@ -8288,7 +8300,7 @@ msgstr "Rapport de test des articles en stock"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Éléments installés"
@@ -8361,7 +8373,7 @@ msgstr "Filtrer par lieux de premier niveau"
msgid "Include sub-locations in filtered results"
msgstr "Inclure les sous-emplacements dans les résultats filtrés"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Emplacement parent"
@@ -8445,7 +8457,7 @@ msgstr "Date d'expiration avant"
msgid "Expiry date after"
msgstr "Date d’expiration après"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Périmé"
@@ -8530,7 +8542,7 @@ msgstr "Icône par défaut pour tous les lieux qui n'ont pas d'icône (facultati
msgid "Stock Location"
msgstr "Emplacement du stock"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Emplacement des stocks"
@@ -8579,7 +8591,7 @@ msgstr "La pièce doit être spécifiée"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Les articles en stock ne peuvent pas être localisés dans des emplacements de stock structurel !"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Il n'est pas possible de créer un article de stock pour les pièces virtuelles"
@@ -8624,7 +8636,7 @@ msgstr "Sélectionnez une pièce fournisseur correspondante pour cet article en
msgid "Where is this stock item located?"
msgstr "Où se trouve cet article en stock ?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "L'emballage de cet article en stock est stocké dans"
@@ -8640,7 +8652,7 @@ msgstr "L'article a été installé dans un autre article ?"
msgid "Serial number for this item"
msgstr "Numéro de série pour cet article"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Code de lot pour cet article de stock"
@@ -8753,7 +8765,7 @@ msgstr "L'article de stock est actuellement en production"
msgid "Serialized stock cannot be merged"
msgstr "Le stock sérialisé ne peut pas être fusionné"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Articles de stock en double"
@@ -8877,7 +8889,7 @@ msgstr "Sélectionner la pièce pour laquelle un numéro de série doit être g
msgid "Quantity of serial numbers to generate"
msgstr "Nombre de numéros de série à générer"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Modèle de test pour ce résultat"
@@ -8901,222 +8913,222 @@ msgstr "Article Parent"
msgid "Parent stock item"
msgstr "Article de stock parent"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Utiliser la taille de l'emballage lors de l'ajout : la quantité définie est le nombre d'emballages"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Entrez les numéros de série pour les nouveaux articles"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Référence du fournisseur"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Expiré"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Éléments enfants"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Suivi des éléments"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Prix d'achat de cet article en stock, par unité ou par paquet"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Entrez le nombre d'articles en stock à sérialiser"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La quantité ne doit pas dépasser la quantité disponible en stock ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Emplacement du stock de destination"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
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:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Les numéros de série existent déjà"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Sélectionner l'article de stock à installer"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Quantité à installer"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Saisir la quantité d'articles à installer"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Ajouter une note de transaction (facultatif)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "La quantité à installer doit être d'au moins 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "L'article en stock n'est pas disponible"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "La pièce sélectionnée ne figure pas dans la nomenclature"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "La quantité à installer ne doit pas dépasser la quantité disponible"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Emplacement de destination de l'élément désinstallé"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Sélectionner la pièce à convertir en article de stock"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "La partie sélectionnée n'est pas une option valide pour la conversion"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Impossible de convertir un article de stock auquel un SupplierPart a été attribué"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Code d'état de l'article en stock"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Sélectionner les articles en stock pour modifier leur statut"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Aucun article en stock n'a été sélectionné"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sous-localisations"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Emplacement du stock mère"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "La pièce doit être vendable"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "L'article est affecté à une commande client"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "L'article est attribué à un ordre de fabrication"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Affectation d'articles en stock par le client"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "L'entreprise sélectionnée n'est pas un client"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Notes d'affectation des stocks"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Une liste des articles en stock doit être fournie"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Notes sur les fusions d'actions"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Autoriser les fournisseurs non concordants"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permettre la fusion d'articles en stock avec des pièces de fournisseurs différents"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Autoriser la non-concordance des statuts"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Permettre la fusion d'articles en stock ayant des codes de statut différents"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Au moins deux articles en stock doivent être fournis"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Pas de changement"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Valeur de la clé primaire StockItem"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "L'article n'est plus en stock"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Notes sur les transactions boursières"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Numéro de série suivant"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Numéro de série précédent"
@@ -9582,115 +9594,119 @@ msgstr "Groupe primaire"
msgid "Primary group for the user"
msgstr "Groupe principal de l'utilisateur"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Administrateur"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Bons de commande"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Ventes"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Commandes de retour"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nom d'utilisateur"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Prénom"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Prénom de l'utilisateur"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Nom"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Nom de famille de l'utilisateur"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Adresse e-mail de l'utilisateur"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Super-utilisateur"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Cet utilisateur est-il un super-utilisateur"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Ce compte d'utilisateur est-il actif"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Seul un superutilisateur peut modifier ce champ"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Mot de passe"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Mot de passe pour l'utilisateur"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Écraser l'alerte sur les règles de mot de passe"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Vous n'avez pas le droit de créer des utilisateurs"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Votre compte a été créé."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Veuillez utiliser la fonction de réinitialisation du mot de passe pour vous connecter"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Bienvenue dans InvenTree"
diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po
index 71eaa7ef26..054ba2a24f 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -104,13 +104,13 @@ msgstr "הזן תאריך סיום"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "אימייל"
@@ -269,7 +269,7 @@ msgstr "בחירה שגויה"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "נרשמה שגיאה על ידי השרת."
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "מטבע"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "בחר מטבע מהאפשרויות הזמינות"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "סינית (פשוטה)"
msgid "Chinese (Traditional)"
msgstr "סינית (מסורתית)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr "מקור הבנייה"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "רכיב"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "קישור חיצוני"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "כמות"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "מספרים סידוריים"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "מבוטל"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "משתמש"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "שם קובץ"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "שם משתמש"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "שם פרטי"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po
index 7ff7a8925b..0f02dcb7e4 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Language: hi_IN\n"
@@ -104,13 +104,13 @@ msgstr "तारीख दर्ज करें"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "ई-मेल"
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po
index 07e816734e..f9062fc13f 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -104,13 +104,13 @@ msgstr "Dátum megadása"
msgid "Invalid decimal value"
msgstr "Érvénytelen decimális érték"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Megjegyzések"
@@ -215,7 +215,7 @@ msgstr "A megadott URL nem egy érvényes kép fájl"
msgid "Log in to the app"
msgstr "Bejelentkezés az appba"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Email"
@@ -269,7 +269,7 @@ msgstr "Érvénytelen választás"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "A kiszolgáló egy hibaüzenetet rögzített."
msgid "Image"
msgstr "Kép"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Pénznem"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Válassz pénznemet a lehetőségek közül"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Ez a mező nem lehet null."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Érvénytelen érték"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Távoli kép"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "A távoli kép URL-je"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Képek letöltése távoli URL-ről nem engedélyezett"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Nem sikerült letölteni a képet a távoli URL-ről"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Érvénytelen tartalomtípus-formátum"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Tartalomtípus nem található"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "A tartalomtípus nem egyezik a szükséges mixin osztállyal"
@@ -536,11 +536,11 @@ msgstr "Kínai (egyszerűsített)"
msgid "Chinese (Traditional)"
msgstr "Kínai (Hagyományos)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Frissítés elérhető"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree frissítés elérhető"
@@ -561,21 +561,21 @@ msgstr "Rendelés állapota"
msgid "Parent Build"
msgstr "Szülő gyártás"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Változatokkal együtt"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Változatokkal együtt"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Változatokkal együtt"
msgid "Part"
msgstr "Alkatrész"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategória"
@@ -665,89 +665,89 @@ msgstr "Eddig a dátumig"
msgid "Exclude Tree"
msgstr "Fa kihagyása"
-#: build/api.py:400
+#: build/api.py:414
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:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Fogyóeszköz"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opcionális"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Gyártmány"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Követett"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Ellenőrizhető"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Befejezetlen rendelés"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Lefoglalva"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Felhasználva"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Elérhető"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Rendelve"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr "Gyártás nem található"
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Gyártási utasítás"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Hely"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Kimenet"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Szűrés a kimeneti készlet tétel azonosítójára. Használj 'null'-t ha a be nem épített gyártási tételeket keresed."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Gyártási utasítások"
@@ -783,9 +783,9 @@ msgstr "Céldátumnak a kezdeti dátum után kell lennie"
msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Vevői rendelés azonosító"
msgid "Sales Order to which this build is allocated"
msgstr "Vevői rendelés, amelyhez ez a gyártás tartozik"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Forrás hely"
@@ -861,16 +861,16 @@ msgstr "Gyártási állapot"
msgid "Build status code"
msgstr "Gyártás státusz kód"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Batch kód"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Batch kód a gyártás kimenetéhez"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Létrehozás dátuma"
@@ -907,120 +907,120 @@ msgstr "Indította"
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:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Felelős"
-#: build/models.py:412
+#: build/models.py:420
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:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Külső link"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link külső URL-re"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Priorítás"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Gyártási utasítás priorítása"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Projektszám"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Projekt kód a gyártáshoz"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "A gyártási rendelés nem befejezhető amíg nyitott al-gyártások vannak"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "A gyártási rendelés nem befejezhető amíg hiányos a kimenet"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
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"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "A {build} gyártási utasítás elkészült"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Gyártási utasítás elkészült"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nincs gyártási kimenet megadva"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Gyártási kimenet már kész"
-#: build/models.py:1022
+#: build/models.py:1030
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:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
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:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "A gyártási kimenet nem felelt meg az összes kötelező teszten"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "A lefoglalt készletelemek még gyártás alatt vannak"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Nem lehet részben befejezni egy építési kimenetet lefoglalt tételekkel"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Gyártási Rendelés Sor Tétel"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Gyártás objektum"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,446 +1032,446 @@ msgstr "Gyártás objektum"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Mennyiség"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Gyártáshoz szükséges mennyiség"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Felhasznált készlet mennyisége"
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "A lefoglalt mennyiségnek nullánál nagyobbnak kell lennie"
-#: build/models.py:1976
+#: build/models.py:1984
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:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Készlet tétel"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Forrás készlet tétel"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Beépítés ebbe"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Cél készlet tétel"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Gyártási Szint"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Alkatrész neve"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Gyártás kimenet"
-#: build/serializers.py:219
+#: build/serializers.py:227
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:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Ez a gyártási kimenet már elkészült"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 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:331
+#: build/serializers.py:339
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:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Sorozatszámok"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Legyártott készlet helye"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Sorozatszámok automatikus hozzárendelése"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "A gyártási kimenetek listáját meg kell adni"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Selejtezet gyártási kimenetek helye"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Foglalások törlése"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Selejtezett kimenetek foglalásainak felszabadítása"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Selejtezés oka"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "A kész gyártási kimenetek helye"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Hiányos foglalás elfogadása"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Lefoglalt készlet felhasználása"
-#: build/serializers.py:691
+#: 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:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Befejezetlen kimenetek törlése"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Nem engedélyezett"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Gyártásban fel lett használva"
-#: build/serializers.py:727
+#: 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:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Túlfoglalt készlet"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Pár készlet tétel túl lett foglalva"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Kiosztatlanok elfogadása"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "A szükséges készlet nem lett teljesen lefoglalva"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Befejezetlenek elfogadása"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Szükséges gyártási mennyiség nem lett elérve"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "A Gyártásnak nyitott leszármazott Gyártása van"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "A Gyártásnak folyamatban kell lennie"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Gyártás sor"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Gyártás kimenet"
-#: build/serializers.py:877
+#: build/serializers.py:885
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:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Gyártás sor tétel"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "A tételnek kell legyen készlete"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Rendelkezésre álló mennyiség ({q}) túllépve"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "A lefoglalandó tételeket meg kell adni"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Hely kizárása"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
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:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Felcserélhető készlet"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Készlet helyettesítés"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Helyettesítő alkatrészek foglalásának engedélyezése"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Opcionális tételek"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Opcionális tételek lefoglalása a gyártáshoz"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "Összes elem"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr "Nem követett tételek"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr "Követett tételek"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "Tétel típusa"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr "Válasszon tétel típust az automatikus foglaláshoz"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Alkatrészjegyzék Hivatkozás"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "Alkatrészjegyzék Cikk Azonosító"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Alkatrészjegyzék Alkatrész Név"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "Beépítés helye"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Gyártás"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Beszállítói alkatrész"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Lefoglalt mennyiség"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Gyártási Hivatkozás"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Alkatrész kategória Neve"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Követésre kötelezett"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Örökölt"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Változatok"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Gyártásban"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Gyártás Ütemezve"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Külső raktárkészlet"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Elérhető készlet"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Elérhető Helyettesítő Készlet"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Elérhető Készlet Változatokból"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Felhasznált mennyiség meghaladja a lefoglalt mennyiséget"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Megjegyzés a készletfelhasználáshoz"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "Gyártási tételnek a megfelelő gyártási rendelésre kell mutatnia"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Dupla gyártási tétel lefoglalás"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "Gyártási sornak a megfelelő gyártási rendelésre kell mutatnia"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Duplikált gyártási sor foglalás"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Legalább egy tétel vagy sor megadása kötelező"
@@ -1495,7 +1495,7 @@ msgstr "Felfüggesztve"
msgid "Cancelled"
msgstr "Törölve"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1519,19 +1519,19 @@ msgstr "Késésben lévő gyártás"
msgid "Build order {bo} is now overdue"
msgstr "A {bo} gyártás most már késésben van"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Ez egy hivatkozás"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Ez egy állomány"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "A felhasználó nem jogosult ezen mellékletek törlésére"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "A felhasználó nem jogosult ezen melléklet törlésére"
@@ -1551,7 +1551,7 @@ msgstr "Hiányzó érvényes valuta kód"
msgid "No plugin"
msgstr "Nincsen plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Projekt kód címke"
@@ -1618,7 +1618,7 @@ msgstr "Kulcs string egyedi kell legyen"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1629,7 +1629,7 @@ msgstr "Felhasználó"
msgid "Price break quantity"
msgstr "Ársáv mennyiség"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Ár"
@@ -1653,7 +1653,7 @@ msgstr "Webhook neve"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktív"
@@ -1850,7 +1850,7 @@ msgstr "Fájl mérete"
msgid "File size in bytes"
msgstr "Fájlméret bájtban"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "A melléklet model típusa érvénytelen"
@@ -2059,7 +2059,7 @@ msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége"
msgid "Checkbox parameters cannot have choices"
msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "A lehetőségek egyediek kell legyenek"
@@ -2095,7 +2095,7 @@ msgstr "Jelölőnégyzet"
msgid "Is this parameter a checkbox?"
msgstr "Ez a paraméter egy jelölőnégyzet?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Lehetőségek"
@@ -2107,7 +2107,7 @@ msgstr "Választható lehetőségek (vesszővel elválasztva)"
msgid "Selection list for this parameter"
msgstr "A paraméter választéklistája"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Engedélyezve"
@@ -2127,7 +2127,7 @@ msgstr "Paraméterek"
msgid "Invalid choice for parameter value"
msgstr "Hibás választás a paraméterre"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Érvénytelen modelltípus megadva a paraméterhez"
@@ -2141,7 +2141,7 @@ msgstr "A célmodell azonosítója ehhez a paraméterhez"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Sablon"
@@ -2149,7 +2149,7 @@ msgstr "Sablon"
msgid "Parameter template"
msgstr "Paraméter sablon"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Adat"
@@ -2157,18 +2157,18 @@ msgstr "Adat"
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Megjegyzés"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Opcionális megjegyzés mező"
@@ -2392,85 +2392,85 @@ msgstr "Ez a beállítás felül van bírálva egy környezeti változó által"
msgid "Override"
msgstr "Felülbírálás"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Folyamatban"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Folyamatban lévő feladatok"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Ütemezett Feladatok"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Hibás feladatok"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Feladat ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Egyedi feladat ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Zárol"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Zárolási idő"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Feladat neve"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funkció"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Funkció neve"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Paraméterek"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Feladat paraméterei"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Kulcsszó paraméterek"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Feladat kulcsszó paraméterek"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Fájlnév"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Modell típusa"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "A felhasználónak nincs joga létrehozni vagy módosítani ehhez a modelhez tartozó mellékleteket"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "A felhasználónak nincs jogosultsága paraméterek létrehozására vagy szerkesztésére ehhez a modellhez"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Választéklista lezárva"
@@ -2860,8 +2860,8 @@ msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
msgid "Parts can be assembled from other components by default"
msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Összetevő"
@@ -3929,18 +3929,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Letiltva: A teljes kategória elérési út megjelenik tooltipként. Engedélyezve: A teljes kategória elérési út megjelenik szövegként."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Hibariportok fogadása"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Értesítések fogadása a rendszerhibákról"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Utoljára használt nyomtató gépek"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Az utoljára használt nyomtató tárolása a felhasználóhoz"
@@ -3989,33 +3997,33 @@ msgstr "Az alkatrész aktív"
msgid "Manufacturer is Active"
msgstr "A Gyártó Aktív"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "A Szállítói Alkatrész Aktív"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "A saját alkatrész Aktív"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "A Beszállító Aktív"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Gyártó"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Cég"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Van készleten"
@@ -4196,7 +4204,7 @@ msgstr "Szállítási megjegyzések belső használatra"
msgid "Link to address information (external)"
msgstr "Link a címinformációkhoz (külső)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Gyártói alkatrész"
@@ -4214,12 +4222,12 @@ msgstr "Válassz alkatrészt"
msgid "Select manufacturer"
msgstr "Gyártó kiválasztása"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN (Gyártói cikkszám)"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Gyártói cikkszám"
@@ -4243,8 +4251,8 @@ msgstr "Csomagolási mennyiségnek nullánál többnek kell lennie"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4255,7 +4263,7 @@ msgstr "Beszállító"
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
@@ -4283,16 +4291,16 @@ msgstr "URL link a beszállítói alkatrészhez"
msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "alap költség"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Csomagolás"
@@ -4308,7 +4316,7 @@ msgstr "Csomagolási mennyiség"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "többszörös"
@@ -4340,14 +4348,18 @@ msgstr "Beszállító által használt alapértelmezett pénznem"
msgid "Company Name"
msgstr "Cégnév"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Készleten"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Árkategóriák"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Hiba történt adatexportálás közben"
@@ -4452,67 +4464,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Létező adatbázis azonosító a rekordhoz"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Oszlop már adatbázis mezőhöz lett rendelve"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Adatbázis mező már adatfájl oszlophoz lett rendelve"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Az oszlop összerendelésnek egy helyes importálási művelethez kell kapcsolódnia"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Az Oszlop nem létezik ebben a fájlban"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "A mező nem létezik a cél adatszerkezetben"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Kijelölt mező csak olvasható"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Importálási művelet"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Mező"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Oszlop"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Sor száma"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Eredeti sor adat"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Hibák"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Érvényes"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "ID-ra van szükség meglévő rekord frissítéshez."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Nem található rekord a megadott ID-vel"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Érvénytelen az ID formátuma"
@@ -4822,7 +4834,7 @@ msgstr "Rendelés"
msgid "Order Complete"
msgstr "A rendelés teljesítve"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Belső alkatrész"
@@ -4919,7 +4931,7 @@ msgstr "Kezdés dátuma"
msgid "Scheduled start date for this order"
msgstr "A tervezett kezdeti dátum ehhez a gyártáshoz"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Cél dátum"
@@ -4957,7 +4969,7 @@ msgid "Order reference"
msgstr "Rendelés azonosító"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Állapot"
@@ -5014,7 +5026,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5140,7 +5152,7 @@ msgstr "Beérkezett"
msgid "Number of items received"
msgstr "Érkezett tételek száma"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Beszerzési ár"
@@ -5212,8 +5224,8 @@ msgstr "Ellenőrizte"
msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Szállítmány"
@@ -5278,7 +5290,7 @@ msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
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"
@@ -5394,7 +5406,7 @@ msgstr "Extra sorok másolása"
msgid "Copy extra line items from the original order"
msgstr "Az eredeti rendelés extra tételeinek másolása"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Paraméterek másolása"
@@ -5413,216 +5425,216 @@ msgstr "Sortételek"
msgid "Completed Lines"
msgstr "Kész sorok"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Rendelés duplikálása"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Rendelés másolás beállításai"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Érvénytelen rendelés ID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Beszállító neve"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "A rendelést nem lehet törölni"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
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:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "A rendelésben teljesítetlen sortételek vannak"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "A rendelés nem nyitott"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Automata árazás"
-#: order/serializers.py:653
+#: order/serializers.py:678
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:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Beszérzési ár pénzneme"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Elemek összevonása"
-#: order/serializers.py:691
+#: order/serializers.py:728
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:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU (leltári azonosító)"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Belső cikkszám"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Belső cikkszám"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Beszállítói alkatrészt meg kell adni"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Beszerzési rendelést meg kell adni"
-#: order/serializers.py:747
+#: order/serializers.py:784
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:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Sortétel"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Válassz cél helyet a beérkezett tételeknek"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Írd be a batch kódját a beérkezett tételeknek"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Lejárati dátum"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Írd be a beérkező készlet tételek lejárati dátumát"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Írd be a sorozatszámokat a beérkezett tételekhez"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Bejövő készlettételek csomagolási információjának felülbírálata"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Kiegészítő megjegyzés beérkező készlettételekhez"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Vonalkód"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Beolvasott vonalkód"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Ez a vonalkód már használva van"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Sortételt meg kell adni"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "A cél helyet kötelező megadni"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Megadott vonalkódoknak egyedieknek kel lenniük"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Szállítások"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Kész szállítmányok"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Eladási ár pénzneme"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Foglalt tételek"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Nincsenek szállítmány részletek megadva"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Mennyiség pozitív kell legyen"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Írd be a sorozatszámokat a kiosztáshoz"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Szállítmány kiszállítva"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Nincs találat a következő sorozatszámokra"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Az alábbi sorozatszámok nem elérhetők"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Visszavétel sortétel"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Sortétel nem egyezik a visszavétellel"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "A sortétel már beérkezett"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Visszaküldési mennyiség"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Sortétel pénzneme"
@@ -5733,71 +5745,71 @@ msgstr "Az adott kategória alkategóriáinak kihagyása"
msgid "Has Results"
msgstr "Van találat"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Változat-e"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Változat"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Vannak Változatok"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "Alkatrészjegyzék ellenőrizve"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Kaszkád Kategóriák"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Ha igaz, tartalmazza az adott kategória alkategóriáiban lévő tételeket"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Szűrés numerikus kategória azonosító vagy a 'null' literál szerint"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Összeállított Alkatrész ellenőrizhető"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Összetevő alkatrész ellenőrizhető"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Használ"
@@ -5806,7 +5818,7 @@ msgstr "Használ"
msgid "Part Category"
msgstr "Alkatrész kategória"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Alkatrész kategóriák"
@@ -5838,7 +5850,7 @@ msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban"
msgid "Icon"
msgstr "Ikon"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikon (opcionális)"
@@ -5859,7 +5871,7 @@ msgstr "Alapértelmezett érték"
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Alkatrészek"
@@ -5974,7 +5986,7 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén
msgid "Part category"
msgstr "Alkatrész kategória"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN (Belső Cikkszám)"
@@ -6007,7 +6019,7 @@ msgstr "Alapértelmezett lejárat"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimális készlet"
@@ -6087,756 +6099,756 @@ msgstr "Létrehozó"
msgid "Owner responsible for this part"
msgstr "Alkatrész felelőse"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Árszámítások gyorstárazásához használt pénznem"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimum alkatrészjegyzék költség"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Összetevők minimum költsége"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maximum alkatrészjegyzék költség"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Összetevők maximum költsége"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimum beszerzési ár"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Eddigi minimum beszerzési költség"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maximum beszerzési ár"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Eddigi maximum beszerzési költség"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimum belső ár"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Minimum költség a belső ársávok alapján"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maximum belső ár"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Maximum költség a belső ársávok alapján"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimum beszállítói ár"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Minimum alkatrész ár a beszállítóktól"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maximum beszállítói ár"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Maximum alkatrész ár a beszállítóktól"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimum alkatrészváltozat ár"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Alkatrészváltozatok számolt minimum költsége"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maximum alkatrészváltozat ár"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Alkatrészváltozatok számolt maximum költsége"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimum költség"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Minimum költség felülbírálása"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maximum költség"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Maximum költség felülbírálása"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Számított általános minimum költség"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Számított általános maximum költség"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimum eladási ár"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Minimum eladási ár az ársávok alapján"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maximum eladási ár"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Maximum eladási ár az ársávok alapján"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Minimum eladási költség"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Eddigi minimum eladási ár"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maximum eladási költség"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Eddigi maximum eladási ár"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Leltározható alkatrész"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Tételszám"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Egyedi készlet tételek száma a leltárkor"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Teljes készlet a leltárkor"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Dátum"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Leltározva ekkor"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimum készlet érték"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Becsült minimum raktárkészlet érték"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maximum készlet érték"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Becsült maximum raktárkészlet érték"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Alkatrész értékesítési ársáv"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Alkatrész Teszt Sablon"
-#: part/models.py:3646
+#: part/models.py:3655
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:3678
+#: part/models.py:3687
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:3692
+#: part/models.py:3701
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:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Teszt azonosító"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Egyszerűsített Teszt azonosító"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Teszt engedélyezve?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Választható lehetőségek ehhez a Teszthez (vesszővel elválasztva)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás le van zárva"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás változat le van zárva"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Beállítás mennyiség"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "A gyártáshoz szükséges extra mennyiség, a beállási veszteséggel együtt"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Veszteség"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Becsült veszteség egy gyártásnál, százalékban kifejezve (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Kerekítési többszörös"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "A szükséges termelési mennyiség az érték legközelebbi többszöröséhez kerekítése"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Jóváhagyva"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Ez a BOM tétel jóvá lett hagyva"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Öröklődött"
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
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:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:4364
+#: part/models.py:4378
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:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Kapcsolati megjegyzés"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Már létezik duplikált alkatrész kapcsolat"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Szülő Kategória"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Felsőbb szintű alkatrész kategória"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Alkategóriák"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Eredmények"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Eszerint a sablon szerint rögzített eredmények száma"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Beszerzési pénzneme ennek a készlet tételnek"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "A fájl nem kép"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Eredeti alkatrész"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Válassz eredeti alkatrészt a másoláshoz"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kép másolása"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Kép másolása az eredeti alkatrészről"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Alkatrészjegyzék másolása"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Paraméterek másolása az eredeti alkatrészről"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Megjegyzések másolása"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Megjegyzések másolása az eredeti alkatrészről"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Teszt másolása"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Teszt sablonok másolása az eredeti alkatrészről"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Kezdeti készlet mennyiség"
-#: part/serializers.py:448
+#: part/serializers.py:451
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:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Kezdeti készlet hely"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Add meg a kezdeti készlet helyét"
-#: part/serializers.py:473
+#: part/serializers.py:476
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:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Gyártói cikkszám"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "A kiválasztott cég nem érvényes beszállító"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "A kiválasztott cég nem érvényes gyártó"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Van már ilyen gyártói alkatrész"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Van már ilyen beszállítói alkatrész"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategória neve"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Gyártásban"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Az alkatrészből jelenleg ennyi van gyártás alatt"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Már beütemezett de még nem kész gyártási mennyiség"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Készlet tételek"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Verziók"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Teljes készlet"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Nem lefoglalt készlet"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Variánsok Raktárkészlet"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Alkatrész másolása"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Kezdeti adatok másolása egy másik alkatrészről"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Kezdeti készlet"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Kezdeti készlet mennyiség létrehozása"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Beszállító információ"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Kezdeti beszállító adatok hozzáadása"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kategória paraméterek másolása"
-#: part/serializers.py:966
+#: part/serializers.py:993
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:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Meglévő kép"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "A meglévő alkatrész képfájl neve"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "A képfájl nem létezik"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Teljes alkatrészjegyzék jóváhagyása"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Gyártható"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Gyártásokhoz szükséges"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Gyártási rendelésekhez foglalva"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Értékesítési rendeléshez szükséges"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Értékesítési rendeléshez lefoglalva"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minimum ár"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Számított minimum ár felülbírálása"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Minimum ár pénzneme"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Maximum ár"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Számított maximum ár felülbírálása"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Maximum ár pénzneme"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Frissítés"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Alkatrész árak frissítése"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, 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:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Szülő összeállítás kiválasztása"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Összetevő alkatrész kijelölése"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
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:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
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:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Helyettesítő alkatrészek másolása"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
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"
@@ -7759,7 +7771,7 @@ msgstr "Csomag plugin"
msgid "Plugin"
msgstr "Bővítmény"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Nincs szerző"
@@ -8289,7 +8301,7 @@ msgstr "Készlet tétel teszt riport"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Beépített tételek"
@@ -8362,7 +8374,7 @@ msgstr "Csúcs készlethelyre szűrés"
msgid "Include sub-locations in filtered results"
msgstr "Szűrt eredmények tartalmazzák az alhelyeket"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Szülő hely"
@@ -8446,7 +8458,7 @@ msgstr "Lejárat előtt"
msgid "Expiry date after"
msgstr "Lejárat után"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Állott"
@@ -8531,7 +8543,7 @@ msgstr "Alapértelmezett ikon azokhoz a helyekhez, melyeknek nincs ikonja beáll
msgid "Stock Location"
msgstr "Készlet hely"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Készlethelyek"
@@ -8580,7 +8592,7 @@ msgstr "Alkatrész kiválasztása kötelező"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Virtuális alkatrészből nem lehet készletet létrehozni"
@@ -8625,7 +8637,7 @@ msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételh
msgid "Where is this stock item located?"
msgstr "Hol található ez az alkatrész?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "A csomagolása ennek a készlet tételnek itt van tárolva"
@@ -8641,7 +8653,7 @@ msgstr "Ez a tétel be van építve egy másik tételbe?"
msgid "Serial number for this item"
msgstr "Sorozatszám ehhez a tételhez"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Batch kód ehhez a készlet tételhez"
@@ -8754,7 +8766,7 @@ msgstr "Készlet tétel gyártás alatt"
msgid "Serialized stock cannot be merged"
msgstr "Követésre kötelezett készlet nem vonható össze"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Duplikált készlet tételek vannak"
@@ -8878,7 +8890,7 @@ msgstr "Válassza ki az alkatrészt amihez sorozatszámot akar generálni"
msgid "Quantity of serial numbers to generate"
msgstr "Hány sorozatszámot generáljunk"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Az eredmény Teszt sablonja"
@@ -8902,222 +8914,222 @@ msgstr "Szülő tétel"
msgid "Parent stock item"
msgstr "Szülő készlet tétel"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
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:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "Csomagméret használata"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Írd be a sorozatszámokat az új tételekhez"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Beszállítói Cikkszám"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Lejárt"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Gyermek tételek"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Nyilvántartott tételek"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
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:692
+#: stock/serializers.py:706
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:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "Nincsen készlettétel megadva"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Cél készlet hely"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "A sorozatszámok már léteznek"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Válaszd ki a beépítésre szánt készlet tételt"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Beépítendő mennyiség"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Adja meg a beépítendő mennyiséget"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Tranzakció megjegyzés hozzáadása (opcionális)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "A beépítendő mennyiség legalább 1 legyen"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Készlet tétel nem elérhető"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
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:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Cél hely a kiszedett tételeknek"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Válassz alkatrészt amire konvertáljuk a készletet"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
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:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Készlet tétel státusz kódja"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
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:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Nincs készlet tétel kiválasztva"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Alhelyek"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Felsőbb szintű készlet hely"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Az alkatrésznek értékesíthetőnek kell lennie"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "A tétel egy vevő rendeléshez foglalt"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "A tétel egy gyártási utasításhoz foglalt"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Vevő akihez rendeljük a készlet tételeket"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "A kiválasztott cég nem egy vevő"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Készlet hozzárendelés megjegyzései"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "A készlet tételek listáját meg kell adni"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Készlet összevonás megjegyzései"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Nem egyező beszállítók megengedése"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
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:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Nem egyező állapotok megjelenítése"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
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:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Legalább két készlet tételt meg kell adni"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Nincs változás"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Készlet tétel elsődleges kulcs értéke"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Készlettétel nincs készleten"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "Készlettétel már készleten van"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "Mennyiség nem lehet negatív"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Készlet tranzakció megjegyzései"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "Meglévő készletbe olvasztás"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "Visszaérkezett tételek beolvasztása a készlettételekbe ha lehetséges"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Következő sorozatszám"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Előző Sorozatszám"
@@ -9583,115 +9595,119 @@ msgstr "Elsődleges csoport"
msgid "Primary group for the user"
msgstr "Felhasználó elsődleges csoportja"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Adminisztrátor"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Beszerzési rendelések"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Vevői rendelések"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Visszavételek"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Felhasználónév"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Keresztnév"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "A felhasználó keresztneve"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Vezetéknév"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "A felhasználó vezetékneve"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "A felhasználó e-mail címe"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Rendszergazda"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "A felhasználó rendszergazda-e"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Aktív a felhasználói fiók"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Csak rendszergazda szerkesztheti ezt a mezőt"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Jelszó"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Felhasználó jelszava"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Figyelmezetés felülbírálása"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "A jelszó szabályok figyelmeztetésének felülbírálata"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Nincs jogosultsága felhasználót létrehozni"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "A fiókod sikeresen létrejött."
-#: users/serializers.py:484
+#: users/serializers.py:491
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"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Üdvözlet az InvenTree-ben"
diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po
index aaf7973fd5..341c020d27 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -104,13 +104,13 @@ msgstr "Masukkan tanggal"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Catatan"
@@ -215,7 +215,7 @@ msgstr "URL yang diberikan bukan file gambar yang valid"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Surel"
@@ -269,7 +269,7 @@ msgstr "Pilihan tidak valid"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Sebuah kesalahan telah dicatat oleh server."
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Harus berupa angka yang valid"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Mata Uang"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Nilai tidak valid"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL file gambar external"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Unduhan gambar dari URL external tidak aktif"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr "Produksi Induk"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Bagian"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Pesanan harus dibatalkan sebelum dapat dihapus"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tersedia"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Order Produksi"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Lokasi"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Order Produksi"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Referensi Order Produksi"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referensi Order Penjualan"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Lokasi Sumber"
@@ -861,16 +861,16 @@ msgstr "Status pembuatan"
msgid "Build status code"
msgstr "Kode status pembuatan"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Kode Kelompok"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Kode kelompok untuk hasil produksi ini"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Tanggal Pembuatan"
@@ -907,120 +907,120 @@ msgstr "Diserahkan oleh"
msgid "User who issued this build order"
msgstr "Pengguna yang menyerahkan order ini"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Penanggung Jawab"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Tautan eksternal"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Tautan menuju URL eksternal"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Tidak ada hasil produksi yang ditentukan"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Hasil produksi sudah selesai"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Hasil produksi tidak sesuai dengan order produksi"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Jumlah harus lebih besar daripada nol"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Jumlah"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Jumlah harus 1 untuk stok dengan nomor seri"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Item stok teralokasikan terlalu banyak"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Stok Item"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Sumber stok item"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Jumlah stok yang dialokasikan ke produksi"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Pasang ke"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Tujuan stok item"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Hasil Produksi"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Hasil produksi tidak sesuai dengan produksi induk"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Hasil bagian tidak sesuai dengan bagian dalam order produksi"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Hasil produksi ini sudah diselesaikan"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Hasil produksi tidak dialokasikan sepenuhnya"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Masukkan jumlah hasil pesanan"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Jumlah bagian yang dapat dilacak harus berupa angka bulat"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Nomor Seri"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Masukkan nomor seri untuk hasil pesanan"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Alokasikan nomor seri secara otomatis"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Daftar hasil pesanan harus disediakan"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Lokasi hasil pesanan yang selesai"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Terima Alokasi Tidak Lengkap"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Tidak diizinkan"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Terima Tidak Teralokasikan"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Stok yang diperlukan belum teralokasikan sepenuhnya"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Terima Tidak Selesai"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Jumlah produksi yang diperlukan masih belum cukup"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Order memiliki hasil produksi yang belum dilengkapi"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Hasil produksi"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Hasil pesanan harus mengarah ke pesanan yang sama"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Item harus tersedia dalam stok"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Jumlah tersedia ({q}) terlampaui"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Item yang dialokasikan harus disediakan"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Lokasi tidak termasuk"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Jangan ambil stok item dari lokasi yang dipilih"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Stok bergantian"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Item stok di beberapa lokasi dapat digunakan secara bergantian"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Stok pengganti"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Izinkan alokasi bagian pengganti"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Item tagihan material"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Dibatalkan"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Pengguna"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Harga"
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktif"
@@ -1849,7 +1849,7 @@ msgstr "Ukuran Berkas"
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Pilihan"
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Aktif"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nama File"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponen"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Perusahaan"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr "Jumlah yang dialokasikan harus lebih dari nol"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Tanggal"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Harga Minimal"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Harga Maksimal"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Perbarui"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Admin"
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nama Pengguna"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Nama Depan"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Nama depan dari pengguna"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Nama Belakang"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Nama belakang dari pengguna"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Alamat surel dari pengguna"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Selamat Datang di InvenTree"
diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po
index 2b7b66284a..35c6737e65 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -104,13 +104,13 @@ msgstr "Inserisci la data"
msgid "Invalid decimal value"
msgstr "Valore decimale non valido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Note"
@@ -215,7 +215,7 @@ msgstr "L'URL fornito non è un file immagine valido"
msgid "Log in to the app"
msgstr "Accedi all'app"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Email"
@@ -269,7 +269,7 @@ msgstr "Scelta non valida"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Un errore è stato loggato dal server."
msgid "Image"
msgstr "Immagine"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Selezionare la valuta dalle opzioni disponibili"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Questo campo non può essere nullo."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valore non valido"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Immagine Remota"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL del file immagine remota"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Il download delle immagini da URL remoto non è abilitato"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Impossibile scaricare l'immagine dall'URL remoto"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Formato tipo di contenuto non valido"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Tipo di Contenuto non trovato"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Il tipo di contenuto non corrisponde alla classe mixin richiesta"
@@ -536,11 +536,11 @@ msgstr "Cinese (Semplificato)"
msgid "Chinese (Traditional)"
msgstr "Cinese (Tradizionale)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Aggiornamento disponibile"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "È disponibile un aggiornamento per InvenTree"
@@ -561,21 +561,21 @@ msgstr "Stato dell'ordine"
msgid "Parent Build"
msgstr "Produzione Genitore"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Includi Varianti"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Includi Varianti"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Includi Varianti"
msgid "Part"
msgstr "Articolo"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categoria"
@@ -665,89 +665,89 @@ msgstr "Data massima"
msgid "Exclude Tree"
msgstr "Escludi Albero"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "La produzione deve essere annullata prima di poter essere eliminata"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consumabile"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opzionale"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Assemblaggio"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Monitorato"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testabile"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Ordine In Corso"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Allocato"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Utilizzato"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponibile"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Ordinato"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordine di Produzione"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Posizione"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Output"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtra per ID articolo stock di output. Usa 'null' per trovare elementi di produzione disinstallati."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Ordini di Produzione"
@@ -783,9 +783,9 @@ msgstr "La data di scadenza deve essere successiva alla data d'inizio"
msgid "Build Order Reference"
msgstr "Riferimento Ordine Di Produzione"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Numero di riferimento ordine di vendita"
msgid "Sales Order to which this build is allocated"
msgstr "Ordine di vendita a cui questa produzione viene assegnata"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Posizione Di Origine"
@@ -861,16 +861,16 @@ msgstr "Stato Produzione"
msgid "Build status code"
msgstr "Codice stato di produzione"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Codice Lotto"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Codice del lotto per questa produzione"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Data di creazione"
@@ -907,120 +907,120 @@ msgstr "Rilasciato da"
msgid "User who issued this build order"
msgstr "Utente che ha emesso questo ordine di costruzione"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsabile"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Utente o gruppo responsabile di questo ordine di produzione"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Collegamento esterno"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link a URL esterno"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Priorità di produzione"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Priorità di questo ordine di produzione"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Codice del progetto"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Codice del progetto per questo ordine di produzione"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Impossibile finalizzare l'ordine di produzione con ordini secondari aperti"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Impossibile finalizzare l'ordine di produzione con articolo incompleti"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Impossibile scaricare l'attività per completare le allocazioni di build"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "L'ordine di produzione {build} è stato completato"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "L'ordine di produzione è stato completato"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Deve essere fornita un numero di serie per gli articoli rintracciabili"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nessun output di produzione specificato"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "La produzione è stata completata"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "L'output della produzione non corrisponde all'ordine di compilazione"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "La quantità non può essere maggiore della quantità in uscita"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "La produzione non ha superati tutti i test richiesti"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "L'output della build {serial} non ha superato tutti i test richiesti"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Impossibile completare parzialmente un build output con gli elementi assegnati"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Elemento di Riga Ordine di Produzione"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Crea oggetto"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Crea oggetto"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Quantità"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Quantità richiesta per l'ordine di costruzione"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Quantità di articoli magazzino consumate"
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "La quantità assegnata deve essere maggiore di zero"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Articoli in magazzino"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Origine giacenza articolo"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Quantità di magazzino da assegnare per la produzione"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Installa in"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Destinazione articolo in giacenza"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Livello Produzione"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nome Articolo"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Genera Output"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "L'output generato non corrisponde alla produzione principale"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "L'output non corrisponde alle parti dell'ordine di produzione"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Questa produzione è stata già completata"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Questo output non è stato completamente assegnato"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Quantità totale richiesta per articoli rintracciabili"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Codice Seriale"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Posizione dello stock per l'output della produzione"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Numeri di Serie Assegnazione automatica"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Deve essere fornito un elenco dei risultati di produzione"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Posizione dello stock per l'output di produzione rimosso"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Scarta Assegnazioni"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Scartare tutte le assegnazioni di magazzino per gli output rimossi"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Motivo dell'eliminazione degli output di compilazione"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Posizione per gli output di build completati"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Accetta Assegnazione Incompleta"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Consuma Giacenze Allocate"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Consuma tutte le scorte che sono già state assegnate a questa produzione"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Rimuovi Output Incompleti"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Non permesso"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Accetta come consumato da questo ordine di produzione"
-#: build/serializers.py:727
+#: 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:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Giacenza in eccesso assegnata"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Alcuni articoli di magazzino sono stati assegnati in eccedenza"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Accetta Non Assegnato"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "La giacenza richiesta non è stata completamente assegnata"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Accetta Incompleta"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "La quantità di produzione richiesta non è stata completata"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "L'ordine di costruzione ha ancora degli ordini di costruzione figli"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "L'ordine di costruzione deve essere in stato di produzione"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "L'ordine di produzione ha output incompleti"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linea di produzione"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Genera Output"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "L'output di produzione deve puntare alla stessa produzione"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Articolo linea di produzione"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantità disponibile ({q}) superata"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Escludi Ubicazione"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Escludi gli elementi stock da questa ubicazione selezionata"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Scorte Intercambiabili"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Sostituisci Giacenze"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Consenti l'allocazione delle parti sostitutive"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Articoli Opzionali"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Assegna gli elementi opzionali della distinta base all'ordine di produzione"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Riferimento BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "Identificativo dell'Articolo BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nome Articolo BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Costruzione"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Articolo Fornitore"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Quantità assegnata"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Riferimento Ordine Di Costruzione"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Nome Categoria Articolo"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Tracciabile"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Ereditato"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Distinta base (Bom)"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "In Produzione"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Pianificato per la produzione"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Scorte esterne"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Disponibilità in magazzino"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Disponibili scorte alternative"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Disponibili varianti delle scorte"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "La quantità consumata supera la quantità assegnata"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Note facoltative per il consumo di magazzino"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "L'articolo prodotto deve puntare all'ordine di produzione corretto"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Duplica l'allocazione degli articoli da produrre"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "La riga di produzione deve puntare all'ordine di produzione corretto"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Duplica l'allocazione della riga di produzione"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Deve essere fornita almeno un articolo o riga"
@@ -1494,7 +1494,7 @@ msgstr "In Attesa"
msgid "Cancelled"
msgstr "Annullato"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Ordine di produzione in ritardo"
msgid "Build order {bo} is now overdue"
msgstr "L'ordine di produzione {bo} è in ritardo"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "È Un Connegamento"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "E' un file"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "L'utente non ha il permesso di eliminare questi allegati"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "L'utente non ha il permesso di eliminare questo allegato"
@@ -1550,7 +1550,7 @@ msgstr "Nessun codice valuta valido fornito"
msgid "No plugin"
msgstr "Nessun plugin"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Etichetta Codice Progetto"
@@ -1617,7 +1617,7 @@ msgstr "La stringa chiave deve essere univoca"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Utente"
msgid "Price break quantity"
msgstr "Quantità prezzo limite"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Prezzo"
@@ -1652,7 +1652,7 @@ msgstr "Nome per questa notifica"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Attivo"
@@ -1849,7 +1849,7 @@ msgstr "Dimensione file"
msgid "File size in bytes"
msgstr "Dimensioni file in byte"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Tipo di modello specificato per l'allegato non valido"
@@ -2058,7 +2058,7 @@ msgstr "I parametri della casella di controllo non possono avere unità"
msgid "Checkbox parameters cannot have choices"
msgstr "I parametri della casella di controllo non possono avere scelte"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Le scelte devono essere uniche"
@@ -2094,7 +2094,7 @@ msgstr "Casella di spunta"
msgid "Is this parameter a checkbox?"
msgstr "Questo parametro è una casella di spunta?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Scelte"
@@ -2106,7 +2106,7 @@ msgstr "Scelte valide per questo parametro (separato da virgola)"
msgid "Selection list for this parameter"
msgstr "Lista di selezione per questo parametro"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Abilitato"
@@ -2126,7 +2126,7 @@ msgstr "Parametri"
msgid "Invalid choice for parameter value"
msgstr "Scelta non valida per il valore del parametro"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Tipo di modello specificato per parametro non valido"
@@ -2140,7 +2140,7 @@ msgstr "ID del modello di destinazione per questo parametro"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Modello"
@@ -2148,7 +2148,7 @@ msgstr "Modello"
msgid "Parameter template"
msgstr "Modello Parametro"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Dati"
@@ -2156,18 +2156,18 @@ msgstr "Dati"
msgid "Parameter Value"
msgstr "Valore del Parametro"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Nota"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Note opzionali elemento"
@@ -2391,85 +2391,85 @@ msgstr "Indica se l'impostazione è sovrascritta da una variabile ambiente"
msgid "Override"
msgstr "Sovrascrivi"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "In Esecuzione"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Attività in sospeso"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Attività pianificate"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Attività Fallite"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID Attività"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "ID attività univoco"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Blocco"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Tempo di blocco"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nome attività"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funzione"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nome della funzione"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argomenti"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argomenti attività"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Argomenti Parole Chiave"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Argomenti parole chiave attività"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nome del file"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Tipo di modello"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "L'utente non ha il permesso di creare o modificare allegati per questo modello"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "L'utente non ha il permesso di creare o modificare parametri per questo modello"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lista di selezione bloccata"
@@ -2859,8 +2859,8 @@ msgstr "Gli articoli sono modelli per impostazione predefinita"
msgid "Parts can be assembled from other components by default"
msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Componente"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Disabilitato: Mostra il percorso completo delle categorie al passaggio del mouse. Abilitato: Mostra il percorso completo delle categorie come testo."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Ricevi segnalazioni di errore"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Ricevi notifiche per errori di sistema"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Ultime stampanti usate"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Salva le ultime stampanti usate da un'utente"
@@ -3988,33 +3996,33 @@ msgstr "L'articolo è attivo"
msgid "Manufacturer is Active"
msgstr "Il produttore è attivo"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "L'articolo fornitore è attivo"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "L'articolo interno è attivo"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Il fornitore è attivo"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Produttore"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Azienda"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Ha Scorte"
@@ -4195,7 +4203,7 @@ msgstr "Note di spedizione per uso interno"
msgid "Link to address information (external)"
msgstr "Collegamento alle informazioni sull'indirizzo (esterno)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Codice articolo produttore"
@@ -4213,12 +4221,12 @@ msgstr "Seleziona articolo"
msgid "Select manufacturer"
msgstr "Seleziona Produttore"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Codice articolo produttore"
@@ -4242,8 +4250,8 @@ msgstr "Le unità del pacchetto devono essere maggiori di zero"
msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Fornitore"
msgid "Select supplier"
msgstr "Seleziona fornitore"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Unità di giacenza magazzino fornitore"
@@ -4282,16 +4290,16 @@ msgstr "URL dell'articolo del fornitore"
msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "costo base"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Confezionamento"
@@ -4307,7 +4315,7 @@ msgstr "Quantità Confezione"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Quantità totale fornita in una singola confezione. Lasciare vuoto per gli articoli singoli."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "multiplo"
@@ -4339,14 +4347,18 @@ msgstr "Valuta predefinita utilizzata per questo fornitore"
msgid "Company Name"
msgstr "Nome Azienda"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "In magazzino"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Sconti a scalare"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Errore durante l'esportazione dei dati"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Identificatore del database esistente per il record"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "La colonna è già mappata a un campo del database"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Il campo è già mappato a una colonna di dati"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "La mappatura delle colonne deve essere collegata a una sessione di importazione valida"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "La colonna non esiste nel file dati"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Il campo non esiste nel modello di destinazione"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Il campo selezionato è di sola lettura"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Sessione d'importazione"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Campo"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Colonna"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Indice riga"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Dati riga originali"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Errori"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Valido"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "L'ID è richiesto per aggiornare i record esistenti."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Nessun record trovato con l'ID fornito"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Formato ID fornito non valido"
@@ -4821,7 +4833,7 @@ msgstr "Ordine"
msgid "Order Complete"
msgstr "Ordine completato"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Articolo interno"
@@ -4918,7 +4930,7 @@ msgstr "Data iniziale"
msgid "Scheduled start date for this order"
msgstr "Data d'inizio programmata per questo ordine"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data scadenza"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Riferimento ordine"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Stato"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Ricevuto"
msgid "Number of items received"
msgstr "Numero di elementi ricevuti"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Prezzo di Acquisto"
@@ -5211,8 +5223,8 @@ msgstr "Verificato Da"
msgid "User who checked this shipment"
msgstr "Utente che ha controllato questa spedizione"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Spedizione"
@@ -5277,7 +5289,7 @@ msgstr "La quantità di ripartizione non puo' superare la disponibilità della g
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "La quantità deve essere 1 per l'elemento serializzato"
@@ -5393,7 +5405,7 @@ msgstr "Copia Linee Extra"
msgid "Copy extra line items from the original order"
msgstr "Copia gli elementi di riga extra dall'ordine originale"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Copia parametri"
@@ -5412,216 +5424,216 @@ msgstr "Elementi Riga"
msgid "Completed Lines"
msgstr "Righe Completate"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Duplica Ordine"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Specifica le opzioni per duplicare questo ordine"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "ID dell'ordine non corretto"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Nome Fornitore"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "L'ordine non può essere cancellato"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Consenti di chiudere l'ordine con elementi di riga incompleti"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "L'ordine ha elementi di riga incompleti"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "L'ordine non è aperto"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Prezzo Automatico"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Calcola automaticamente il prezzo di acquisto in base ai dati del fornitore articolo"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Valuta prezzo d'acquisto"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Unisci elementi"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Unisce gli elementi con lo stesso articolo, destinazione e data di destinazione in una riga"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Codice articolo"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Numero Dell'articolo Interno"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Numero Articolo Interno"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "L'articolo del fornitore deve essere specificato"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "L'ordine di acquisto deve essere specificato"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Il fornitore deve essere abbinato all'ordine d'acquisto"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "L'ordine di acquisto deve essere abbinato al fornitore"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Elemento Riga"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Inserisci il codice univoco per gli articoli in arrivo"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Data di Scadenza"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Inserisci la data di scadenza per gli articoli in arrivo"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Inserisci i numeri di serie per gli articoli stock in arrivo"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Sovrascrivi le informazioni d'imballaggio per gli articoli in arrivo"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Nota aggiuntiva per gli articoli in arrivo"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Codice a Barre"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Codice a barre scansionato"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Il codice a barre è già in uso"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Gli elementi di linea devono essere forniti"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "I valori dei codici a barre forniti devono essere univoci"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Spedizioni"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Spedizioni Completate"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Valuta prezzo di vendita"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Elementi Assegnati"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Nessun dettaglio di spedizione fornito"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "L'elemento di riga non è associato a questo ordine"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "La quantità deve essere positiva"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Inserisci i numeri di serie da assegnare"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "La spedizione è già stata spedita"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "La spedizione non è associata con questo ordine"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Nessuna corrispondenza trovata per i seguenti numeri di serie"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "I seguenti numeri di serie non sono disponibili"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Articoli Linea Ordine Reso"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "L'elemento di riga non corrisponde all'ordine di reso"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "L'elemento di riga è già stato ricevuto"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Gli elementi possono essere ricevuti solo con ordini in corso"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Quantità da restituire"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Valuta del prezzo"
@@ -5732,71 +5744,71 @@ msgstr "Escludi sottocategorie sotto la categoria specificata"
msgid "Has Results"
msgstr "Ha Risultati"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "È una Variante"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "E' una revisione"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Ha revisioni"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "BOM Valido"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Categorie a Cascata"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Se Vero, includere gli elementi nelle categorie figlie della categoria specificata"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtra per categoria ID numerica o per la stringa 'null'"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "L'articolo assemblato è provabile"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Il componente è provabile"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Utilizzi"
@@ -5805,7 +5817,7 @@ msgstr "Utilizzi"
msgid "Part Category"
msgstr "Categoria Articoli"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Categorie Articolo"
@@ -5837,7 +5849,7 @@ msgstr "Parole chiave predefinite per gli articoli in questa categoria"
msgid "Icon"
msgstr "Icona"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icona (facoltativa)"
@@ -5858,7 +5870,7 @@ msgstr "Valore Predefinito"
msgid "Default Parameter Value"
msgstr "Valore Parametro Predefinito"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Articoli"
@@ -5973,7 +5985,7 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
@@ -6006,7 +6018,7 @@ msgstr "Scadenza Predefinita"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Scorta Minima"
@@ -6086,756 +6098,756 @@ msgstr "Creazione Utente"
msgid "Owner responsible for this part"
msgstr "Utente responsabile di questo articolo"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Vendita multipla"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Valuta utilizzata per calcolare i prezzi"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Costo Minimo Distinta Base"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Costo minimo dei componenti dell'articolo"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Costo Massimo Distinta Base"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Costo massimo dei componenti dell'articolo"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Importo Acquisto Minimo"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Costo minimo di acquisto storico"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Importo massimo acquisto"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Costo massimo di acquisto storico"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Prezzo Interno Minimo"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Costo minimo basato su interruzioni di prezzo interne"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Prezzo Interno Massimo"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Costo massimo basato su interruzioni di prezzo interne"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Prezzo Minimo Fornitore"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Prezzo minimo articolo da fornitori esterni"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Prezzo Massimo Fornitore"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Variazione di costo minimo"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Costo minimo calcolato di variazione dell'articolo"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Massima variazione di costo"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Costo massimo calcolato di variazione dell'articolo"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Costo Minimo"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Sovrascrivi il costo minimo"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Costo Massimo"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Sovrascrivi il costo massimo"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Costo minimo totale calcolato"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Costo massimo totale calcolato"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Prezzo Di Vendita Minimo"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Prezzo Di Vendita Massimo"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Prezzo storico minimo di vendita"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Prezzo storico massimo di vendita"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Articolo per l'inventario"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Contatore Elemento"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Numero di scorte individuali al momento dell'inventario"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Totale delle scorte disponibili al momento dell'inventario"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Data"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Data in cui è stato effettuato l'inventario"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Costo Minimo Scorta"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo minimo stimato di magazzino a disposizione"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Costo Massimo Scorte"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Costo massimo stimato di magazzino a disposizione"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Aggiungi Prezzo Ribassato di Vendita dell'Articolo"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Modello Prove Articolo"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Nome modello non valido - deve includere almeno un carattere alfanumerico"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Il modello di prova può essere creato solo per gli articoli testabili"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Il modello di test con la stessa chiave esiste già per l'articolo"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Nome Test"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Inserisci un nome per la prova"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Chiave Di Prova"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Chiave semplificata per la prova"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Inserisci descrizione per questa prova"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Questo test è attivo?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Richiesto"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Questa prova è necessaria per passare?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Valore richiesto"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Allegato Richiesto"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Scelte valide per questo test (separate da virgole)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "L'articolo nella distinta base non può essere modificato - l'assemblaggio è bloccato"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "L'articolo nella distinta base non può essere modificato - l'assemblaggio della variante è bloccato"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Seleziona articolo principale"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Articolo subordinato"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Seleziona l'articolo da utilizzare nella Distinta Base"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Quantità Distinta Base per questo elemento Distinta Base"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Questo elemento della Distinta Base è opzionale"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Imposta quantità"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "Quantità extra necessaria per una generazione, per tenere conto delle perdite di configurazione"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Logoramento"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Stima del logoramento per una build, espressa in percentuale (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Arrotondamento Multiplo"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Arrotonda la quantità di produzione richiesta al multiplo più vicino di questo valore"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Riferimento Elemento Distinta Base"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Note Elemento Distinta Base"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Codice di controllo"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Codice di controllo Distinta Base"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Convalidato"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Questo articolo della distinta base è stato validato"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Viene Ereditato"
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "L'articolo subordinato deve essere specificato"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Elemento Distinta Base Sostituito"
-#: part/models.py:4364
+#: part/models.py:4378
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:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Elemento principale Distinta Base"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Sostituisci l'Articolo"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Articolo 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Articolo 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Seleziona Prodotto Relativo"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Nota per questa relazione"
-#: part/models.py:4436
+#: part/models.py:4450
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:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "La relazione duplicata esiste già"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Categoria Superiore"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Categoria articolo principale"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Sottocategorie"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Risultati"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Numero di risultati registrati rispetto a questo modello"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Valuta di acquisto di questo articolo in stock"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Il file non è un immagine"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Articolo Originale"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Seleziona l'articolo originale da duplicare"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Copia immagine"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Copia immagine dall'articolo originale"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Copia Distinta Base"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Copia fattura dei materiali dall'articolo originale"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Copia i dati dei parametri dall'articolo originale"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Copia note"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Copia note dall'articolo originale"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Copia Test"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Copia modelli di test dall'articolo originale"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Quantità iniziale"
-#: part/serializers.py:448
+#: part/serializers.py:451
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:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Ubicazione Iniziale Magazzino"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleziona il fornitore (o lascia vuoto per saltare)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleziona il produttore (o lascia vuoto per saltare)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Codice articolo Produttore"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "L'azienda selezionata non è un fornitore valido"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "L'azienda selezionata non è un produttore valido"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Nome Categoria"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "In Costruzione"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Quantità di questo articolo attualmente in produzione"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Eccezionale quantità di questa parte prevista da costruire"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Articoli in magazzino"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Revisioni"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Giacenze Totali"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Scorte Non Assegnate"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Scorta Variante"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Duplica articolo"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Copia i dati iniziali da un altro Articolo"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Stock iniziale"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Crea Articolo con quantità di scorta iniziale"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Informazioni Fornitore"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Copia Parametri Categoria"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Copia i parametri dai modelli della categoria articolo selezionata"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Immagine esistente"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Nome del file di un'immagine articolo esistente"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Il file immagine non esiste"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Convalida l'intera Fattura dei Materiali"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Puoi produrre"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Richiesto per gli Ordini di Produzione"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Assegnato agli Ordini di Produzione"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Richiesto per gli Ordini di Vendita"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Assegnato agli Ordini di Vendita"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Prezzo Minimo"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Sovrascrivi valore calcolato per il prezzo minimo"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Valuta del prezzo minimo"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Prezzo Massimo"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Sovrascrivi valore calcolato per il prezzo massimo"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Valuta del prezzo massimo"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Aggiorna"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Aggiorna i prezzi per questo articolo"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Impossibile convertire dalle valute fornite in {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Il prezzo minimo non può essere maggiore del prezzo massimo"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Il prezzo massimo non può essere minore del prezzo minimo"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Seleziona l'assemblaggio padre"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Seleziona la componente"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Seleziona l'articolo da cui copiare la distinta base"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Rimuovi Dati Esistenti"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Rimuovi elementi distinta base esistenti prima di copiare"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Includi Ereditato"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Includi gli elementi Distinta Base ereditati da prodotti template"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Salta Righe Non Valide"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Abilita questa opzione per saltare le righe non valide"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Copia Articoli sostitutivi"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base"
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Nessun autore trovato"
@@ -8288,7 +8300,7 @@ msgstr "Test Report Elemento Stock"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Elementi installati"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Obsoleto"
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr "Ubicazione magazzino"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Posizioni magazzino"
@@ -8579,7 +8591,7 @@ msgstr "L'articolo deve essere specificato"
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:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali"
@@ -8624,7 +8636,7 @@ msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di ma
msgid "Where is this stock item located?"
msgstr "Dove si trova questo articolo di magazzino?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Imballaggio di questo articolo di magazzino è collocato in"
@@ -8640,7 +8652,7 @@ msgstr "Questo elemento è stato installato su un altro elemento?"
msgid "Serial number for this item"
msgstr "Numero di serie per questo elemento"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Codice lotto per questo elemento di magazzino"
@@ -8753,7 +8765,7 @@ msgstr "L'elemento di magazzino è attualmente in produzione"
msgid "Serialized stock cannot be merged"
msgstr "Il magazzino serializzato non può essere unito"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Duplica elementi di magazzino"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Elemento principale"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Inserisci i numeri di serie per i nuovi elementi"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Scaduto"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Elementi secondari"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Inserisci il numero di elementi di magazzino da serializzare"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Numeri di serie non possono essere assegnati a questo articolo"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Seleziona elementi di magazzino da installare"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Aggiungi nota di transazione (opzionale)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Elemento di magazzino non disponibile"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "L'articolo selezionato non è nella Fattura dei Materiali"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Posizione di destinazione per gli elementi disinstallati"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Seleziona l'articolo in cui convertire l'elemento di magazzino"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "L'articolo selezionato non è una valida opzione per la conversione"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sottoallocazioni"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "L'articolo deve essere vendibile"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "L'elemento è assegnato a un ordine di vendita"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Elemento assegnato a un ordine di costruzione"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Cliente a cui assegnare elementi di magazzino"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "L'azienda selezionata non è un cliente"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Note sull'assegnazione delle scorte"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Deve essere fornito un elenco degli elementi di magazzino"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Note di fusione di magazzino"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Consenti fornitori non corrispondenti"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
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:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Consenti stato non corrispondente"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
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:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Devono essere riforniti almeno due elementi in magazzino"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Nessun cambiamento"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Valore di chiave primaria StockItem"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Note sugli spostamenti di magazzino"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Amministratore"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Ordine di acquisto"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Ordini di Vendita"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Ordini di reso"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nome utente"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Nome"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Nome dell'utente"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Cognome"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Cognome dell'utente"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Indirizzo email dell'utente"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superuser"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Questo utente è un superutente"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Questo account utente è attivo"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Il tuo account è stato creato."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Si prega di utilizzare la funzione di reimpostazione password per accedere"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Benvenuto in InvenTree"
diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po
index a6668e73e5..abe106b0df 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -104,13 +104,13 @@ msgstr "日付を入力する"
msgid "Invalid decimal value"
msgstr "無効な10進数値"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "メモ"
@@ -215,7 +215,7 @@ msgstr "指定されたURLは有効な画像ファイルではありません"
msgid "Log in to the app"
msgstr "アプリにログイン"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "メールアドレス"
@@ -269,7 +269,7 @@ msgstr "無効な選択です"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "サーバーによってエラーが記録されました。"
msgid "Image"
msgstr "画像"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "通貨"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "利用可能なオプションから通貨を選択してください"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "この項目は空欄にできません。"
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "無効な値です。"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "遠隔画像"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "外部画像ファイルのURL"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "外部URLからの画像ダウンロードは許可されていません"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "リモートURLからの画像ダウンロードに失敗しました"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "無効なコンテンツタイプ形式です"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "コンテンツタイプが見つかりません"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "コンテンツタイプが必須のミックスインクラスと一致しません"
@@ -536,11 +536,11 @@ msgstr "中国語 (簡体字)"
msgid "Chinese (Traditional)"
msgstr "中国語 (繁体字)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "アップデートが利用可能"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTreeの更新版が利用可能になりました"
@@ -561,21 +561,21 @@ msgstr "注文ステータス"
msgid "Parent Build"
msgstr "親ビルド"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "バリアントを含む"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "バリアントを含む"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "バリアントを含む"
msgid "Part"
msgstr "パーツ"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "カテゴリ"
@@ -665,89 +665,89 @@ msgstr "最大日付"
msgid "Exclude Tree"
msgstr "ツリーを除く"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "削除するには、ビルドをキャンセルする必要があります。"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "消耗品"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "オプション"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "アセンブリ"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "追跡"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "テスト可能"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "受注残高"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "割り当てられた"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "消費されました"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "利用可能"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "注文中"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "組立注文"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "場所"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "出力"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "出力ストックアイテムIDでフィルタリングします。未インストールビルドアイテムを検索するには「null」をご使用ください。"
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "組立注文"
@@ -783,9 +783,9 @@ msgstr "目標期日は開始日以降であること"
msgid "Build Order Reference"
msgstr "ビルド・オーダー・リファレンス"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "セールス・オーダー・リファレンス"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "ソース・ロケーション"
@@ -861,16 +861,16 @@ msgstr "組立状況"
msgid "Build status code"
msgstr "ビルドステータスコード"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "バッチコード"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "このビルド出力のバッチコード"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "作成日時"
@@ -907,120 +907,120 @@ msgstr "発行者"
msgid "User who issued this build order"
msgstr "このビルドオーダーを発行したユーザー"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "責任"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "このビルドオーダーを担当するユーザーまたはグループ"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "外部リンク"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "外部 サイト へのリンク"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "組立優先度"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "建設順序の優先順位"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "プロジェクトコード"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "プロジェクトコード"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "製造中の子ビルドがあるため、ビルドオーダーを完了できません"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "不完全な出力があるため、ビルドオーダーを完了できません"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "ビルドの割り当てを完了するタスクのオフロードに失敗しました。"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "ビルドオーダー{build}が完了しました"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "建設発注が完了しました"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "追跡可能な部品については、シリアル番号の提示が必要です。"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "ビルド出力が指定されていません"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "ビルド出力はすでに完了しています"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "ビルド出力がビルド順序と一致しません"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "数量はゼロより大きくなければなりません"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "数量が出力数量を上回ることはできません"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "ビルド出力は、必要なすべてのテストを通過していません"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "ビルド出力 {serial} は、必要なすべてのテストに合格していません。"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "割り当てられた項目を含むビルド出力の一部のみを完了することはできません"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "ビルドオーダーラインアイテム"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "ビルドオブジェクト"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "ビルドオブジェクト"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "注文数量"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "消費された在庫の数量"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "ビルド項目は、ビルド出力を指定する必要があります。"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "選択された在庫品目が部品表に一致しません。"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "シリアル在庫の場合、数量は1でなければなりません。"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "割当数量({q})は在庫可能数量({a})を超えてはなりません。"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "在庫が過剰配分"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "在庫商品"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "ソース在庫品"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "建設に割り当てる在庫量"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "インストール"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "仕向け地在庫品"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "ビルドレベル"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "部品名"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "ビルド出力"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "ビルド出力が親ビルドと一致しません"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "出力部分が BuildOrder 部分と一致しません。"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "このビルド出力はすでに完了しています"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "このビルド出力は完全に割り当てられていません"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "ビルド出力の数量を入力"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "追跡可能な部品に必要な整数個数"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "部品表には追跡可能な部品が含まれるため、必要な数量は整数"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "シリアル番号"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "ビルド出力のためのシリアル番号の入力"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "ビルド出力のストック位置"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "シリアル番号の自動割り当て"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "シリアル番号が一致する必要なアイテムを自動的に割り当て"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "以下のシリアル番号は既に存在するか、無効です。"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "ビルド出力のリストを提供する必要があります。"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "スクラップされたアウトプットの在庫場所"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "廃棄割り当て"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "廃棄されたアウトプットに割り当てられた在庫の破棄"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "ビルドアウトプットを廃棄する理由"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "完成した建造物のアウトプットの場所"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "不完全割当の受入れ"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "在庫が完全に割り当てられていない場合は、出力を完了します。"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "割当在庫の消費"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "このビルドに割り当て済みのストックを消費します。"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "不完全な出力の削除"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "完了していないビルド出力を削除します。"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "不可"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "このビルド・オーダーで消費されるものとして受け入れます。"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "このビルドオーダーを完了する前に割り当てを解除します。"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "総合在庫"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "製造オーダーに割り当てられた余分な在庫品をどのように処理しますか?"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "一部の在庫品目は全体的に配分されています。"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "未割り当ての受け入れ"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "在庫アイテムがこのビルド・オーダーに完全に割り当てられていないことを受け入れます。"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "必要在庫の配分が完了していません"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "インコンプリートの受け入れ"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "必要な数のビルドアウトプットが完了していないことを受け入れます。"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "必要な構築数量が完了していません"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "ビルド・オーダーには未完成の子ビルド・オーダーがあります。"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "受注生産状態であること"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "ビルド・オーダーの出力が不完全"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "組立ライン"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "ビルド出力"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "ビルド出力は同じビルド"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "ビルドラインアイテム"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.partは、ビルドオーダーと同じパーツを指す必要があります。"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "在庫があること"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "使用可能数量({q})を超過"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "追跡部品の割り当てには、ビルド出力を指定する必要があります。"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "追跡されていない部品の割り当てでは、ビルド出力を指定できません。"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "割り当て項目の提供"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "部品を調達する在庫場所(任意の場所から調達する場合は空白にしてください。)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "場所を除く"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "この選択された場所から在庫商品を除外"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "交換可能ストック"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "複数の拠点にある在庫品を交換可能"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "代替ストック"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "代替部品の割り当て"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "オプション"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "オプションのBOMアイテムをビルドオーダーに割り当てます。"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "BOMリファレンス"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "BOMパーツID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "部品表 部品名"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "ビルド"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "サプライヤー"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "割当数量"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "ビルドリファレンス"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "部品分類名"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "追跡可能"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "継承"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "バリアントを許可"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "BOMアイテム"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "生産中"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "ビルド予定"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "外部在庫"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "在庫状況"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "利用可能な代替ストック"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "在庫状況"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "消費量が割り当て量を超過しています"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "在庫消費に関する任意の注記"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "ビルド項目は正しいビルドオーダーを指す必要があります"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "重複したビルド項目の割り当て"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "ビルドラインは正しいビルドオーダーを指す必要があります"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "重複したビルドラインの割り当て"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "少なくとも1つの項目または行を指示する必要があります"
@@ -1494,7 +1494,7 @@ msgstr "保留中"
msgid "Cancelled"
msgstr "キャンセル済"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "期限切れ注文"
msgid "Build order {bo} is now overdue"
msgstr "ビルドオーダー{bo}は現在期限切れです"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "リンク"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "ファイル"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "ユーザーにはこれらの添付ファイルを削除する権限がありません。"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "ユーザーにはこの添付ファイルを削除する権限がありません"
@@ -1550,7 +1550,7 @@ msgstr "有効な通貨コードはありません"
msgid "No plugin"
msgstr "プラグインなし"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "プロジェクトコードラベル"
@@ -1617,7 +1617,7 @@ msgstr "キー文字列は一意でなければなりません。"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "ユーザー"
msgid "Price break quantity"
msgstr "価格破壊数量"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "価格"
@@ -1652,7 +1652,7 @@ msgstr "このウェブフックの名前"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "有効"
@@ -1849,7 +1849,7 @@ msgstr "ファイルサイズ"
msgid "File size in bytes"
msgstr "ファイルサイズ(バイト"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "添付ファイルに指定されたモデルタイプが無効です"
@@ -2058,7 +2058,7 @@ msgstr "チェックボックスのパラメータに単位を指定すること
msgid "Checkbox parameters cannot have choices"
msgstr "チェックボックスパラメータに選択肢を持たせることはできません。"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "選択肢はユニークでなければなりません"
@@ -2094,7 +2094,7 @@ msgstr "チェックボックス"
msgid "Is this parameter a checkbox?"
msgstr "このパラメータはチェックボックスですか?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "選択肢"
@@ -2106,7 +2106,7 @@ msgstr "このパラメータの有効な選択肢(カンマ区切り)"
msgid "Selection list for this parameter"
msgstr "このパラメータの選択リスト"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "有効"
@@ -2126,7 +2126,7 @@ msgstr "パラメータ"
msgid "Invalid choice for parameter value"
msgstr "パラメータ値の選択が無効"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "パラメータに対して無効なモデルタイプが指定されています"
@@ -2140,7 +2140,7 @@ msgstr "このパラメータの対象となるモデルのID"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "テンプレート"
@@ -2148,7 +2148,7 @@ msgstr "テンプレート"
msgid "Parameter template"
msgstr "パラメータテンプレート"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "データ"
@@ -2156,18 +2156,18 @@ msgstr "データ"
msgid "Parameter Value"
msgstr "パラメータ値"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "備考"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "任意のメモ欄"
@@ -2391,85 +2391,85 @@ msgstr "環境変数によって設定が上書きされるかどうかを示し
msgid "Override"
msgstr "上書き"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "走行中"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "保留タスク"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "スケジュールされたタスク"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "失敗したタスク"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "タスクID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "ユニークなタスクID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "ロック"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "ロック時間"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "タスク名"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "関数"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "機能名"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "引数"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "タスク引数"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "キーワード論争"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "タスクキーワード引数"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "ファイル名"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "モデルタイプ"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "このモデルの添付ファイルを作成または編集する権限がありません。"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "ユーザーは、このモデルのパラメータを作成または編集する権限がありません。"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "選択リストがロックされています"
@@ -2859,8 +2859,8 @@ msgstr "パーツはデフォルトのテンプレートです"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "コンポーネント"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "無効時:カテゴリの完全なパスがホバー時のツールチップとして表示されます。有効時:カテゴリの完全なパスがプレーンテキストとして表示されます。"
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "エラー・レポートの受信"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "システムエラーの通知を受信"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "最後の中古印刷機"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "ユーザーの最後に使用した印刷機を保存"
@@ -3988,33 +3996,33 @@ msgstr "パートはアクティブ"
msgid "Manufacturer is Active"
msgstr "メーカーはアクティブ"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "サプライヤーが活動中"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "内部はアクティブ"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "サプライヤーの活動"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "製造元"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "会社名"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "在庫あり"
@@ -4195,7 +4203,7 @@ msgstr "社内用出荷注意事項"
msgid "Link to address information (external)"
msgstr "住所情報へのリンク(外部)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
@@ -4213,12 +4221,12 @@ msgstr "部品を選択"
msgid "Select manufacturer"
msgstr "メーカー選択"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "メーカー品番"
@@ -4242,8 +4250,8 @@ msgstr "パック単位はゼロより大きくなければなりません。"
msgid "Linked manufacturer part must reference the same base part"
msgstr "リンクされたメーカー部品は、同じベース部品を参照する必要があります。"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "仕入先"
msgid "Select supplier"
msgstr "サプライヤーを選択"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "サプライヤー在庫管理ユニット"
@@ -4282,16 +4290,16 @@ msgstr "外部サプライヤー部品リンク用URL"
msgid "Supplier part description"
msgstr "サプライヤーの部品説明"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "基本料金"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "ミニマムチャージ(例:仕入れ手数料)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "パッケージング"
@@ -4307,7 +4315,7 @@ msgstr "パック数量"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "1パックに供給される総量。単品の場合は空のままにしてください。"
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "複数"
@@ -4339,14 +4347,18 @@ msgstr "このサプライヤーで使用されるデフォルト通貨"
msgid "Company Name"
msgstr "会社名"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "在庫あり"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "価格割り引き"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "データのエクスポート中にエラーが発生しました"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "レコードの既存データベース識別子"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "カラムはすでにデータベースのフィールドにマッピングされています。"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "フィールドはすでにデータ列にマッピングされています。"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "カラムマッピングは有効なインポートセッションにリンクされている必要があります。"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "カラムがデータファイルに存在しません。"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "対象モデルにフィールドが存在しない"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "選択されたフィールドは読み取り専用です。"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "インポートセッション"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "フィールド"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "列"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "行インデックス"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "元の行データ"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "エラー"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "有効"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "既存の記録を更新するにはIDが必要です。"
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "指定のIDで該当する記録は見つかりませんでした"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "無効なID形式が指定されました"
@@ -4821,7 +4833,7 @@ msgstr "注文"
msgid "Order Complete"
msgstr "注文完了"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "内部パーツ"
@@ -4918,7 +4930,7 @@ msgstr "開始日"
msgid "Scheduled start date for this order"
msgstr "本注文の開始予定日"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "終了日に達したら"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "注文参照"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "ステータス"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "受信"
msgid "Number of items received"
msgstr "受領品目数"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "購入金額"
@@ -5211,8 +5223,8 @@ msgstr "チェック済み"
msgid "User who checked this shipment"
msgstr "この貨物をチェックしたユーザー"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "発送"
@@ -5277,7 +5289,7 @@ msgstr "割当数量が在庫数量を超えることはできません"
msgid "Allocation quantity must be greater than zero"
msgstr "割当数量はゼロより大きくなければなりません"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "シリアル化された在庫品の場合、数量は1でなければなりません。"
@@ -5393,7 +5405,7 @@ msgstr "余分な行をコピー"
msgid "Copy extra line items from the original order"
msgstr "元の注文から余分な項目をコピー"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "コピーパラメータ"
@@ -5412,216 +5424,216 @@ msgstr "ラインアイテム"
msgid "Completed Lines"
msgstr "完成路線"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "重複した注文"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "この注文を複製するためのオプションを指定します。"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "無効なオーダーID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "サプライヤー名"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "ご注文のキャンセルはできません。"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "未完了の行項目で注文を閉じることができます。"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "注文に不備がある場合"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "ご注文は受け付けておりません。"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "自動車価格"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "サプライヤーの部品データに基づいて購入価格を自動計算"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "購入価格通貨"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "アイテムのマージ"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "同じ品目、同じ仕向け地、同じ日付の品目を1つの品目に統合します。"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "内部部品番号"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "内部部品名"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "サプライヤー部品の指定が必要"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "注文書の指定が必要"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "サプライヤーは発注書と一致しなければなりません。"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "発注書はサプライヤーと一致している必要があります。"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "明細"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "受取商品の配送先選択"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "入荷在庫品のバッチコード入力"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "有効期限"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "入荷在庫の有効期限の入力"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "入荷した在庫品のシリアル番号の入力"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "入荷在庫品の包装情報の上書き"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "在庫品の入荷に関する注意事項"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "バーコード"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "スキャンされたバーコード"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "バーコードはすでに使用されています"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "項目は必ずご記入ください。"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "デスティネーション・ロケーションを指定する必要があります。"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "バーコードの値は一意でなければなりません。"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "発送"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "完了した出荷"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "販売価格通貨"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "割当項目"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "出荷の詳細は記載されていません"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "ラインアイテムは、この注文に関連付けられていません。"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "数量は正数でなければなりません。"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "割り当てるシリアル番号を入力"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "出荷済み"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "この注文には出荷が関連付けられていません"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "以下のシリアル番号に該当するものは見つかりませんでした。"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "以下のシリアル番号はご利用いただけません。"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "返品注文項目"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "ラインアイテムが返品オーダーと一致しません"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "ラインアイテムはすでに受領済み"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "商品の受け取りは、進行中の注文に対してのみ可能です。"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "返品数量"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "ライン価格通貨"
@@ -5732,71 +5744,71 @@ msgstr "指定したカテゴリの下にあるサブカテゴリを除外しま
msgid "Has Results"
msgstr "実績あり"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "バリエーション?"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "改訂版"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "改定あり"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "BOM有効"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "カスケードカテゴリ"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "もし該当する場合には、指定されたカテゴリの子カテゴリ内のアイテムを含めてください。"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "数値カテゴリIDまたはリテラル'null'でフィルタリングしてください"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "組み立て部分はテスト可能"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "コンポーネント部分はテスト可能"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "用途"
@@ -5805,7 +5817,7 @@ msgstr "用途"
msgid "Part Category"
msgstr "パーツカテゴリ"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "パーツカテゴリ"
@@ -5837,7 +5849,7 @@ msgstr "このカテゴリの部品のデフォルトキーワード"
msgid "Icon"
msgstr "アイコン"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "アイコン (オプション)"
@@ -5858,7 +5870,7 @@ msgstr "初期値"
msgid "Default Parameter Value"
msgstr "パラメータのデフォルト値"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "パーツ"
@@ -5973,10 +5985,10 @@ msgstr "検索結果での視認性を向上させる部分キーワード"
msgid "Part category"
msgstr "パーツカテゴリ"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
-msgstr "即時支払通知"
+msgstr "IPN"
#: part/models.py:1158
msgid "Part revision or version number"
@@ -6006,7 +6018,7 @@ msgstr "デフォルトの有効期限"
msgid "Expiry time (in days) for stock items of this part"
msgstr "この部品の在庫品の有効期限(日単位"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "最小在庫"
@@ -6086,756 +6098,756 @@ msgstr "作成ユーザー"
msgid "Owner responsible for this part"
msgstr "この部分の責任者"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "複数販売"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "価格計算のキャッシュに使用される通貨"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "最小BOMコスト"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "構成部品の最低コスト"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "最大BOMコスト"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "構成部品の最大コスト"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "最低購入価格"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "過去の最低購入価額"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "最大購入費用"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "過去の最高購入価格"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "最低社内価格"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "社内価格ブレークに基づく最低コスト"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "社内最高価格"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "社内価格ブレークに基づく最大コスト"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "最低供給価格"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "外部サプライヤーからの部品の最低価格"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "サプライヤー最高価格"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "外部サプライヤーからの部品の最高価格"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "最小バリアントコスト"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "バリアントパーツの最小コストの計算"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "最大バリアントコスト"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "バリアント部品の最大コストの計算"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "最低料金"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "最低コストのオーバーライド"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "最大コスト"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "最大コストのオーバーライド"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "総合的な最小コストの計算"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "総合最大コストの計算"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "最低販売価格"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "価格破壊に基づく最低販売価格"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "最高販売価格"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "価格破壊に基づく最高販売価格"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "最低販売価格"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "過去の最低売却価格"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "最大販売価格"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "過去の最高売却価格"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "ストックテイク用部品"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "個数"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "棚卸時の個別在庫数"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "ストックテイク時の在庫可能量"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "日付"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "ストックテイク実施日"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "最低在庫コスト"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "手元在庫の最低見積原価"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "最大在庫コスト"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "手元在庫の最大見積原価"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "パーツセール価格"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "部品試験テンプレート"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "無効なテンプレート名 - 英数字を1文字以上含む必要があります。"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "テストテンプレートは、テスト可能な部分に対してのみ作成できます。"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "同じキーを持つテスト・テンプレートがパートに既に存在します。"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "試験名"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "テストの名前を入力します。"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "テストキー"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "テストの簡易キー"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "試験内容"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "このテストの説明を入力してください。"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "このテストは有効ですか?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "必須"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "このテストは合格するために必要ですか?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "価値が必要"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "このテストは、テスト結果を追加する際に値を必要としますか?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "アタッチメントが必要"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "この試験では、試験結果を追加する際にファイルの添付が必要ですか。"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "このテストで有効な選択肢(カンマ区切り)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "BOMアイテムは変更できません - アセンブリがロックされています。"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "BOM アイテムは変更できません - バリアントアセンブリがロックされています。"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "親部品を選択"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "サブパート"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "BOMで使用する部品を選択"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "このBOMアイテムのBOM数量"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "この部品表はオプションです。"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "このBOMアイテムは消耗品です。"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "設定数量"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "ビルドに必要な追加の必要量(セットアップ時の損失を考慮した分)"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "歩留まり損失"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "ビルドにおける推定歩留まり率(0~100%で表されます)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "丸め倍数"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "必要な生産数量を、この値の倍数に切り上げてください。"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "BOMアイテムリファレンス"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "BOMアイテムノート"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "チェックサムi"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "BOMラインのチェックサム"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "検証済み"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "このBOMアイテムは検証済みです"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "継承"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "この BOM アイテムは、バリアントパーツの BOM に継承されます。"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "このBOMアイテムには、バリアントパーツのストックアイテムを使用できます。"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "数量は追跡可能な部品の場合、整数値でなければなりません。"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "サブパーツの指定が必要"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "BOMアイテム代替"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "代用部品はマスター部品と同じにすることはできません。"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "親BOMアイテム"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "代用部品"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "パート #1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "パート #2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "関連部品を選択"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "この関係について"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "部品とそれ自身との間に部品関係を作ることはできません。"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "重複する関係が既に存在します。"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "親カテゴリ"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "親部品カテゴリー"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "サブカテゴリ"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "結果"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "このテンプレートに対して記録された結果の数"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "この在庫商品の購入通貨"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "ファイルが画像ではありません"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "オリジナルパート"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "複製する元の部品を選択"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "コピー画像"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "元の部分から画像をコピー"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "コピーBOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "元の部品から部品表をコピー"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "元の部品からパラメータデータをコピー"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "コピーノート"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "元のパートからメモをコピー"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "コピーテスト"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "元の部品からテスト用テンプレートをコピーしてください"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "初期在庫量"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "この部品の初期在庫数量を指定します。数量が0の場合、在庫は追加されません。"
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "初期在庫場所"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "この部品の初期在庫場所を指定してください。"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "サプライヤーを選択してください。"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "メーカーを選択してください。"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "メーカー品番"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "選択された企業は有効なサプライヤーではありません。"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "選択された会社は有効な製造業者ではありません。"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "このMPNに一致するメーカー部品はすでに存在します。"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "このSKUに一致するサプライヤー部品は既に存在します。"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "カテゴリ名"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "建物"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "現在生産中の当該部品の数量"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "この部品の予定生産数量"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "在庫商品"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "リビジョン"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "総在庫"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "未割当株式"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "バリアントストック"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "重複部分"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "別のパートから初期データをコピー"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "初期在庫"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "初期在庫数で部品を作成"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "サプライヤー情報"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "この部品の初期サプライヤー情報を追加します。"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "コピーカテゴリパラメータ"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "選択したパーツカテゴリーからパラメータテンプレートをコピー"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "既存イメージ"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "既存の部品画像のファイル名"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "画像ファイルが存在しません"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "部品表全体の検証"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "ビルド"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "ビルドオーダーに必要なもの"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "ビルドオーダーに割り当てられました"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "セールスオーダーに必要なもの"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "セールスオーダーに割り当てられました"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "最小価格"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "最低価格の計算値の上書き"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "最低価格通貨"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "最大価格"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "最高価格の計算値を上書き"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "最高価格通貨"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "この部品の価格を更新"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "提供された通貨から{default_currency}に変換できませんでした。"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "最低価格は最高価格を超えてはなりません。"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "最高価格は最低価格を下回ってはなりません。"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "親アセンブリを選択"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "構成部品の選択"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "BOMをコピーする部品を選択します。"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "既存データの削除"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "コピー前に既存のBOMアイテムを削除"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "インクルード継承"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "テンプレート化された部品から継承されたBOM項目を含めます。"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "無効な行をスキップ"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "無効な行をスキップするには、このオプションを有効にします。"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "コピー代用部品"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "BOMアイテムの重複時に代替部品をコピー"
@@ -7758,7 +7770,7 @@ msgstr "パッケージプラグイン"
msgid "Plugin"
msgstr "プラグイン"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "著者は見つかりませんでした"
@@ -8288,7 +8300,7 @@ msgstr "在庫品テストレポート"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "設置項目"
@@ -8361,7 +8373,7 @@ msgstr "トップレベルのロケーションによるフィルタリング"
msgid "Include sub-locations in filtered results"
msgstr "フィルタリング結果にサブロケーションを含めることができます。"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "親の位置"
@@ -8445,7 +8457,7 @@ msgstr "有効期限"
msgid "Expiry date after"
msgstr "有効期限"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "期限失効"
@@ -8530,7 +8542,7 @@ msgstr "アイコンが設定されていないすべての場所のデフォル
msgid "Stock Location"
msgstr "ストックロケーション"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "在庫場所"
@@ -8579,7 +8591,7 @@ msgstr "部品の指定が必要"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "在庫品は、構造的な在庫場所に配置することはできません!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "仮想部品にストックアイテムを作成できません"
@@ -8624,7 +8636,7 @@ msgstr "この在庫品に一致するサプライヤー部品を選択してく
msgid "Where is this stock item located?"
msgstr "この在庫品はどこにありますか?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "この在庫品は以下の梱包で保管されています。"
@@ -8640,7 +8652,7 @@ msgstr "このアイテムは他のアイテムにインストールされてい
msgid "Serial number for this item"
msgstr "この商品のシリアル番号"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "このストックアイテムのバッチコード"
@@ -8753,7 +8765,7 @@ msgstr "在庫品は現在生産中です。"
msgid "Serialized stock cannot be merged"
msgstr "連番在庫の統合はできません"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "在庫品の重複"
@@ -8877,7 +8889,7 @@ msgstr "シリアル番号を生成する部品を選択します。"
msgid "Quantity of serial numbers to generate"
msgstr "生成するシリアル番号の数"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "この結果のテストテンプレート"
@@ -8901,222 +8913,222 @@ msgstr "親アイテム"
msgid "Parent stock item"
msgstr "親株式"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "数量はパック数です。"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "パッケージサイズを使用"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "新しい商品のシリアル番号の入力"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "サプライヤー品番"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "期限切れ"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "子供用品"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "追跡項目"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "この在庫品の購入価格、単位またはパックあたり"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "シリアル化するストックアイテムの数を入力"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "在庫品目がしていされていません"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "数量は在庫数 ({q}) を超えてはなりません。"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "仕向け地"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "この部品にシリアル番号を割り当てることはできません"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "シリアル番号が既に存在します"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "インストールするストックアイテムを選択"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "設置数量"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "インストールするアイテムの数量を入力してください。"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "取引メモの追加(オプション)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "設置数量は1台以上"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "在庫がありません"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "選択した部品が部品表にない"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "設置する数量は、利用可能な数量を超えてはなりません。"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "アンインストール先の場所"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "在庫品を変換する部品を選択"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "選択された部分は、変換のための有効なオプションではありません。"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "SupplierPartが割り当てられている在庫品を変換できません。"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "在庫商品ステータスコード"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "ステータスを変更するストックアイテムを選択"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "ストックアイテムが選択されていません"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "サブロケーション"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "親株式所在地"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "パーツは販売可能でなければなりません"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "商品が販売オーダーに割り当てられています。"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "アイテムがビルドオーダーに割り当てられています。"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "在庫アイテムを割り当てるお客様"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "選択された企業は顧客ではありません"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "株式譲渡に関する注意事項"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "在庫品のリストが必要です。"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "株式併合に関する注意事項"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "不一致のサプライヤーを許可"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "異なるサプライヤの部品を持つ在庫品目をマージできるようにします。"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "不一致の状態を許可"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "異なるステータスコードを持つストックアイテムをマージすることができます。"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "少なくとも2つのストックアイテムを提供する必要があります。"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "変化なし"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "StockItem 主キー値"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "在庫がありません"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "在庫品目は既に在庫にあります"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "数量は負の数であってはなりません。"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "株式取引に関する注記"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "既存の在庫に統合します"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "可能なら、返品された商品を既存の在庫商品に統合してください"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "次のシリアル番号"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "以前のシリアル番号"
@@ -9582,115 +9594,119 @@ msgstr "プライマリーグループ"
msgid "Primary group for the user"
msgstr "ユーザーのプライマリグループ"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "管理者"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "購入注文"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "セールスオーダー"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "返品注文"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "ユーザー名"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "名"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "ユーザーの名"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "姓"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "ユーザーの姓"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "ユーザーのメールアドレス"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "スーパーユーザー"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "このユーザーはスーパーユーザーですか?"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "このユーザーアカウントはアクティブですか"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "このフィールドを調整できるのはスーパーユーザーのみです。"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "パスワード"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "ユーザーのパスワード"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "警告を上書きします"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "パスワードルールに関する警告を無効にする"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "ユーザーを作成する権限がありません"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "アカウントが作成されました"
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "パスワードリセット機能を使ってログインしてください"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "InvenTreeへようこそ"
diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po
index 0e282ae42e..c270f0489b 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -19,35 +19,35 @@ msgstr ""
#: InvenTree/api.py:365
msgid "API endpoint not found"
-msgstr ""
+msgstr "API 엔드포인트를 찾을 수 없습니다"
#: InvenTree/api.py:438
msgid "List of items must be provided for bulk operation"
-msgstr ""
+msgstr "일괄 작업을 위해 항목 목록을 제공해야 합니다"
#: InvenTree/api.py:445
msgid "Items must be provided as a list"
-msgstr ""
+msgstr "항목은 목록 형태로 제공되어야 합니다"
#: InvenTree/api.py:453
msgid "Invalid items list provided"
-msgstr ""
+msgstr "잘못된 항목 목록이 제공되었습니다"
#: InvenTree/api.py:458
msgid "All filter must only be used with true"
-msgstr ""
+msgstr "all 필터는 true와 함께만 사용할 수 있습니다"
#: InvenTree/api.py:463
msgid "No items match the provided criteria"
-msgstr ""
+msgstr "제공된 조건과 일치하는 항목이 없습니다"
#: InvenTree/api.py:487
msgid "No data provided"
-msgstr ""
+msgstr "데이터가 제공되지 않았습니다"
#: InvenTree/api.py:503
msgid "This field must be unique."
-msgstr ""
+msgstr "이 필드는 고유해야 합니다."
#: InvenTree/api.py:832
msgid "User does not have permission to view this model"
@@ -63,38 +63,38 @@ msgstr "이메일 주소 확인"
#: InvenTree/auth_overrides.py:85
msgid "You must type the same email each time."
-msgstr ""
+msgstr "매번 동일한 이메일을 입력해야 합니다."
#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
msgid "The provided primary email address is not valid."
-msgstr ""
+msgstr "제공된 기본 이메일 주소가 유효하지 않습니다."
#: InvenTree/auth_overrides.py:145
msgid "The provided email domain is not approved."
-msgstr ""
+msgstr "제공된 이메일 도메인이 승인되지 않았습니다."
#: InvenTree/conversion.py:240
#, python-brace-format
msgid "Invalid unit provided ({unit})"
-msgstr ""
+msgstr "잘못된 단위가 제공되었습니다 ({unit})"
#: InvenTree/conversion.py:257
msgid "No value provided"
-msgstr ""
+msgstr "값이 제공되지 않았습니다"
#: InvenTree/conversion.py:284
#, python-brace-format
msgid "Could not convert {original} to {unit}"
-msgstr ""
+msgstr "{original}을(를) {unit}(으)로 변환할 수 없습니다"
#: InvenTree/conversion.py:286 InvenTree/conversion.py:300
#: InvenTree/helpers.py:610 order/models.py:747 order/models.py:1042
msgid "Invalid quantity provided"
-msgstr ""
+msgstr "잘못된 수량이 제공되었습니다"
#: InvenTree/exceptions.py:136
msgid "Error details can be found in the admin panel"
-msgstr ""
+msgstr "오류 상세 내용은 관리자 패널에서 확인할 수 있습니다"
#: InvenTree/fields.py:146
msgid "Enter date"
@@ -102,82 +102,82 @@ msgstr "날짜 입력"
#: InvenTree/fields.py:169
msgid "Invalid decimal value"
-msgstr ""
+msgstr "잘못된 소수 값"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "메모"
#: InvenTree/format.py:166
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
-msgstr ""
+msgstr "값 '{name}'이(가) 패턴 형식에 없습니다"
#: InvenTree/format.py:177
msgid "Provided value does not match required pattern: "
-msgstr ""
+msgstr "제공된 값이 요구되는 패턴과 일치하지 않습니다: "
#: InvenTree/helpers.py:614
msgid "Cannot serialize more than 1000 items at once"
-msgstr ""
+msgstr "한 번에 1000개를 초과하여 직렬화할 수 없습니다"
#: InvenTree/helpers.py:620
msgid "Empty serial number string"
-msgstr ""
+msgstr "시리얼 번호 문자열이 비어 있습니다"
#: InvenTree/helpers.py:649
msgid "Duplicate serial"
-msgstr ""
+msgstr "중복된 시리얼"
#: InvenTree/helpers.py:681 InvenTree/helpers.py:724 InvenTree/helpers.py:742
#: InvenTree/helpers.py:749 InvenTree/helpers.py:768
#, python-brace-format
msgid "Invalid group: {group}"
-msgstr ""
+msgstr "잘못된 그룹: {group}"
#: InvenTree/helpers.py:712
#, python-brace-format
msgid "Group range {group} exceeds allowed quantity ({expected_quantity})"
-msgstr ""
+msgstr "그룹 범위 {group}이(가) 허용된 수량({expected_quantity})을 초과합니다"
#: InvenTree/helpers.py:778
msgid "No serial numbers found"
-msgstr ""
+msgstr "시리얼 번호를 찾을 수 없습니다"
#: InvenTree/helpers.py:785
#, python-brace-format
msgid "Number of unique serial numbers ({n}) must match quantity ({q})"
-msgstr ""
+msgstr "고유 시리얼 번호 개수({n})는 수량({q})과 일치해야 합니다"
#: InvenTree/helpers.py:915
msgid "Remove HTML tags from this value"
-msgstr ""
+msgstr "이 값에서 HTML 태그를 제거하세요"
#: InvenTree/helpers.py:992
msgid "Data contains prohibited markdown content"
-msgstr ""
+msgstr "데이터에 금지된 마크다운 내용이 포함되어 있습니다"
#: InvenTree/helpers_model.py:109
msgid "Invalid URL: no hostname"
-msgstr ""
+msgstr "잘못된 URL: 호스트명이 없습니다"
#: InvenTree/helpers_model.py:114
msgid "Invalid URL: hostname could not be resolved"
-msgstr ""
+msgstr "잘못된 URL: 호스트명을 확인할 수 없습니다"
#: InvenTree/helpers_model.py:120
msgid "URL points to a private or reserved IP address"
-msgstr ""
+msgstr "URL이 사설 또는 예약된 IP 주소를 가리킵니다"
#: InvenTree/helpers_model.py:195
msgid "Too many redirects"
-msgstr ""
+msgstr "리디렉션이 너무 많습니다"
#: InvenTree/helpers_model.py:200
msgid "Connection error"
@@ -185,15 +185,15 @@ msgstr "연결 오류"
#: InvenTree/helpers_model.py:205 InvenTree/helpers_model.py:214
msgid "Server responded with invalid status code"
-msgstr ""
+msgstr "서버가 잘못된 상태 코드를 반환했습니다"
#: InvenTree/helpers_model.py:210
msgid "Exception occurred"
-msgstr ""
+msgstr "예외가 발생했습니다"
#: InvenTree/helpers_model.py:220
msgid "Server responded with invalid Content-Length value"
-msgstr ""
+msgstr "서버가 잘못된 Content-Length 값을 반환했습니다"
#: InvenTree/helpers_model.py:223
msgid "Image size is too large"
@@ -201,75 +201,75 @@ msgstr "이미지 크기가 너무 큽니다!"
#: InvenTree/helpers_model.py:235
msgid "Image download exceeded maximum size"
-msgstr ""
+msgstr "이미지 다운로드가 최대 크기를 초과했습니다"
#: InvenTree/helpers_model.py:240
msgid "Remote server returned empty response"
-msgstr ""
+msgstr "원격 서버가 빈 응답을 반환했습니다"
#: InvenTree/helpers_model.py:248
msgid "Supplied URL is not a valid image file"
-msgstr ""
+msgstr "제공된 URL은 유효한 이미지 파일이 아닙니다"
#: InvenTree/magic_login.py:31
msgid "Log in to the app"
-msgstr ""
+msgstr "앱에 로그인"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "이메일"
#: InvenTree/middleware.py:183
msgid "You must enable two-factor authentication before doing anything else."
-msgstr ""
+msgstr "다른 작업을 하기 전에 먼저 2단계 인증을 활성화해야 합니다."
#: InvenTree/models.py:114
msgid "Error running plugin validation"
-msgstr ""
+msgstr "플러그인 유효성 검사 실행 중 오류가 발생했습니다"
#: InvenTree/models.py:195
msgid "Metadata must be a python dict object"
-msgstr ""
+msgstr "메타데이터는 파이썬 dict 객체여야 합니다"
#: InvenTree/models.py:201
msgid "Plugin Metadata"
-msgstr ""
+msgstr "플러그인 메타데이터"
#: InvenTree/models.py:202
msgid "JSON metadata field, for use by external plugins"
-msgstr ""
+msgstr "외부 플러그인에서 사용하는 JSON 메타데이터 필드"
#: InvenTree/models.py:385
msgid "Improperly formatted pattern"
-msgstr ""
+msgstr "패턴 형식이 올바르지 않습니다"
#: InvenTree/models.py:392
msgid "Unknown format key specified"
-msgstr ""
+msgstr "알 수 없는 형식 키가 지정되었습니다"
#: InvenTree/models.py:398
msgid "Missing required format key"
-msgstr ""
+msgstr "필수 형식 키가 누락되었습니다"
#: InvenTree/models.py:409
msgid "Reference field cannot be empty"
-msgstr ""
+msgstr "참조(Reference) 필드는 비워둘 수 없습니다"
#: InvenTree/models.py:417
msgid "Reference must match required pattern"
-msgstr ""
+msgstr "참조(Reference)는 요구되는 패턴과 일치해야 합니다"
#: InvenTree/models.py:448
msgid "Reference number is too large"
-msgstr ""
+msgstr "참조 번호가 너무 큽니다"
#: InvenTree/models.py:901
msgid "Invalid choice"
-msgstr ""
+msgstr "잘못된 선택입니다"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -291,15 +291,15 @@ msgstr "설명 (선택 사항)"
#: InvenTree/models.py:1044 common/models.py:2869
msgid "Path"
-msgstr ""
+msgstr "경로"
#: InvenTree/models.py:1149
msgid "Duplicate names cannot exist under the same parent"
-msgstr ""
+msgstr "같은 상위 항목 아래에는 중복된 이름이 있을 수 없습니다"
#: InvenTree/models.py:1233
msgid "Markdown notes (optional)"
-msgstr ""
+msgstr "마크다운 메모 (선택 사항)"
#: InvenTree/models.py:1264
msgid "Barcode Data"
@@ -307,19 +307,19 @@ msgstr "바코드 데이터"
#: InvenTree/models.py:1265
msgid "Third party barcode data"
-msgstr ""
+msgstr "서드파티 바코드 데이터"
#: InvenTree/models.py:1271
msgid "Barcode Hash"
-msgstr ""
+msgstr "바코드 해시"
#: InvenTree/models.py:1272
msgid "Unique hash of barcode data"
-msgstr ""
+msgstr "바코드 데이터의 고유 해시"
#: InvenTree/models.py:1353
msgid "Existing barcode found"
-msgstr ""
+msgstr "기존 바코드를 찾았습니다"
#: InvenTree/models.py:1453
msgid "Server Error"
@@ -327,62 +327,62 @@ msgstr "서버 오류"
#: InvenTree/models.py:1454
msgid "An error has been logged by the server."
-msgstr ""
+msgstr "서버에 오류가 기록되었습니다."
#: InvenTree/models.py:1496 common/models.py:1776
#: 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
msgid "Image"
-msgstr ""
+msgstr "이미지"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
-msgstr ""
+msgstr "유효한 숫자여야 합니다"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
-msgstr ""
+msgstr "통화"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
-msgstr ""
+msgstr "사용 가능한 옵션에서 통화를 선택하세요"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
-msgstr ""
+msgstr "이 필드는 null일 수 없습니다."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "유효하지 않은 값"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
-msgstr ""
+msgstr "원격 이미지"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
-msgstr ""
+msgstr "원격 이미지 파일의 URL"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
-msgstr ""
+msgstr "원격 URL에서 이미지 다운로드가 활성화되어 있지 않습니다"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
-msgstr ""
+msgstr "원격 URL에서 이미지를 다운로드하지 못했습니다"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
-msgstr ""
+msgstr "콘텐츠 타입 형식이 올바르지 않습니다"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
-msgstr ""
+msgstr "콘텐츠 타입을 찾을 수 없습니다"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
-msgstr ""
+msgstr "콘텐츠 타입이 필요한 믹스인 클래스와 일치하지 않습니다"
#: InvenTree/setting/locales.py:20
msgid "Arabic"
@@ -536,46 +536,46 @@ msgstr "중국어 (간체)"
msgid "Chinese (Traditional)"
msgstr "중국어 (번체)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
-msgstr ""
+msgstr "업데이트 사용 가능"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
-msgstr ""
+msgstr "InvenTree 업데이트가 있습니다"
#: InvenTree/validators.py:28
msgid "Invalid physical unit"
-msgstr ""
+msgstr "잘못된 물리 단위"
#: InvenTree/validators.py:34
msgid "Not a valid currency code"
-msgstr ""
+msgstr "유효한 통화 코드가 아닙니다"
#: build/api.py:55 order/api.py:114 order/api.py:281 order/api.py:1384
#: order/serializers.py:123
msgid "Order Status"
-msgstr ""
+msgstr "주문 상태"
#: build/api.py:81 build/models.py:277
msgid "Parent Build"
-msgstr ""
+msgstr "직상위 빌드"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
-msgstr ""
+msgstr "변형(Variant) 포함"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,25 +585,25 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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/email/part_event_notification.html:15
#: templates/email/stale_stock_notification.html:17
msgid "Part"
-msgstr ""
+msgstr "부품"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "분류"
#: build/api.py:132 build/api.py:136
msgid "Ancestor Build"
-msgstr ""
+msgstr "상위 계층 빌드"
#: build/api.py:153 order/api.py:132
msgid "Assigned to me"
@@ -611,47 +611,47 @@ msgstr "나에게 할당 됨"
#: build/api.py:168
msgid "Assigned To"
-msgstr ""
+msgstr "할당 대상"
#: build/api.py:203
msgid "Created before"
-msgstr ""
+msgstr "생성일 이전"
#: build/api.py:207
msgid "Created after"
-msgstr ""
+msgstr "생성일 이후"
#: build/api.py:211
msgid "Has start date"
-msgstr ""
+msgstr "시작일 있음"
#: build/api.py:219
msgid "Start date before"
-msgstr ""
+msgstr "시작일 이전"
#: build/api.py:223
msgid "Start date after"
-msgstr ""
+msgstr "시작일 이후"
#: build/api.py:227
msgid "Has target date"
-msgstr ""
+msgstr "목표일 있음"
#: build/api.py:235
msgid "Target date before"
-msgstr ""
+msgstr "목표일 이전"
#: build/api.py:239
msgid "Target date after"
-msgstr ""
+msgstr "목표일 이후"
#: build/api.py:243
msgid "Completed before"
-msgstr ""
+msgstr "완료일 이전"
#: build/api.py:247
msgid "Completed after"
-msgstr ""
+msgstr "완료일 이후"
#: build/api.py:250 order/api.py:237
msgid "Min Date"
@@ -663,364 +663,364 @@ msgstr "최대 날짜"
#: build/api.py:298 build/api.py:301 part/api.py:197 stock/api.py:960
msgid "Exclude Tree"
-msgstr ""
+msgstr "트리 제외"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
-msgstr ""
+msgstr "빌드를 삭제하려면 먼저 취소해야 합니다"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "소모품"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "선택사항"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
-msgstr ""
+msgstr "조립품"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
-msgstr ""
+msgstr "추적됨"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
-msgstr ""
+msgstr "테스트 가능"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
-msgstr ""
+msgstr "미결 주문"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
-msgstr ""
+msgstr "할당됨"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
-msgstr ""
+msgstr "소모됨"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
-msgstr ""
+msgstr "사용 가능"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
-msgstr ""
+msgstr "주문 중"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
-msgstr ""
+msgstr "빌드를 찾을 수 없습니다"
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
-msgstr ""
+msgstr "작업 지시서"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
-msgstr ""
+msgstr "위치"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
-msgstr ""
+msgstr "산출물"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
-msgstr ""
+msgstr "산출물 재고 항목 ID로 필터링합니다. 설치되지 않은 빌드 항목을 찾으려면 'null'을 사용하세요."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
-msgstr ""
+msgstr "작업 지시서"
#: build/models.py:181
msgid "Assembly BOM has not been validated"
-msgstr ""
+msgstr "조립품 BOM이 검증되지 않았습니다"
#: build/models.py:188
msgid "Build order cannot be created for an inactive part"
-msgstr ""
+msgstr "비활성 부품에 대해서는 작업 지시서를 생성할 수 없습니다"
#: build/models.py:195
msgid "Build order cannot be created for an unlocked part"
-msgstr ""
+msgstr "잠금 해제된 부품에 대해서는 작업 지시서를 생성할 수 없습니다"
#: build/models.py:213
msgid "Build orders can only be externally fulfilled for purchaseable parts"
-msgstr ""
+msgstr "외부 이행은 구매 가능한 부품에 대해서만 가능합니다"
#: build/models.py:220 order/models.py:373
msgid "Responsible user or group must be specified"
-msgstr ""
+msgstr "담당 사용자 또는 그룹을 지정해야 합니다"
#: build/models.py:225
msgid "Build order part cannot be changed"
-msgstr ""
+msgstr "작업 지시서 부품은 변경할 수 없습니다"
#: build/models.py:230 order/models.py:386
msgid "Target date must be after start date"
-msgstr ""
+msgstr "목표일은 시작일 이후여야 합니다"
#: build/models.py:258
msgid "Build Order Reference"
-msgstr ""
+msgstr "작업 지시서 참조번호"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
#: report/templates/report/inventree_sales_order_report.html:28
msgid "Reference"
-msgstr ""
+msgstr "참조"
#: build/models.py:268
msgid "Brief description of the build (optional)"
-msgstr ""
+msgstr "빌드에 대한 간단한 설명 (선택 사항)"
#: build/models.py:278
msgid "Build Order to which this build is allocated"
-msgstr ""
+msgstr "이 빌드가 할당된 작업 지시서"
#: build/models.py:287
msgid "Select part to build"
-msgstr ""
+msgstr "빌드할 부품을 선택하세요"
#: build/models.py:292
msgid "Sales Order Reference"
-msgstr ""
+msgstr "판매 주문 참조"
#: build/models.py:297
msgid "Sales Order to which this build is allocated"
-msgstr ""
+msgstr "이 빌드가 할당된 판매 주문"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
-msgstr ""
+msgstr "원본 위치"
#: build/models.py:308
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr ""
+msgstr "이 빌드에 사용할 재고를 가져올 위치를 선택하세요 (비워두면 어떤 재고 위치에서든 가져옵니다)"
#: build/models.py:314
msgid "External Build"
-msgstr ""
+msgstr "외주 생산"
#: build/models.py:315
msgid "This build order is fulfilled externally"
-msgstr ""
+msgstr "이 작업 지시서는 외주로 생산됩니다"
#: build/models.py:320
msgid "Destination Location"
-msgstr ""
+msgstr "대상 위치"
#: build/models.py:325
msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "완료된 항목이 보관될 위치를 선택하세요"
#: build/models.py:329
msgid "Build Quantity"
-msgstr ""
+msgstr "빌드 수량"
#: build/models.py:332
msgid "Number of stock items to build"
-msgstr ""
+msgstr "빌드할 재고 항목 수"
#: build/models.py:336
msgid "Completed items"
-msgstr ""
+msgstr "완료된 항목"
#: build/models.py:338
msgid "Number of stock items which have been completed"
-msgstr ""
+msgstr "완료된 재고 항목 수"
#: build/models.py:342
msgid "Build Status"
-msgstr ""
+msgstr "빌드 상태"
#: build/models.py:347
msgid "Build status code"
-msgstr ""
+msgstr "빌드 상태 코드"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
-msgstr ""
+msgstr "배치 코드"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
-msgstr ""
+msgstr "이 빌드 산출물의 배치 코드"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
-msgstr ""
+msgstr "생성일"
#: build/models.py:370
msgid "Build start date"
-msgstr ""
+msgstr "빌드 시작일"
#: build/models.py:371
msgid "Scheduled start date for this build order"
-msgstr ""
+msgstr "이 작업 지시서의 예정 시작일"
#: build/models.py:377
msgid "Target completion date"
-msgstr ""
+msgstr "목표 완료일"
#: build/models.py:379
msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
+msgstr "빌드 완료 목표일. 이 날짜 이후에는 빌드가 지연으로 처리됩니다."
#: build/models.py:384 order/models.py:694 order/models.py:2803
msgid "Completion Date"
-msgstr ""
+msgstr "완료일"
#: build/models.py:392
msgid "completed by"
-msgstr ""
+msgstr "완료자"
#: build/models.py:401
msgid "Issued by"
-msgstr ""
+msgstr "발행자"
#: build/models.py:402
msgid "User who issued this build order"
-msgstr ""
+msgstr "이 작업 지시서를 발행한 사용자"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
-msgstr ""
+msgstr "담당"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
-msgstr ""
+msgstr "이 작업 지시서를 담당하는 사용자 또는 그룹"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
-msgstr ""
+msgstr "외부 링크"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
-msgstr ""
+msgstr "외부 URL로 연결"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
-msgstr ""
+msgstr "빌드 우선순위"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
-msgstr ""
+msgstr "이 빌드 주문의 우선순위"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
-msgstr ""
+msgstr "프로젝트 코드"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
-msgstr ""
+msgstr "이 빌드 주문의 프로젝트 코드"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
-msgstr ""
+msgstr "진행 중인 하위 빌드가 있는 상태에서는 작업 지시서를 완료할 수 없습니다"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
-msgstr ""
+msgstr "미완료 산출물이 있는 상태에서는 작업 지시서를 완료할 수 없습니다"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
-msgstr ""
+msgstr "빌드 자재 할당 완료 처리를 위한 작업 실행에 실패했습니다"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
-msgstr ""
+msgstr "작업 지시서 {build}이(가) 완료되었습니다"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
-msgstr ""
+msgstr "작업 지시서가 완료되었습니다"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
-msgstr ""
+msgstr "추적 가능한 부품에는 시리얼 번호를 제공해야 합니다"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
-msgstr ""
+msgstr "생산 완제품이 지정되지 않았습니다"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
-msgstr ""
+msgstr "생산 완제품이 이미 완료되었습니다"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
-msgstr ""
+msgstr "생산 완제품이 작업 지시서와 일치하지 않습니다"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
-msgstr ""
+msgstr "수량은 0보다 커야 합니다"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
-msgstr ""
+msgstr "수량은 산출물 수량보다 클 수 없습니다"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
-msgstr ""
+msgstr "생산 완제품이 모든 필수 테스트를 통과하지 못했습니다"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
-msgstr ""
-
-#: build/models.py:1203
-msgid "Allocated stock items are still in production"
-msgstr ""
+msgstr "생산 완제품 {serial}이(가) 모든 필수 테스트를 통과하지 못했습니다"
#: build/models.py:1211
+msgid "Allocated stock items are still in production"
+msgstr "할당된 재고 항목이 아직 생산 중입니다"
+
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
-msgstr ""
+msgstr "할당된 항목이 있는 빌드 산출물은 부분 완료할 수 없습니다"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
-msgstr ""
+msgstr "소요 자재 품목"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
-msgstr ""
+msgstr "빌드 객체"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,701 +1032,701 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "수량"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
-msgstr ""
+msgstr "작업 지시서에 필요한 수량"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
-msgstr ""
+msgstr "소모된 재고 수량"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
+msgstr "마스터 부품이 추적 가능으로 표시되어 있으므로, 빌드 항목은 생산 완제품을 지정해야 합니다"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
-msgstr ""
+msgstr "선택한 재고 항목이 BOM 라인과 일치하지 않습니다"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
-msgstr ""
+msgstr "할당 수량은 0보다 커야 합니다"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
-msgstr ""
+msgstr "시리얼이 있는 재고의 수량은 1이어야 합니다"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
-msgstr ""
+msgstr "할당 수량({q})은 사용 가능한 재고 수량({a})을 초과할 수 없습니다"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
-msgstr ""
+msgstr "재고 항목이 과다 할당되었습니다"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
-msgstr ""
+msgstr "재고 항목"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
-msgstr ""
+msgstr "원본 재고 항목"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
-msgstr ""
+msgstr "빌드에 할당할 재고 수량"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
-msgstr ""
+msgstr "설치 대상"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
-msgstr ""
+msgstr "대상 재고 항목"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
-msgstr ""
+msgstr "빌드 레벨"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
-msgstr ""
+msgstr "부품명"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
-msgstr ""
-
-#: build/serializers.py:219
-msgid "Build output does not match the parent build"
-msgstr ""
-
-#: build/serializers.py:223
-msgid "Output part does not match BuildOrder part"
-msgstr ""
+msgstr "빌드 산출물"
#: build/serializers.py:227
+msgid "Build output does not match the parent build"
+msgstr "빌드 산출물이 상위 빌드와 일치하지 않습니다"
+
+#: build/serializers.py:231
+msgid "Output part does not match BuildOrder part"
+msgstr "산출물 부품이 빌드 주문 부품과 일치하지 않습니다"
+
+#: build/serializers.py:235
msgid "This build output has already been completed"
-msgstr ""
+msgstr "이 빌드 산출물은 이미 완료되었습니다"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
-msgstr ""
+msgstr "이 빌드 산출물은 완전히 할당되지 않았습니다"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
-msgstr ""
+msgstr "빌드 산출물 수량을 입력하세요"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
-msgstr ""
+msgstr "추적 가능한 부품에는 정수 수량이 필요합니다"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
-msgstr ""
+msgstr "BOM에 추적 가능한 부품이 포함되어 있으므로 정수 수량이 필요합니다"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "시리얼 번호 (일련번호)"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
-msgstr ""
+msgstr "빌드 산출물의 시리얼 번호를 입력하세요"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
-msgstr ""
+msgstr "빌드 산출물의 재고 위치"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
-msgstr ""
+msgstr "시리얼 번호 자동 할당"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
-msgstr ""
+msgstr "일치하는 시리얼 번호로 필요한 항목을 자동으로 할당합니다"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
-msgstr ""
+msgstr "다음 시리얼 번호는 이미 존재하거나 유효하지 않습니다"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
-msgstr ""
+msgstr "빌드 산출물 목록을 제공해야 합니다"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
-msgstr ""
+msgstr "폐기된 산출물의 재고 위치"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
-msgstr ""
+msgstr "할당 폐기"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
-msgstr ""
+msgstr "폐기된 산출물에 대한 모든 재고 할당을 폐기합니다"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
-msgstr ""
-
-#: build/serializers.py:556
-msgid "Location for completed build outputs"
-msgstr ""
+msgstr "빌드 산출물 폐기 사유"
#: build/serializers.py:564
+msgid "Location for completed build outputs"
+msgstr "완료된 빌드 산출물의 위치"
+
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
-msgstr ""
+msgstr "불완전한 할당 허용"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
-msgstr ""
-
-#: build/serializers.py:690
-msgid "Consume Allocated Stock"
-msgstr ""
-
-#: build/serializers.py:691
-msgid "Consume any stock which has already been allocated to this build"
-msgstr ""
-
-#: build/serializers.py:697
-msgid "Remove Incomplete Outputs"
-msgstr ""
+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 ""
+msgstr "완료되지 않은 모든 빌드 산출물을 삭제합니다"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
-msgstr ""
+msgstr "허용되지 않음"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
-msgstr ""
+msgstr "이 빌드 주문에 의해 소모된 것으로 수락"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
-msgstr ""
+msgstr "이 빌드 주문을 완료하기 전에 할당을 해제하세요"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
-msgstr ""
+msgstr "과다 할당된 재고"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
-msgstr ""
+msgstr "빌드 주문에 추가로 할당된 재고 항목을 어떻게 처리하시겠습니까"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
-msgstr ""
+msgstr "일부 재고 항목이 과다 할당되었습니다"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
-msgstr ""
+msgstr "미할당 수락"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
-msgstr ""
+msgstr "재고 항목이 이 빌드 주문에 완전히 할당되지 않았음을 수락합니다"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
-msgstr ""
+msgstr "필요한 재고가 완전히 할당되지 않았습니다"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
-msgstr ""
+msgstr "불완전 수락"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
-msgstr ""
+msgstr "필요한 개수의 빌드 산출물이 완료되지 않았음을 수락합니다"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
-msgstr ""
+msgstr "필요한 빌드 수량이 완료되지 않았습니다"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
-msgstr ""
+msgstr "작업 지시서에 진행 중인 하위 작업 지시서가 있습니다"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
-msgstr ""
+msgstr "작업 지시서는 생산 상태여야 합니다"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
-msgstr ""
-
-#: build/serializers.py:861
-msgid "Build Line"
-msgstr ""
+msgstr "작업 지시서에 미완료 산출물이 있습니다"
#: build/serializers.py:869
-msgid "Build output"
-msgstr ""
+msgid "Build Line"
+msgstr "빌드 라인"
#: build/serializers.py:877
+msgid "Build output"
+msgstr "생산 완제품"
+
+#: build/serializers.py:885
msgid "Build output must point to the same build"
-msgstr ""
+msgstr "생산 완제품은 동일한 빌드를 가리켜야 합니다"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
-msgstr ""
+msgstr "빌드 라인 항목"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
+msgstr "bom_item.part는 빌드 주문과 동일한 부품을 가리켜야 합니다"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
-msgstr ""
+msgstr "항목은 재고에 있어야 합니다"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
-msgstr ""
-
-#: build/serializers.py:991
-msgid "Build output must be specified for allocation of tracked parts"
-msgstr ""
+msgstr "사용 가능한 수량({q})을 초과했습니다"
#: build/serializers.py:999
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr "추적 부품을 할당하려면 생산 완제품을 지정해야 합니다"
+
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
-msgstr ""
+msgstr "비추적 부품 할당에는 생산 완제품을 지정할 수 없습니다"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
-msgstr ""
+msgstr "할당 항목을 제공해야 합니다"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
-msgstr ""
+msgstr "부품을 공급할 재고 위치 (비워두면 어떤 위치에서든 가져옵니다)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
-msgstr ""
+msgstr "위치 제외"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
-msgstr ""
+msgstr "선택한 위치의 재고 항목을 제외합니다"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
-msgstr ""
+msgstr "상호 대체 가능한 재고"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
-msgstr ""
+msgstr "여러 위치에 있는 재고 품목을 서로 대체하여 사용할 수 있습니다"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
-msgstr ""
+msgstr "대체 재고"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
-msgstr ""
-
-#: build/serializers.py:1114
-msgid "Optional Items"
-msgstr ""
-
-#: build/serializers.py:1115
-msgid "Allocate optional BOM items to build order"
-msgstr ""
-
-#: build/serializers.py:1121
-msgid "All Items"
-msgstr ""
+msgstr "대체 부품 할당을 허용합니다"
#: build/serializers.py:1122
-msgid "Untracked Items"
-msgstr ""
+msgid "Optional Items"
+msgstr "선택 항목"
#: build/serializers.py:1123
+msgid "Allocate optional BOM items to build order"
+msgstr "빌드 주문에 선택 BOM 항목을 할당합니다"
+
+#: build/serializers.py:1129
+msgid "All Items"
+msgstr "모든 항목"
+
+#: build/serializers.py:1130
+msgid "Untracked Items"
+msgstr "비추적 항목"
+
+#: build/serializers.py:1131
msgid "Tracked Items"
-msgstr ""
+msgstr "추적 항목"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
-msgstr ""
+msgstr "항목 유형"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
-msgstr ""
+msgstr "자동 할당할 항목 유형을 선택하세요"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
-msgstr ""
+msgstr "BOM 참조"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
-msgstr ""
+msgstr "BOM 부품 ID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
-msgstr ""
+msgstr "BOM 부품명"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
-msgstr ""
+msgstr "설치 대상"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
-msgstr ""
+msgstr "빌드"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
-msgstr ""
+msgstr "공급업체 부품"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
-msgstr ""
+msgstr "할당 수량"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
-msgstr ""
+msgstr "빌드 참조"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
-msgstr ""
+msgstr "부품 카테고리 이름"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
-msgstr ""
+msgstr "추적 가능"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
-msgstr ""
+msgstr "상속됨"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
-msgstr ""
+msgstr "변형(Variant) 허용"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
-msgstr ""
+msgstr "BOM 항목"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
-msgstr ""
+msgstr "생산 중"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
-msgstr ""
+msgstr "빌드 예정"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
-msgstr ""
+msgstr "외부 재고"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
-msgstr ""
+msgstr "사용 가능 재고"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
-msgstr ""
+msgstr "사용 가능 대체 재고"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
-msgstr ""
+msgstr "사용 가능 변형(Variant) 재고"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
-msgstr ""
+msgstr "소모 수량이 할당 수량을 초과합니다"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
-msgstr ""
+msgstr "재고 소모에 대한 선택 메모"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
-msgstr ""
+msgstr "빌드 항목은 올바른 빌드 주문을 가리켜야 합니다"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
-msgstr ""
+msgstr "빌드 항목 할당이 중복되었습니다"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
-msgstr ""
+msgstr "빌드 라인은 올바른 빌드 주문을 가리켜야 합니다"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
-msgstr ""
+msgstr "빌드 라인 할당이 중복되었습니다"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
-msgstr ""
+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
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: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:53
#: order/status_codes.py:84
msgid "Cancelled"
-msgstr ""
+msgstr "취소됨"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
-msgstr ""
+msgstr "완료"
#: build/tasks.py:218
msgid "Stock required for build order"
-msgstr ""
+msgstr "빌드 주문에 재고가 필요합니다"
#: build/tasks.py:228
#, python-brace-format
msgid "Build order {build} requires additional stock"
-msgstr ""
+msgstr "빌드 주문 {build}에 추가 재고가 필요합니다"
#: build/tasks.py:252
msgid "Overdue Build Order"
-msgstr ""
+msgstr "기한 초과 빌드 주문"
#: build/tasks.py:257
#, python-brace-format
msgid "Build order {bo} is now overdue"
-msgstr ""
+msgstr "빌드 주문 {bo}이(가) 기한을 초과했습니다"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
-msgstr ""
+msgstr "링크 여부"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
-msgstr ""
+msgstr "파일 여부"
+
+#: common/api.py:777
+msgid "User does not have permission to delete these attachments"
+msgstr "사용자에게 이 첨부파일들을 삭제할 권한이 없습니다"
#: common/api.py:790
-msgid "User does not have permission to delete these attachments"
-msgstr ""
-
-#: common/api.py:803
msgid "User does not have permission to delete this attachment"
-msgstr ""
+msgstr "사용자에게 이 첨부파일을 삭제할 권한이 없습니다"
#: common/currency.py:135
msgid "Invalid currency code"
-msgstr ""
+msgstr "유효하지 않은 통화 코드"
#: common/currency.py:137
msgid "Duplicate currency code"
-msgstr ""
+msgstr "중복된 통화 코드"
#: common/currency.py:142
msgid "No valid currency codes provided"
-msgstr ""
+msgstr "유효한 통화 코드가 제공되지 않았습니다"
#: common/currency.py:159
msgid "No plugin"
-msgstr ""
+msgstr "플러그인 없음"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
-msgstr ""
+msgstr "프로젝트 코드 라벨"
#: common/models.py:106 common/models.py:131 common/models.py:3204
msgid "Updated"
-msgstr ""
+msgstr "업데이트됨"
#: common/models.py:107 common/models.py:132 order/models.py:507
msgid "Timestamp of last update"
-msgstr ""
+msgstr "마지막 업데이트 타임스탬프"
#: common/models.py:144
msgid "Update By"
-msgstr ""
+msgstr "업데이트 사용자"
#: common/models.py:145
msgid "User who last updated this object"
-msgstr ""
+msgstr "이 객체를 마지막으로 업데이트한 사용자"
#: common/models.py:172
msgid "Unique project code"
-msgstr ""
+msgstr "고유 프로젝트 코드"
#: common/models.py:179
msgid "Project description"
-msgstr ""
+msgstr "프로젝트 설명"
#: common/models.py:188
msgid "User or group responsible for this project"
-msgstr ""
+msgstr "이 프로젝트의 담당 사용자 또는 그룹"
#: common/models.py:784 common/models.py:1300 common/models.py:1338
msgid "Settings key"
-msgstr ""
+msgstr "설정 키"
#: common/models.py:788
msgid "Settings value"
-msgstr ""
+msgstr "설정 값"
#: common/models.py:843
msgid "Chosen value is not a valid option"
-msgstr ""
+msgstr "선택한 값이 유효한 옵션이 아닙니다"
#: common/models.py:859
msgid "Value must be a boolean value"
-msgstr ""
+msgstr "값은 불리언(Boolean)이어야 합니다"
#: common/models.py:867
msgid "Value must be an integer value"
-msgstr ""
+msgstr "값은 정수여야 합니다"
#: common/models.py:875
msgid "Value must be a valid number"
-msgstr ""
+msgstr "값은 유효한 숫자여야 합니다"
#: common/models.py:900
msgid "Value does not pass validation checks"
-msgstr ""
+msgstr "값이 유효성 검사 기준을 통과하지 못했습니다"
#: common/models.py:922
msgid "Key string must be unique"
-msgstr ""
+msgstr "키 문자열은 고유해야 합니다"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
msgid "User"
-msgstr ""
+msgstr "사용자"
#: common/models.py:1369
msgid "Price break quantity"
-msgstr ""
+msgstr "가격 구간 수량"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
-msgstr ""
+msgstr "가격"
#: common/models.py:1377
msgid "Unit price at specified quantity"
-msgstr ""
+msgstr "지정 수량에서의 단가"
#: common/models.py:1428 common/models.py:1613
msgid "Endpoint"
-msgstr ""
+msgstr "엔드포인트"
#: common/models.py:1429
msgid "Endpoint at which this webhook is received"
-msgstr ""
+msgstr "이 웹훅을 수신하는 엔드포인트"
#: common/models.py:1439
msgid "Name for this webhook"
-msgstr ""
+msgstr "이 웹훅의 이름"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
-msgstr ""
+msgstr "활성"
#: common/models.py:1443
msgid "Is this webhook active"
-msgstr ""
+msgstr "이 웹훅이 활성 상태인가요"
#: common/models.py:1459 users/models.py:172
msgid "Token"
-msgstr ""
+msgstr "토큰"
#: common/models.py:1460
msgid "Token for access"
-msgstr ""
+msgstr "접근용 토큰"
#: common/models.py:1468
msgid "Secret"
-msgstr ""
+msgstr "시크릿"
#: common/models.py:1469
msgid "Shared secret for HMAC"
-msgstr ""
+msgstr "HMAC용 공유 시크릿"
#: common/models.py:1577 common/models.py:3094
msgid "Message ID"
-msgstr ""
+msgstr "메시지 ID"
#: common/models.py:1578 common/models.py:3084
msgid "Unique identifier for this message"
-msgstr ""
+msgstr "이 메시지의 고유 식별자"
#: common/models.py:1586
msgid "Host"
-msgstr ""
+msgstr "호스트"
#: common/models.py:1587
msgid "Host from which this message was received"
-msgstr ""
+msgstr "이 메시지를 수신한 호스트"
#: common/models.py:1595
msgid "Header"
-msgstr ""
+msgstr "헤더"
#: common/models.py:1596
msgid "Header of this message"
-msgstr ""
+msgstr "이 메시지의 헤더"
#: common/models.py:1603
msgid "Body"
-msgstr ""
+msgstr "본문"
#: common/models.py:1604
msgid "Body of this message"
-msgstr ""
+msgstr "이 메시지의 본문"
#: common/models.py:1614
msgid "Endpoint on which this message was received"
-msgstr ""
+msgstr "이 메시지를 수신한 엔드포인트"
#: common/models.py:1619
msgid "Worked on"
-msgstr ""
+msgstr "처리됨"
#: common/models.py:1620
msgid "Was the work on this message finished?"
-msgstr ""
+msgstr "이 메시지 처리가 완료되었나요?"
#: common/models.py:1746
msgid "Id"
-msgstr ""
+msgstr "ID"
#: common/models.py:1748
msgid "Title"
-msgstr ""
+msgstr "제목"
#: common/models.py:1750 common/models.py:2013 company/models.py:188
#: company/models.py:479 company/models.py:549 company/models.py:809
@@ -1734,872 +1734,872 @@ msgstr ""
#: part/models.py:1175
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
-msgstr ""
+msgstr "링크"
#: common/models.py:1752
msgid "Published"
-msgstr ""
+msgstr "게시됨"
#: common/models.py:1754
msgid "Author"
-msgstr ""
+msgstr "작성자"
#: common/models.py:1756
msgid "Summary"
-msgstr ""
+msgstr "요약"
#: common/models.py:1759 common/models.py:3061
msgid "Read"
-msgstr ""
+msgstr "읽음"
#: common/models.py:1759
msgid "Was this news item read?"
-msgstr ""
+msgstr "이 뉴스 항목을 읽었나요?"
#: common/models.py:1776
msgid "Image file"
-msgstr ""
+msgstr "이미지 파일"
#: common/models.py:1788
msgid "Target model type for this image"
-msgstr ""
+msgstr "이 이미지의 대상 모델 유형"
#: common/models.py:1792
msgid "Target model ID for this image"
-msgstr ""
+msgstr "이 이미지의 대상 모델 ID"
#: common/models.py:1814
msgid "Custom Unit"
-msgstr ""
+msgstr "사용자 정의 단위"
#: common/models.py:1832
msgid "Unit symbol must be unique"
-msgstr ""
+msgstr "단위 기호는 고유해야 합니다"
#: common/models.py:1847
msgid "Unit name must be a valid identifier"
-msgstr ""
+msgstr "단위 이름은 유효한 식별자여야 합니다"
#: common/models.py:1866
msgid "Unit name"
-msgstr ""
+msgstr "단위 이름"
#: common/models.py:1873
msgid "Symbol"
-msgstr ""
+msgstr "기호"
#: common/models.py:1874
msgid "Optional unit symbol"
-msgstr ""
+msgstr "선택 단위 기호"
#: common/models.py:1880
msgid "Definition"
-msgstr ""
+msgstr "정의"
#: common/models.py:1881
msgid "Unit definition"
-msgstr ""
+msgstr "단위 정의"
#: common/models.py:1941 common/models.py:2004 stock/models.py:3073
#: stock/serializers.py:258
msgid "Attachment"
-msgstr ""
+msgstr "첨부파일"
#: common/models.py:1958
msgid "Missing file"
-msgstr ""
+msgstr "파일 누락"
#: common/models.py:1959
msgid "Missing external link"
-msgstr ""
+msgstr "외부 링크 누락"
#: common/models.py:1996 common/models.py:2542
msgid "Model type"
-msgstr ""
+msgstr "모델 유형"
#: common/models.py:1997
msgid "Target model type for image"
-msgstr ""
+msgstr "이미지의 대상 모델 유형"
#: common/models.py:2005
msgid "Select file to attach"
-msgstr ""
+msgstr "첨부할 파일을 선택하세요"
#: common/models.py:2021
msgid "Comment"
-msgstr ""
+msgstr "댓글"
#: common/models.py:2022
msgid "Attachment comment"
-msgstr ""
+msgstr "첨부파일 댓글"
#: common/models.py:2038
msgid "Upload date"
-msgstr ""
+msgstr "업로드 날짜"
#: common/models.py:2039
msgid "Date the file was uploaded"
-msgstr ""
+msgstr "파일이 업로드된 날짜"
#: common/models.py:2043
msgid "File size"
-msgstr ""
+msgstr "파일 크기"
#: common/models.py:2043
msgid "File size in bytes"
-msgstr ""
+msgstr "바이트 단위의 파일 크기"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
-msgstr ""
+msgstr "첨부파일에 대해 유효하지 않은 모델 유형이 지정되었습니다"
#: common/models.py:2102
msgid "Custom State"
-msgstr ""
+msgstr "사용자 정의 상태"
#: common/models.py:2103
msgid "Custom States"
-msgstr ""
+msgstr "사용자 정의 상태"
#: common/models.py:2108
msgid "Reference Status Set"
-msgstr ""
+msgstr "참조 상태 세트"
#: common/models.py:2109
msgid "Status set that is extended with this custom state"
-msgstr ""
+msgstr "이 사용자 정의 상태로 확장되는 상태 세트"
#: common/models.py:2113 generic/states/serializers.py:18
msgid "Logical Key"
-msgstr ""
+msgstr "논리 키"
#: common/models.py:2115
msgid "State logical key that is equal to this custom state in business logic"
-msgstr ""
+msgstr "업무 로직에서 이 사용자 정의 상태와 동일한 상태 논리 키"
#: common/models.py:2120 common/models.py:2387 machine/serializers.py:27
#: report/templates/report/inventree_test_report.html:104 stock/models.py:3065
msgid "Value"
-msgstr ""
+msgstr "값"
#: common/models.py:2121
msgid "Numerical value that will be saved in the models database"
-msgstr ""
+msgstr "모델 데이터베이스에 저장될 숫자 값"
#: common/models.py:2127
msgid "Name of the state"
-msgstr ""
+msgstr "상태 이름"
#: common/models.py:2136 common/models.py:2393 generic/states/serializers.py:22
msgid "Label"
-msgstr ""
+msgstr "라벨"
#: common/models.py:2137
msgid "Label that will be displayed in the frontend"
-msgstr ""
+msgstr "프론트엔드에 표시될 라벨"
#: common/models.py:2144 generic/states/serializers.py:24
msgid "Color"
-msgstr ""
+msgstr "색상"
#: common/models.py:2145
msgid "Color that will be displayed in the frontend"
-msgstr ""
+msgstr "프론트엔드에 표시될 색상"
#: common/models.py:2153
msgid "Model"
-msgstr ""
+msgstr "모델"
#: common/models.py:2154
msgid "Model this state is associated with"
-msgstr ""
+msgstr "이 상태가 연결된 모델"
#: common/models.py:2169
msgid "Model must be selected"
-msgstr ""
+msgstr "모델을 선택해야 합니다"
#: common/models.py:2172
msgid "Key must be selected"
-msgstr ""
+msgstr "키를 선택해야 합니다"
#: common/models.py:2175
msgid "Logical key must be selected"
-msgstr ""
+msgstr "논리 키를 선택해야 합니다"
#: common/models.py:2179
msgid "Key must be different from logical key"
-msgstr ""
+msgstr "키는 논리 키와 달라야 합니다"
#: common/models.py:2186
msgid "Valid reference status class must be provided"
-msgstr ""
+msgstr "유효한 참조 상태 클래스가 제공되어야 합니다"
#: common/models.py:2192
msgid "Key must be different from the logical keys of the reference status"
-msgstr ""
+msgstr "키는 참조 상태의 논리 키들과 달라야 합니다"
#: common/models.py:2199
msgid "Logical key must be in the logical keys of the reference status"
-msgstr ""
+msgstr "논리 키는 참조 상태의 논리 키 목록에 포함되어야 합니다"
#: common/models.py:2206
msgid "Name must be different from the names of the reference status"
-msgstr ""
+msgstr "이름은 참조 상태의 이름들과 달라야 합니다"
#: common/models.py:2246 common/models.py:2381 common/models.py:2587
msgid "Selection List"
-msgstr ""
+msgstr "선택 목록"
#: common/models.py:2247
msgid "Selection Lists"
-msgstr ""
+msgstr "선택 목록"
#: common/models.py:2252
msgid "Name of the selection list"
-msgstr ""
+msgstr "선택 목록 이름"
#: common/models.py:2259
msgid "Description of the selection list"
-msgstr ""
+msgstr "선택 목록 설명"
#: common/models.py:2265 part/models.py:1287
msgid "Locked"
-msgstr ""
+msgstr "잠김"
#: common/models.py:2266
msgid "Is this selection list locked?"
-msgstr ""
+msgstr "이 선택 목록이 잠겨 있나요?"
#: common/models.py:2272
msgid "Can this selection list be used?"
-msgstr ""
+msgstr "이 선택 목록을 사용할 수 있나요?"
#: common/models.py:2280
msgid "Source Plugin"
-msgstr ""
+msgstr "소스 플러그인"
#: common/models.py:2281
msgid "Plugin which provides the selection list"
-msgstr ""
+msgstr "선택 목록을 제공하는 플러그인"
#: common/models.py:2286
msgid "Source String"
-msgstr ""
+msgstr "소스 문자열"
#: common/models.py:2287
msgid "Optional string identifying the source used for this list"
-msgstr ""
+msgstr "이 목록에 사용된 소스를 식별하는 선택 문자열"
#: common/models.py:2296
msgid "Default Entry"
-msgstr ""
+msgstr "기본 항목"
#: common/models.py:2297
msgid "Default entry for this selection list"
-msgstr ""
+msgstr "이 선택 목록의 기본 항목"
#: common/models.py:2302 common/models.py:3199
msgid "Created"
-msgstr ""
+msgstr "생성됨"
#: common/models.py:2303
msgid "Date and time that the selection list was created"
-msgstr ""
+msgstr "선택 목록이 생성된 날짜 및 시간"
#: common/models.py:2308
msgid "Last Updated"
-msgstr ""
+msgstr "마지막 업데이트"
#: common/models.py:2309
msgid "Date and time that the selection list was last updated"
-msgstr ""
+msgstr "선택 목록이 마지막으로 업데이트된 날짜 및 시간"
#: common/models.py:2371
msgid "Selection List Entry"
-msgstr ""
+msgstr "선택 목록 항목"
#: common/models.py:2372
msgid "Selection List Entries"
-msgstr ""
+msgstr "선택 목록 항목"
#: common/models.py:2382
msgid "Selection list to which this entry belongs"
-msgstr ""
+msgstr "이 항목이 속한 선택 목록"
#: common/models.py:2388
msgid "Value of the selection list entry"
-msgstr ""
+msgstr "선택 목록 항목의 값"
#: common/models.py:2394
msgid "Label for the selection list entry"
-msgstr ""
+msgstr "선택 목록 항목 라벨"
#: common/models.py:2400
msgid "Description of the selection list entry"
-msgstr ""
+msgstr "선택 목록 항목 설명"
#: common/models.py:2407
msgid "Is this selection list entry active?"
-msgstr ""
+msgstr "이 선택 목록 항목이 활성 상태인가요?"
#: common/models.py:2441
msgid "Parameter Template"
-msgstr ""
+msgstr "매개변수 템플릿"
#: common/models.py:2442
msgid "Parameter Templates"
-msgstr ""
+msgstr "매개변수 템플릿"
#: common/models.py:2479
msgid "Checkbox parameters cannot have units"
-msgstr ""
+msgstr "체크박스 매개변수에는 단위를 지정할 수 없습니다"
#: common/models.py:2484
msgid "Checkbox parameters cannot have choices"
-msgstr ""
+msgstr "체크박스 매개변수에는 선택지를 지정할 수 없습니다"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
-msgstr ""
+msgstr "선택지는 고유해야 합니다"
#: common/models.py:2521
msgid "Parameter template name must be unique"
-msgstr ""
+msgstr "매개변수 템플릿 이름은 고유해야 합니다"
#: common/models.py:2543
msgid "Target model type for this parameter template"
-msgstr ""
+msgstr "이 매개변수 템플릿의 대상 모델 유형"
#: common/models.py:2549
msgid "Parameter Name"
-msgstr ""
+msgstr "매개변수 이름"
#: common/models.py:2555 part/models.py:1240
msgid "Units"
-msgstr ""
+msgstr "단위"
#: common/models.py:2556
msgid "Physical units for this parameter"
-msgstr ""
+msgstr "이 매개변수의 물리 단위"
#: common/models.py:2564
msgid "Parameter description"
-msgstr ""
+msgstr "매개변수 설명"
#: common/models.py:2570
msgid "Checkbox"
-msgstr ""
+msgstr "체크박스"
#: common/models.py:2571
msgid "Is this parameter a checkbox?"
-msgstr ""
+msgstr "이 매개변수는 체크박스인가요?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
-msgstr ""
+msgstr "선택지"
#: common/models.py:2577
msgid "Valid choices for this parameter (comma-separated)"
-msgstr ""
+msgstr "이 매개변수에 대한 유효한 선택지(쉼표로 구분)"
#: common/models.py:2588
msgid "Selection list for this parameter"
-msgstr ""
+msgstr "이 매개변수의 선택 목록"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
-msgstr ""
+msgstr "사용"
#: common/models.py:2594
msgid "Is this parameter template enabled?"
-msgstr ""
+msgstr "이 매개변수 템플릿을 사용하나요?"
#: common/models.py:2635
msgid "Parameter"
-msgstr ""
+msgstr "매개변수"
#: common/models.py:2636
msgid "Parameters"
-msgstr ""
+msgstr "매개변수"
#: common/models.py:2682
msgid "Invalid choice for parameter value"
-msgstr ""
+msgstr "매개변수 값에 대한 선택지가 올바르지 않습니다"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
-msgstr ""
+msgstr "매개변수에 지정된 모델 유형이 올바르지 않습니다"
#: common/models.py:2788
msgid "Model ID"
-msgstr ""
+msgstr "모델 ID"
#: common/models.py:2789
msgid "ID of the target model for this parameter"
-msgstr ""
+msgstr "이 매개변수의 대상 모델 ID"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
-msgstr ""
+msgstr "템플릿"
#: common/models.py:2799
msgid "Parameter template"
-msgstr ""
+msgstr "매개변수 템플릿"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
-msgstr ""
+msgstr "데이터"
#: common/models.py:2805
msgid "Parameter Value"
-msgstr ""
+msgstr "매개변수 값"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
-msgstr ""
+msgstr "메모"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
-msgstr ""
+msgstr "선택적 메모 필드"
#: common/models.py:2842
msgid "Barcode Scan"
-msgstr ""
+msgstr "바코드 스캔"
#: common/models.py:2847
msgid "Barcode data"
-msgstr ""
+msgstr "바코드 데이터"
#: common/models.py:2858
msgid "User who scanned the barcode"
-msgstr ""
+msgstr "바코드를 스캔한 사용자"
#: common/models.py:2863 importer/models.py:70
msgid "Timestamp"
-msgstr ""
+msgstr "타임스탬프"
#: common/models.py:2864
msgid "Date and time of the barcode scan"
-msgstr ""
+msgstr "바코드 스캔 날짜 및 시간"
#: common/models.py:2870
msgid "URL endpoint which processed the barcode"
-msgstr ""
+msgstr "바코드를 처리한 URL 엔드포인트"
#: common/models.py:2877 order/models.py:1880 plugin/serializers.py:93
msgid "Context"
-msgstr ""
+msgstr "컨텍스트"
#: common/models.py:2878
msgid "Context data for the barcode scan"
-msgstr ""
+msgstr "바코드 스캔의 컨텍스트 데이터"
#: common/models.py:2885
msgid "Response"
-msgstr ""
+msgstr "응답"
#: common/models.py:2886
msgid "Response data from the barcode scan"
-msgstr ""
+msgstr "바코드 스캔의 응답 데이터"
#: common/models.py:2892 report/templates/report/inventree_test_report.html:103
#: stock/models.py:3059
msgid "Result"
-msgstr ""
+msgstr "결과"
#: common/models.py:2893
msgid "Was the barcode scan successful?"
-msgstr ""
+msgstr "바코드 스캔이 성공했나요?"
#: common/models.py:2975
msgid "An error occurred"
-msgstr ""
+msgstr "오류가 발생했습니다"
#: common/models.py:2996
msgid "INVE-E8: Email log deletion is protected. Set INVENTREE_PROTECT_EMAIL_LOG to False to allow deletion."
-msgstr ""
+msgstr "INVE-E8: 이메일 로그 삭제가 보호되어 있습니다. 삭제를 허용하려면 INVENTREE_PROTECT_EMAIL_LOG를 False로 설정하세요."
#: common/models.py:3043
msgid "Email Message"
-msgstr ""
+msgstr "이메일 메시지"
#: common/models.py:3044
msgid "Email Messages"
-msgstr ""
+msgstr "이메일 메시지"
#: common/models.py:3051
msgid "Announced"
-msgstr ""
+msgstr "공지됨"
#: common/models.py:3053
msgid "Sent"
-msgstr ""
+msgstr "전송됨"
#: common/models.py:3054
msgid "Failed"
-msgstr ""
+msgstr "실패"
#: common/models.py:3057
msgid "Delivered"
-msgstr ""
+msgstr "전달됨"
#: common/models.py:3065
msgid "Confirmed"
-msgstr ""
+msgstr "확인됨"
#: common/models.py:3071
msgid "Inbound"
-msgstr ""
+msgstr "수신"
#: common/models.py:3072
msgid "Outbound"
-msgstr ""
+msgstr "발신"
#: common/models.py:3077
msgid "No Reply"
-msgstr ""
+msgstr "회신 없음"
#: common/models.py:3078
msgid "Track Delivery"
-msgstr ""
+msgstr "전달 추적"
#: common/models.py:3079
msgid "Track Read"
-msgstr ""
+msgstr "읽음 추적"
#: common/models.py:3080
msgid "Track Click"
-msgstr ""
+msgstr "클릭 추적"
#: common/models.py:3083 common/models.py:3186
msgid "Global ID"
-msgstr ""
+msgstr "전역 ID"
#: common/models.py:3096
msgid "Identifier for this message (might be supplied by external system)"
-msgstr ""
+msgstr "이 메시지의 식별자(외부 시스템에서 제공될 수 있음)"
#: common/models.py:3103
msgid "Thread ID"
-msgstr ""
+msgstr "스레드 ID"
#: common/models.py:3105
msgid "Identifier for this message thread (might be supplied by external system)"
-msgstr ""
+msgstr "이 메시지 스레드의 식별자(외부 시스템에서 제공될 수 있음)"
#: common/models.py:3114
msgid "Thread"
-msgstr ""
+msgstr "스레드"
#: common/models.py:3115
msgid "Linked thread for this message"
-msgstr ""
+msgstr "이 메시지에 연결된 스레드"
#: common/models.py:3131
msgid "Priority"
-msgstr ""
+msgstr "우선순위"
#: common/models.py:3173
msgid "Email Thread"
-msgstr ""
+msgstr "이메일 스레드"
#: common/models.py:3174
msgid "Email Threads"
-msgstr ""
+msgstr "이메일 스레드"
#: common/models.py:3180 generic/states/serializers.py:16
#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
msgid "Key"
-msgstr ""
+msgstr "키"
#: common/models.py:3183
msgid "Unique key for this thread (used to identify the thread)"
-msgstr ""
+msgstr "이 스레드의 고유 키(스레드 식별에 사용)"
#: common/models.py:3187
msgid "Unique identifier for this thread"
-msgstr ""
+msgstr "이 스레드의 고유 식별자"
#: common/models.py:3194
msgid "Started Internal"
-msgstr ""
+msgstr "내부 시작"
#: common/models.py:3195
msgid "Was this thread started internally?"
-msgstr ""
+msgstr "이 스레드는 내부에서 시작되었나요?"
#: common/models.py:3200
msgid "Date and time that the thread was created"
-msgstr ""
+msgstr "스레드가 생성된 날짜 및 시간"
#: common/models.py:3205
msgid "Date and time that the thread was last updated"
-msgstr ""
+msgstr "스레드가 마지막으로 업데이트된 날짜 및 시간"
#: common/notifications.py:57
#, python-brace-format
msgid "New {verbose_name}"
-msgstr ""
+msgstr "새 {verbose_name}"
#: common/notifications.py:59
msgid "A new order has been created and assigned to you"
-msgstr ""
+msgstr "새 주문이 생성되어 귀하에게 할당되었습니다"
#: common/notifications.py:65
#, python-brace-format
msgid "{verbose_name} canceled"
-msgstr ""
+msgstr "{verbose_name} 취소됨"
#: common/notifications.py:67
msgid "A order that is assigned to you was canceled"
-msgstr ""
+msgstr "귀하에게 할당된 주문이 취소되었습니다"
#: common/notifications.py:73 common/notifications.py:80 order/api.py:605
msgid "Items Received"
-msgstr ""
+msgstr "항목 수령됨"
#: common/notifications.py:75
msgid "Items have been received against a purchase order"
-msgstr ""
+msgstr "구매 주문에 대한 항목을 수령했습니다"
#: common/notifications.py:82
msgid "Items have been received against a return order"
-msgstr ""
+msgstr "반품 주문에 대한 항목을 수령했습니다"
#: common/serializers.py:125
msgid "Indicates if changing this setting requires confirmation"
-msgstr ""
+msgstr "이 설정 변경에 확인이 필요한지 여부를 나타냅니다"
#: common/serializers.py:139
msgid "This setting requires confirmation before changing. Please confirm the change."
-msgstr ""
+msgstr "이 설정은 변경 전에 확인이 필요합니다. 변경을 확인해 주세요."
#: common/serializers.py:172
msgid "Indicates if the setting is overridden by an environment variable"
-msgstr ""
+msgstr "이 설정이 환경 변수로 재정의되었는지 여부를 나타냅니다"
#: common/serializers.py:174
msgid "Override"
-msgstr ""
+msgstr "재정의"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
-msgstr ""
+msgstr "실행 중"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
-msgstr ""
+msgstr "대기 중인 작업"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
-msgstr ""
+msgstr "예약된 작업"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
-msgstr ""
+msgstr "실패한 작업"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
-msgstr ""
+msgstr "작업 ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
-msgstr ""
+msgstr "고유 작업 ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
-msgstr ""
+msgstr "잠금"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
-msgstr ""
+msgstr "잠금 시간"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
-msgstr ""
+msgstr "작업 이름"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
-msgstr ""
+msgstr "함수"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
-msgstr ""
+msgstr "함수 이름"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
-msgstr ""
+msgstr "인수"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
-msgstr ""
+msgstr "작업 인수"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
-msgstr ""
+msgstr "키워드 인수"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
-msgstr ""
+msgstr "작업 키워드 인수"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
-msgstr ""
+msgstr "파일명"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
-msgstr ""
+msgstr "모델 유형"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
-msgstr ""
+msgstr "이 모델의 첨부파일을 생성하거나 편집할 권한이 없습니다"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
-msgstr ""
+msgstr "이 모델의 매개변수를 생성하거나 편집할 권한이 없습니다"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
-msgstr ""
+msgstr "선택 목록이 잠겨 있습니다"
#: common/setting/system.py:97
msgid "No group"
-msgstr ""
+msgstr "그룹 없음"
#: common/setting/system.py:170
msgid "Site URL is locked by configuration"
-msgstr ""
+msgstr "사이트 URL이 구성에 의해 잠겨 있습니다"
#: common/setting/system.py:187
msgid "Restart required"
-msgstr ""
+msgstr "재시작 필요"
#: common/setting/system.py:188
msgid "A setting has been changed which requires a server restart"
-msgstr ""
+msgstr "서버 재시작이 필요한 설정이 변경되었습니다"
#: common/setting/system.py:194
msgid "Pending migrations"
-msgstr ""
+msgstr "대기 중인 마이그레이션"
#: common/setting/system.py:195
msgid "Number of pending database migrations"
-msgstr ""
+msgstr "대기 중인 데이터베이스 마이그레이션 수"
#: common/setting/system.py:200
msgid "Active warning codes"
-msgstr ""
+msgstr "활성 경고 코드"
#: common/setting/system.py:201
msgid "A dict of active warning codes"
-msgstr ""
+msgstr "활성 경고 코드의 딕셔너리"
#: common/setting/system.py:207
msgid "Instance ID"
-msgstr ""
+msgstr "인스턴스 ID"
#: common/setting/system.py:208
msgid "Unique identifier for this InvenTree instance"
-msgstr ""
+msgstr "이 InvenTree 인스턴스의 고유 식별자"
#: common/setting/system.py:213
msgid "Announce ID"
-msgstr ""
+msgstr "ID 알림"
#: common/setting/system.py:215
msgid "Announce the instance ID of the server in the server status info (unauthenticated)"
-msgstr ""
+msgstr "서버 상태 정보(인증 없음)에 서버 인스턴스 ID를 알립니다"
#: common/setting/system.py:221
msgid "Server Instance Name"
-msgstr ""
+msgstr "서버 인스턴스 이름"
#: common/setting/system.py:223
msgid "String descriptor for the server instance"
-msgstr ""
+msgstr "서버 인스턴스를 설명하는 문자열"
#: common/setting/system.py:227
msgid "Use instance name"
-msgstr ""
+msgstr "인스턴스 이름 사용"
#: common/setting/system.py:228
msgid "Use the instance name in the title-bar"
-msgstr ""
+msgstr "제목 표시줄에 인스턴스 이름을 사용합니다"
#: common/setting/system.py:233
msgid "Restrict showing `about`"
-msgstr ""
+msgstr "`about` 표시 제한"
#: common/setting/system.py:234
msgid "Show the `about` modal only to superusers"
-msgstr ""
+msgstr "`about` 모달을 슈퍼유저에게만 표시합니다"
#: common/setting/system.py:239
msgid "Show superuser banner"
-msgstr ""
+msgstr "슈퍼유저 배너 표시"
#: common/setting/system.py:240
msgid "Show a warning banner in the UI when logged in as superuser"
-msgstr ""
+msgstr "슈퍼유저로 로그인했을 때 UI에 경고 배너를 표시합니다"
#: common/setting/system.py:245
msgid "Show admin banner"
-msgstr ""
+msgstr "관리자 배너 표시"
#: common/setting/system.py:246
msgid "Show a warning banner in the UI when logged in as admin"
-msgstr ""
+msgstr "관리자로 로그인했을 때 UI에 경고 배너를 표시합니다"
#: common/setting/system.py:251 company/models.py:147 company/models.py:148
msgid "Company name"
-msgstr ""
+msgstr "회사명"
#: common/setting/system.py:252
msgid "Internal company name"
-msgstr ""
+msgstr "내부 회사명"
#: common/setting/system.py:256
msgid "Base URL"
-msgstr ""
+msgstr "기본 URL"
#: common/setting/system.py:257
msgid "Base URL for server instance"
-msgstr ""
+msgstr "서버 인스턴스의 기본 URL"
#: common/setting/system.py:263
msgid "Default Currency"
-msgstr ""
+msgstr "기본 통화"
#: common/setting/system.py:264
msgid "Select base currency for pricing calculations"
-msgstr ""
+msgstr "가격 계산에 사용할 기준 통화를 선택합니다"
#: common/setting/system.py:270
msgid "Supported Currencies"
-msgstr ""
+msgstr "지원 통화"
#: common/setting/system.py:271
msgid "List of supported currency codes"
-msgstr ""
+msgstr "지원하는 통화 코드 목록"
#: common/setting/system.py:277
msgid "Currency Update Interval"
-msgstr ""
+msgstr "환율 업데이트 간격"
#: common/setting/system.py:278
msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
+msgstr "환율을 업데이트하는 주기(0으로 설정하면 비활성화)"
#: common/setting/system.py:280 common/setting/system.py:320
#: common/setting/system.py:333 common/setting/system.py:341
@@ -2609,2244 +2609,2256 @@ msgstr ""
#: common/setting/system.py:1143 common/setting/system.py:1159
#: common/setting/system.py:1176
msgid "days"
-msgstr ""
+msgstr "일"
#: common/setting/system.py:284
msgid "Currency Update Plugin"
-msgstr ""
+msgstr "환율 업데이트 플러그인"
#: common/setting/system.py:285
msgid "Currency update plugin to use"
-msgstr ""
+msgstr "사용할 환율 업데이트 플러그인"
#: common/setting/system.py:290
msgid "Download from URL"
-msgstr ""
+msgstr "URL에서 다운로드"
#: common/setting/system.py:291
msgid "Allow download of remote images and files from external URL"
-msgstr ""
+msgstr "외부 URL에서 원격 이미지 및 파일 다운로드를 허용합니다"
#: common/setting/system.py:296
msgid "Download Size Limit"
-msgstr ""
+msgstr "다운로드 크기 제한"
#: common/setting/system.py:297
msgid "Maximum allowable download size for remote image"
-msgstr ""
+msgstr "원격 이미지의 최대 허용 다운로드 크기"
#: common/setting/system.py:303
msgid "User-agent used to download from URL"
-msgstr ""
+msgstr "URL 다운로드에 사용할 User-Agent"
#: common/setting/system.py:305
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
-msgstr ""
+msgstr "외부 URL에서 이미지 및 파일 다운로드에 사용되는 User-Agent를 재정의할 수 있습니다(비워두면 기본값)"
#: common/setting/system.py:310
msgid "Strict URL Validation"
-msgstr ""
+msgstr "엄격한 URL 검증"
#: common/setting/system.py:311
msgid "Require schema specification when validating URLs"
-msgstr ""
+msgstr "URL 검증 시 스키마 지정을 요구합니다"
#: common/setting/system.py:316
msgid "Update Check Interval"
-msgstr ""
+msgstr "업데이트 확인 간격"
#: common/setting/system.py:317
msgid "How often to check for updates (set to zero to disable)"
-msgstr ""
+msgstr "업데이트를 확인하는 주기(0으로 설정하면 비활성화)"
#: common/setting/system.py:323
msgid "Automatic Backup"
-msgstr ""
+msgstr "자동 백업"
#: common/setting/system.py:324
msgid "Enable automatic backup of database and media files"
-msgstr ""
+msgstr "데이터베이스 및 미디어 파일의 자동 백업을 활성화합니다"
#: common/setting/system.py:329
msgid "Auto Backup Interval"
-msgstr ""
+msgstr "자동 백업 간격"
#: common/setting/system.py:330
msgid "Specify number of days between automated backup events"
-msgstr ""
+msgstr "자동 백업 이벤트 사이의 일 수를 지정합니다"
#: common/setting/system.py:336
msgid "Task Deletion Interval"
-msgstr ""
+msgstr "작업 삭제 간격"
#: common/setting/system.py:338
msgid "Background task results will be deleted after specified number of days"
-msgstr ""
+msgstr "백그라운드 작업 결과는 지정한 일 수 이후 삭제됩니다"
#: common/setting/system.py:345
msgid "Error Log Deletion Interval"
-msgstr ""
+msgstr "오류 로그 삭제 간격"
#: common/setting/system.py:346
msgid "Error logs will be deleted after specified number of days"
-msgstr ""
+msgstr "오류 로그는 지정한 일 수 이후 삭제됩니다"
#: common/setting/system.py:352
msgid "Notification Deletion Interval"
-msgstr ""
+msgstr "알림 삭제 간격"
#: common/setting/system.py:354
msgid "User notifications will be deleted after specified number of days"
-msgstr ""
+msgstr "사용자 알림은 지정한 일 수 이후 삭제됩니다"
#: common/setting/system.py:361
msgid "Email Deletion Interval"
-msgstr ""
+msgstr "이메일 삭제 간격"
#: common/setting/system.py:363
msgid "Email messages will be deleted after specified number of days"
-msgstr ""
+msgstr "이메일 메시지는 지정한 일 수 이후 삭제됩니다"
#: common/setting/system.py:370
msgid "Protect Email Log"
-msgstr ""
+msgstr "이메일 로그 보호"
#: common/setting/system.py:371
msgid "Prevent deletion of email log entries"
-msgstr ""
+msgstr "이메일 로그 항목 삭제를 방지합니다"
#: common/setting/system.py:376
msgid "Barcode Support"
-msgstr ""
+msgstr "바코드 지원"
#: common/setting/system.py:377
msgid "Enable barcode scanner support in the web interface"
-msgstr ""
+msgstr "웹 인터페이스에서 바코드 스캐너 지원을 활성화합니다"
#: common/setting/system.py:382
msgid "Store Barcode Results"
-msgstr ""
+msgstr "바코드 결과 저장"
#: common/setting/system.py:383
msgid "Store barcode scan results in the database"
-msgstr ""
+msgstr "바코드 스캔 결과를 데이터베이스에 저장합니다"
#: common/setting/system.py:388
msgid "Barcode Scans Maximum Count"
-msgstr ""
+msgstr "바코드 스캔 최대 개수"
#: common/setting/system.py:389
msgid "Maximum number of barcode scan results to store"
-msgstr ""
+msgstr "저장할 바코드 스캔 결과의 최대 개수"
#: common/setting/system.py:394
msgid "Barcode Input Delay"
-msgstr ""
+msgstr "바코드 입력 지연"
#: common/setting/system.py:395
msgid "Barcode input processing delay time"
-msgstr ""
+msgstr "바코드 입력 처리 지연 시간"
#: common/setting/system.py:401
msgid "Barcode Webcam Support"
-msgstr ""
+msgstr "바코드 웹캠 지원"
#: common/setting/system.py:402
msgid "Allow barcode scanning via webcam in browser"
-msgstr ""
+msgstr "브라우저에서 웹캠을 통한 바코드 스캔을 허용합니다"
#: common/setting/system.py:407
msgid "Barcode Show Data"
-msgstr ""
+msgstr "바코드 데이터 표시"
#: common/setting/system.py:408
msgid "Display barcode data in browser as text"
-msgstr ""
+msgstr "브라우저에 바코드 데이터를 텍스트로 표시합니다"
#: common/setting/system.py:413
msgid "Barcode Generation Plugin"
-msgstr ""
+msgstr "바코드 생성 플러그인"
#: common/setting/system.py:414
msgid "Plugin to use for internal barcode data generation"
-msgstr ""
+msgstr "내부 바코드 데이터 생성에 사용할 플러그인"
#: common/setting/system.py:419
msgid "Part Revisions"
-msgstr ""
+msgstr "부품 리비전"
#: common/setting/system.py:420
msgid "Enable revision field for Part"
-msgstr ""
+msgstr "부품에 리비전 필드를 활성화합니다"
#: common/setting/system.py:425
msgid "Assembly Revision Only"
-msgstr ""
+msgstr "조립품 리비전만"
#: common/setting/system.py:426
msgid "Only allow revisions for assembly parts"
-msgstr ""
+msgstr "조립 부품에만 리비전을 허용합니다"
#: common/setting/system.py:431
msgid "Allow Deletion from Assembly"
-msgstr ""
+msgstr "조립품에서 삭제 허용"
#: common/setting/system.py:432
msgid "Allow deletion of parts which are used in an assembly"
-msgstr ""
+msgstr "조립품에 사용되는 부품의 삭제를 허용합니다"
#: common/setting/system.py:437
msgid "IPN Regex"
-msgstr ""
+msgstr "IPN 정규식"
#: common/setting/system.py:438
msgid "Regular expression pattern for matching Part IPN"
-msgstr ""
+msgstr "부품 IPN과 일치시키기 위한 정규식 패턴"
#: common/setting/system.py:441
msgid "Allow Duplicate IPN"
-msgstr ""
+msgstr "IPN 중복 허용"
#: common/setting/system.py:442
msgid "Allow multiple parts to share the same IPN"
-msgstr ""
+msgstr "여러 부품이 동일한 IPN을 공유하도록 허용합니다"
#: common/setting/system.py:447
msgid "Allow Editing IPN"
-msgstr ""
+msgstr "IPN 편집 허용"
#: common/setting/system.py:448
msgid "Allow changing the IPN value while editing a part"
-msgstr ""
+msgstr "부품 편집 중 IPN 값 변경을 허용합니다"
#: common/setting/system.py:453
msgid "Copy Part BOM Data"
-msgstr ""
+msgstr "부품 BOM 데이터 복사"
#: common/setting/system.py:454
msgid "Copy BOM data by default when duplicating a part"
-msgstr ""
+msgstr "부품을 복제할 때 기본으로 BOM 데이터를 복사합니다"
#: common/setting/system.py:459
msgid "Copy Part Parameter Data"
-msgstr ""
+msgstr "부품 매개변수 데이터 복사"
#: common/setting/system.py:460
msgid "Copy parameter data by default when duplicating a part"
-msgstr ""
+msgstr "부품을 복제할 때 기본으로 매개변수 데이터를 복사합니다"
#: common/setting/system.py:465
msgid "Copy Part Test Data"
-msgstr ""
+msgstr "부품 테스트 데이터 복사"
#: common/setting/system.py:466
msgid "Copy test data by default when duplicating a part"
-msgstr ""
+msgstr "부품을 복제할 때 기본으로 테스트 데이터를 복사합니다"
#: common/setting/system.py:471
msgid "Copy Category Parameter Templates"
-msgstr ""
+msgstr "카테고리 매개변수 템플릿 복사"
#: common/setting/system.py:472
msgid "Copy category parameter templates when creating a part"
-msgstr ""
+msgstr "부품을 생성할 때 카테고리 매개변수 템플릿을 복사합니다"
#: common/setting/system.py:478
msgid "Parts are templates by default"
-msgstr ""
+msgstr "부품은 기본적으로 템플릿입니다"
#: common/setting/system.py:484
msgid "Parts can be assembled from other components by default"
-msgstr ""
+msgstr "부품은 기본적으로 다른 구성요소로 조립할 수 있습니다"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
-msgstr ""
+msgstr "구성요소"
#: common/setting/system.py:490
msgid "Parts can be used as sub-components by default"
-msgstr ""
+msgstr "부품은 기본적으로 하위 구성요소로 사용할 수 있습니다"
#: common/setting/system.py:495 part/models.py:1271
msgid "Purchaseable"
-msgstr ""
+msgstr "구매 가능"
#: common/setting/system.py:496
msgid "Parts are purchaseable by default"
-msgstr ""
+msgstr "부품은 기본적으로 구매 가능합니다"
#: common/setting/system.py:501 part/models.py:1277 stock/api.py:642
msgid "Salable"
-msgstr ""
+msgstr "판매 가능"
#: common/setting/system.py:502
msgid "Parts are salable by default"
-msgstr ""
+msgstr "부품은 기본적으로 판매 가능합니다"
#: common/setting/system.py:508
msgid "Parts are trackable by default"
-msgstr ""
+msgstr "부품은 기본적으로 추적 가능합니다"
#: common/setting/system.py:513 part/models.py:1293
msgid "Virtual"
-msgstr ""
+msgstr "가상"
#: common/setting/system.py:514
msgid "Parts are virtual by default"
-msgstr ""
+msgstr "부품은 기본적으로 가상입니다"
#: common/setting/system.py:519
msgid "Show related parts"
-msgstr ""
+msgstr "관련 부품 표시"
#: common/setting/system.py:520
msgid "Display related parts for a part"
-msgstr ""
+msgstr "부품에 대한 관련 부품을 표시합니다"
#: common/setting/system.py:525
msgid "Initial Stock Data"
-msgstr ""
+msgstr "초기 재고 데이터"
#: common/setting/system.py:526
msgid "Allow creation of initial stock when adding a new part"
-msgstr ""
+msgstr "새 부품 추가 시 초기 재고 생성을 허용합니다"
#: common/setting/system.py:531
msgid "Initial Supplier Data"
-msgstr ""
+msgstr "초기 공급업체 데이터"
#: common/setting/system.py:533
msgid "Allow creation of initial supplier data when adding a new part"
-msgstr ""
+msgstr "새 부품 추가 시 초기 공급업체 데이터 생성을 허용합니다"
#: common/setting/system.py:539
msgid "Part Name Display Format"
-msgstr ""
+msgstr "부품명 표시 형식"
#: common/setting/system.py:540
msgid "Format to display the part name"
-msgstr ""
+msgstr "부품명을 표시하는 형식"
#: common/setting/system.py:546
msgid "Part Category Default Icon"
-msgstr ""
+msgstr "부품 카테고리 기본 아이콘"
#: common/setting/system.py:547
msgid "Part category default icon (empty means no icon)"
-msgstr ""
+msgstr "부품 카테고리 기본 아이콘(비워두면 아이콘 없음)"
#: common/setting/system.py:552
msgid "Minimum Pricing Decimal Places"
-msgstr ""
+msgstr "가격 최소 소수 자릿수"
#: common/setting/system.py:554
msgid "Minimum number of decimal places to display when rendering pricing data"
-msgstr ""
+msgstr "가격 데이터를 표시할 때 최소 소수 자릿수"
#: common/setting/system.py:565
msgid "Maximum Pricing Decimal Places"
-msgstr ""
+msgstr "가격 최대 소수 자릿수"
#: common/setting/system.py:567
msgid "Maximum number of decimal places to display when rendering pricing data"
-msgstr ""
+msgstr "가격 데이터를 표시할 때 최대 소수 자릿수"
#: common/setting/system.py:578
msgid "Use Supplier Pricing"
-msgstr ""
+msgstr "공급업체 가격 사용"
#: common/setting/system.py:580
msgid "Include supplier price breaks in overall pricing calculations"
-msgstr ""
+msgstr "전체 가격 계산에 공급업체 수량별 가격을 포함합니다"
#: common/setting/system.py:586
msgid "Purchase History Override"
-msgstr ""
+msgstr "구매 이력 우선"
#: common/setting/system.py:588
msgid "Historical purchase order pricing overrides supplier price breaks"
-msgstr ""
+msgstr "과거 구매 주문 가격이 공급업체 수량별 가격보다 우선합니다"
#: common/setting/system.py:594
msgid "Use Stock Item Pricing"
-msgstr ""
+msgstr "재고 항목 가격 사용"
#: common/setting/system.py:596
msgid "Use pricing from manually entered stock data for pricing calculations"
-msgstr ""
+msgstr "가격 계산에 수동으로 입력한 재고 데이터의 가격을 사용합니다"
#: common/setting/system.py:602
msgid "Stock Item Pricing Age"
-msgstr ""
+msgstr "재고 항목 가격 유효 기간"
#: common/setting/system.py:604
msgid "Exclude stock items older than this number of days from pricing calculations"
-msgstr ""
+msgstr "가격 계산에서 지정한 일 수보다 오래된 재고 항목을 제외합니다"
#: common/setting/system.py:611
msgid "Use Variant Pricing"
-msgstr ""
+msgstr "변형(Variant) 가격 사용"
#: common/setting/system.py:612
msgid "Include variant pricing in overall pricing calculations"
-msgstr ""
+msgstr "전체 가격 계산에 변형(Variant) 가격을 포함합니다"
#: common/setting/system.py:617
msgid "Active Variants Only"
-msgstr ""
+msgstr "활성 변형만"
#: common/setting/system.py:619
msgid "Only use active variant parts for calculating variant pricing"
-msgstr ""
+msgstr "변형(Variant) 가격 계산에 활성 변형 부품만 사용합니다"
#: common/setting/system.py:625
msgid "Auto Update Pricing"
-msgstr ""
+msgstr "가격 자동 업데이트"
#: common/setting/system.py:627
msgid "Automatically update part pricing when internal data changes"
-msgstr ""
+msgstr "내부 데이터가 변경되면 부품 가격을 자동으로 업데이트"
#: common/setting/system.py:633
msgid "Pricing Rebuild Interval"
-msgstr ""
+msgstr "가격 재구성 간격"
#: common/setting/system.py:634
msgid "Number of days before part pricing is automatically updated"
-msgstr ""
+msgstr "부품 가격이 자동으로 업데이트되기까지의 일 수"
#: common/setting/system.py:640
msgid "Internal Prices"
-msgstr ""
+msgstr "내부 가격"
#: common/setting/system.py:641
msgid "Enable internal prices for parts"
-msgstr ""
+msgstr "부품에 대해 내부 가격 사용"
#: common/setting/system.py:646
msgid "Internal Price Override"
-msgstr ""
+msgstr "내부 가격 우선 적용"
#: common/setting/system.py:648
msgid "If available, internal prices override price range calculations"
-msgstr ""
+msgstr "가능한 경우 내부 가격이 가격 범위 계산보다 우선합니다"
#: common/setting/system.py:654
msgid "Allow BOM Zero Quantity"
-msgstr ""
+msgstr "BOM 수량 0 허용"
#: common/setting/system.py:656
msgid "Accept a zero quantity for BOM item for part. Enables using setup quantity to define a quantity required per build, independent of build quantity"
-msgstr ""
+msgstr "부품의 BOM 항목에 수량 0을 허용합니다. 설정 수량을 사용해 빌드 수량과 무관하게 빌드당 필요한 수량을 정의할 수 있습니다"
#: common/setting/system.py:662
msgid "Enable label printing"
-msgstr ""
+msgstr "라벨 인쇄 사용"
#: common/setting/system.py:663
msgid "Enable label printing from the web interface"
-msgstr ""
+msgstr "웹 인터페이스에서 라벨 인쇄를 사용합니다"
#: common/setting/system.py:668
msgid "Label Image DPI"
-msgstr ""
+msgstr "라벨 이미지 DPI"
#: common/setting/system.py:670
msgid "DPI resolution when generating image files to supply to label printing plugins"
-msgstr ""
+msgstr "라벨 인쇄 플러그인에 제공할 이미지 파일 생성 시 DPI 해상도"
#: common/setting/system.py:676
msgid "Enable Reports"
-msgstr ""
+msgstr "보고서 사용"
#: common/setting/system.py:677
msgid "Enable generation of reports"
-msgstr ""
+msgstr "보고서 생성을 사용합니다"
#: common/setting/system.py:682
msgid "Debug Mode"
-msgstr ""
+msgstr "디버그 모드"
#: common/setting/system.py:683
msgid "Generate reports in debug mode (HTML output)"
-msgstr ""
+msgstr "디버그 모드에서 보고서 생성(HTML 출력)"
#: common/setting/system.py:688
msgid "Log Report Errors"
-msgstr ""
+msgstr "보고서 오류 로그"
#: common/setting/system.py:689
msgid "Log errors which occur when generating reports"
-msgstr ""
+msgstr "보고서 생성 중 발생하는 오류를 기록합니다"
#: common/setting/system.py:694 plugin/builtin/labels/label_sheet.py:29
#: report/models.py:384
msgid "Page Size"
-msgstr ""
+msgstr "페이지 크기"
#: common/setting/system.py:695
msgid "Default page size for PDF reports"
-msgstr ""
+msgstr "PDF 보고서의 기본 페이지 크기"
#: common/setting/system.py:700
msgid "Enforce Parameter Units"
-msgstr ""
+msgstr "매개변수 단위 강제"
#: common/setting/system.py:702
msgid "If units are provided, parameter values must match the specified units"
-msgstr ""
+msgstr "단위가 제공된 경우, 매개변수 값은 지정된 단위와 일치해야 합니다"
#: common/setting/system.py:708
msgid "Globally Unique Serials"
-msgstr ""
+msgstr "전역 고유 시리얼"
#: common/setting/system.py:709
msgid "Serial numbers for stock items must be globally unique"
-msgstr ""
+msgstr "재고 항목의 시리얼 번호는 전역적으로 고유해야 합니다"
#: common/setting/system.py:714
msgid "Delete Depleted Stock"
-msgstr ""
+msgstr "소진된 재고 삭제"
#: common/setting/system.py:715
msgid "Determines default behavior when a stock item is depleted"
-msgstr ""
+msgstr "재고 항목이 소진되었을 때의 기본 동작을 결정합니다"
#: common/setting/system.py:720
msgid "Batch Code Template"
-msgstr ""
+msgstr "배치 코드 템플릿"
#: common/setting/system.py:721
msgid "Template for generating default batch codes for stock items"
-msgstr ""
+msgstr "재고 항목의 기본 배치 코드를 생성하기 위한 템플릿"
#: common/setting/system.py:725
msgid "Stock Expiry"
-msgstr ""
+msgstr "재고 만료"
#: common/setting/system.py:726
msgid "Enable stock expiry functionality"
-msgstr ""
+msgstr "재고 만료 기능 사용"
#: common/setting/system.py:731
msgid "Sell Expired Stock"
-msgstr ""
+msgstr "만료 재고 판매"
#: common/setting/system.py:732
msgid "Allow sale of expired stock"
-msgstr ""
+msgstr "만료된 재고의 판매를 허용합니다"
#: common/setting/system.py:737
msgid "Stock Stale Time"
-msgstr ""
+msgstr "재고 경과 시간"
#: common/setting/system.py:739
msgid "Number of days stock items are considered stale before expiring"
-msgstr ""
+msgstr "만료 전 재고 항목을 오래된 것으로 간주하는 일 수"
#: common/setting/system.py:746
msgid "Build Expired Stock"
-msgstr ""
+msgstr "만료 재고로 빌드"
#: common/setting/system.py:747
msgid "Allow building with expired stock"
-msgstr ""
+msgstr "만료된 재고로 빌드하는 것을 허용합니다"
#: common/setting/system.py:752
msgid "Stock Ownership Control"
-msgstr ""
+msgstr "재고 소유권 제어"
#: common/setting/system.py:753
msgid "Enable ownership control over stock locations and items"
-msgstr ""
+msgstr "재고 위치 및 항목에 대한 소유권 제어를 사용합니다"
#: common/setting/system.py:758
msgid "Stock Location Default Icon"
-msgstr ""
+msgstr "재고 위치 기본 아이콘"
#: common/setting/system.py:759
msgid "Stock location default icon (empty means no icon)"
-msgstr ""
+msgstr "재고 위치 기본 아이콘(비어 있으면 아이콘 없음)"
#: common/setting/system.py:764
msgid "Show Installed Stock Items"
-msgstr ""
+msgstr "설치된 재고 항목 표시"
#: common/setting/system.py:765
msgid "Display installed stock items in stock tables"
-msgstr ""
+msgstr "재고 표에서 설치된 재고 항목을 표시합니다"
#: common/setting/system.py:770
msgid "Check BOM when installing items"
-msgstr ""
+msgstr "항목 설치 시 BOM 확인"
#: common/setting/system.py:772
msgid "Installed stock items must exist in the BOM for the parent part"
-msgstr ""
+msgstr "설치된 재고 항목은 상위 부품의 BOM에 존재해야 합니다"
#: common/setting/system.py:778
msgid "Allow Out of Stock Transfer"
-msgstr ""
+msgstr "재고 없음 상태 이동 허용"
#: common/setting/system.py:780
msgid "Allow stock items which are not in stock to be transferred between stock locations"
-msgstr ""
+msgstr "재고가 없는 재고 항목을 재고 위치 간에 이동할 수 있도록 허용합니다"
#: common/setting/system.py:786
msgid "Build Order Reference Pattern"
-msgstr ""
+msgstr "작업 지시서 참조번호 패턴"
#: common/setting/system.py:787
msgid "Required pattern for generating Build Order reference field"
-msgstr ""
+msgstr "작업 지시서 참조번호 필드를 생성하기 위한 필수 패턴"
#: common/setting/system.py:792 common/setting/system.py:852
#: common/setting/system.py:872 common/setting/system.py:916
msgid "Require Responsible Owner"
-msgstr ""
+msgstr "책임자 필수"
#: common/setting/system.py:793 common/setting/system.py:853
#: common/setting/system.py:873 common/setting/system.py:917
msgid "A responsible owner must be assigned to each order"
-msgstr ""
+msgstr "각 주문에는 책임자가 지정되어야 합니다"
#: common/setting/system.py:798
msgid "Require Active Part"
-msgstr ""
+msgstr "활성 부품 필수"
#: common/setting/system.py:799
msgid "Prevent build order creation for inactive parts"
-msgstr ""
+msgstr "비활성 부품에 대해 작업 지시서 생성을 방지합니다"
#: common/setting/system.py:804
msgid "Require Locked Part"
-msgstr ""
+msgstr "잠긴 부품 필수"
#: common/setting/system.py:805
msgid "Prevent build order creation for unlocked parts"
-msgstr ""
+msgstr "잠기지 않은 부품에 대해 작업 지시서 생성을 방지합니다"
#: common/setting/system.py:810
msgid "Require Valid BOM"
-msgstr ""
+msgstr "유효한 BOM 필수"
#: common/setting/system.py:811
msgid "Prevent build order creation unless BOM has been validated"
-msgstr ""
+msgstr "BOM이 검증되지 않으면 작업 지시서 생성을 방지합니다"
#: common/setting/system.py:816
msgid "Require Closed Child Orders"
-msgstr ""
+msgstr "하위 주문 종료 필수"
#: common/setting/system.py:818
msgid "Prevent build order completion until all child orders are closed"
-msgstr ""
+msgstr "모든 하위 주문이 종료될 때까지 작업 지시서 완료를 방지합니다"
#: common/setting/system.py:824
msgid "External Build Orders"
-msgstr ""
+msgstr "외주 생산 작업 지시서"
#: common/setting/system.py:825
msgid "Enable external build order functionality"
-msgstr ""
+msgstr "외주 생산 작업 지시서 기능 사용"
#: common/setting/system.py:830
msgid "Block Until Tests Pass"
-msgstr ""
+msgstr "테스트 통과 전까지 차단"
#: common/setting/system.py:832
msgid "Prevent build outputs from being completed until all required tests pass"
-msgstr ""
+msgstr "필수 테스트가 모두 통과될 때까지 생산 완제품 완료를 방지합니다"
#: common/setting/system.py:838
msgid "Enable Return Orders"
-msgstr ""
+msgstr "반품 주문 사용"
#: common/setting/system.py:839
msgid "Enable return order functionality in the user interface"
-msgstr ""
+msgstr "사용자 인터페이스에서 반품 주문 기능을 사용합니다"
#: common/setting/system.py:844
msgid "Return Order Reference Pattern"
-msgstr ""
+msgstr "반품 주문 참조 패턴"
#: common/setting/system.py:846
msgid "Required pattern for generating Return Order reference field"
-msgstr ""
+msgstr "반품 주문 참조 필드를 생성하기 위한 필수 패턴"
#: common/setting/system.py:858
msgid "Edit Completed Return Orders"
-msgstr ""
+msgstr "완료된 반품 주문 편집"
#: common/setting/system.py:860
msgid "Allow editing of return orders after they have been completed"
-msgstr ""
+msgstr "반품 주문이 완료된 후에도 편집을 허용합니다"
#: common/setting/system.py:866
msgid "Sales Order Reference Pattern"
-msgstr ""
+msgstr "판매 주문 참조 패턴"
#: common/setting/system.py:867
msgid "Required pattern for generating Sales Order reference field"
-msgstr ""
+msgstr "판매 주문 참조 필드를 생성하기 위한 필수 패턴"
#: common/setting/system.py:878
msgid "Sales Order Default Shipment"
-msgstr ""
+msgstr "판매 주문 기본 배송"
#: common/setting/system.py:879
msgid "Enable creation of default shipment with sales orders"
-msgstr ""
+msgstr "판매 주문과 함께 기본 배송 생성 사용"
#: common/setting/system.py:884
msgid "Edit Completed Sales Orders"
-msgstr ""
+msgstr "완료된 판매 주문 편집"
#: common/setting/system.py:886
msgid "Allow editing of sales orders after they have been shipped or completed"
-msgstr ""
+msgstr "판매 주문이 배송되었거나 완료된 후에도 편집을 허용합니다"
#: common/setting/system.py:892
msgid "Shipment Requires Checking"
-msgstr ""
+msgstr "배송 확인 필요"
#: common/setting/system.py:894
msgid "Prevent completion of shipments until items have been checked"
-msgstr ""
+msgstr "항목이 확인될 때까지 배송 완료를 방지합니다"
#: common/setting/system.py:900
msgid "Mark Shipped Orders as Complete"
-msgstr ""
+msgstr "배송된 주문을 완료로 표시"
#: common/setting/system.py:902
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
-msgstr ""
+msgstr "\"배송됨\" 상태를 건너뛰고, 배송된 것으로 표시된 판매 주문을 자동으로 완료 처리합니다"
#: common/setting/system.py:908
msgid "Purchase Order Reference Pattern"
-msgstr ""
+msgstr "구매 주문 참조 패턴"
#: common/setting/system.py:910
msgid "Required pattern for generating Purchase Order reference field"
-msgstr ""
+msgstr "구매 주문 참조 필드를 생성하기 위한 필수 패턴"
#: common/setting/system.py:922
msgid "Edit Completed Purchase Orders"
-msgstr ""
+msgstr "완료된 구매 주문 편집"
#: common/setting/system.py:924
msgid "Allow editing of purchase orders after they have been shipped or completed"
-msgstr ""
+msgstr "구매 주문이 배송되었거나 완료된 후에도 편집을 허용합니다"
#: common/setting/system.py:930
msgid "Convert Currency"
-msgstr ""
+msgstr "통화 변환"
#: common/setting/system.py:931
msgid "Convert item value to base currency when receiving stock"
-msgstr ""
+msgstr "재고 수령 시 항목 값을 기준 통화로 변환합니다"
#: common/setting/system.py:936
msgid "Auto Complete Purchase Orders"
-msgstr ""
+msgstr "구매 주문 자동 완료"
#: common/setting/system.py:938
msgid "Automatically mark purchase orders as complete when all line items are received"
-msgstr ""
+msgstr "모든 라인 항목을 수령하면 구매 주문을 자동으로 완료로 표시합니다"
#: common/setting/system.py:945
msgid "Enable password forgot"
-msgstr ""
+msgstr "비밀번호 찾기 사용"
#: common/setting/system.py:946
msgid "Enable password forgot function on the login pages"
-msgstr ""
+msgstr "로그인 페이지에서 비밀번호 찾기 기능을 사용합니다"
#: common/setting/system.py:951
msgid "Enable registration"
-msgstr ""
+msgstr "회원가입 사용"
#: common/setting/system.py:952
msgid "Enable self-registration for users on the login pages"
-msgstr ""
+msgstr "로그인 페이지에서 사용자 자기 등록(회원가입)을 사용합니다"
#: common/setting/system.py:957
msgid "Enable SSO"
-msgstr ""
+msgstr "SSO 사용"
#: common/setting/system.py:958
msgid "Enable SSO on the login pages"
-msgstr ""
+msgstr "로그인 페이지에서 SSO를 사용합니다"
#: common/setting/system.py:963
msgid "Enable SSO registration"
-msgstr ""
+msgstr "SSO 등록 사용"
#: common/setting/system.py:965
msgid "Enable self-registration via SSO for users on the login pages"
-msgstr ""
+msgstr "로그인 페이지에서 SSO를 통한 자기 등록(회원가입)을 사용합니다"
#: common/setting/system.py:971
msgid "Enable SSO group sync"
-msgstr ""
+msgstr "SSO 그룹 동기화 사용"
#: common/setting/system.py:973
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
-msgstr ""
+msgstr "IdP에서 제공하는 그룹과 InvenTree 그룹의 동기화를 사용합니다"
#: common/setting/system.py:979
msgid "SSO group key"
-msgstr ""
+msgstr "SSO 그룹 키"
#: common/setting/system.py:980
msgid "The name of the groups claim attribute provided by the IdP"
-msgstr ""
+msgstr "IdP에서 제공하는 groups 클레임 속성의 이름"
#: common/setting/system.py:985
msgid "SSO group map"
-msgstr ""
+msgstr "SSO 그룹 매핑"
#: common/setting/system.py:987
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/setting/system.py:993
msgid "Remove groups outside of SSO"
-msgstr ""
+msgstr "SSO 외부 그룹 제거"
#: common/setting/system.py:995
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/setting/system.py:1001
msgid "Email required"
-msgstr ""
+msgstr "이메일 필수"
#: common/setting/system.py:1002
msgid "Require user to supply mail on signup"
-msgstr ""
+msgstr "회원가입 시 이메일 입력을 요구합니다"
#: common/setting/system.py:1007
msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "SSO 사용자 자동 입력"
#: common/setting/system.py:1008
msgid "Automatically fill out user-details from SSO account-data"
-msgstr ""
+msgstr "SSO 계정 데이터에서 사용자 상세 정보를 자동으로 채웁니다"
#: common/setting/system.py:1013
msgid "Mail twice"
-msgstr ""
+msgstr "이메일 2회 입력"
#: common/setting/system.py:1014
msgid "On signup ask users twice for their mail"
-msgstr ""
+msgstr "회원가입 시 이메일을 두 번 입력하도록 요청합니다"
#: common/setting/system.py:1019
msgid "Password twice"
-msgstr ""
+msgstr "비밀번호 2회 입력"
#: common/setting/system.py:1020
msgid "On signup ask users twice for their password"
-msgstr ""
+msgstr "회원가입 시 비밀번호를 두 번 입력하도록 요청합니다"
#: common/setting/system.py:1025
msgid "Allowed domains"
-msgstr ""
+msgstr "허용된 도메인"
#: common/setting/system.py:1027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
-msgstr ""
+msgstr "특정 도메인으로 회원가입을 제한합니다(쉼표로 구분, @로 시작)"
#: common/setting/system.py:1033
msgid "Group on signup"
-msgstr ""
+msgstr "회원가입 시 그룹"
#: common/setting/system.py:1035
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/setting/system.py:1041
msgid "Enforce MFA"
-msgstr ""
+msgstr "MFA 강제"
#: common/setting/system.py:1042
msgid "Users must use multifactor security."
-msgstr ""
+msgstr "사용자는 다중 요소 보안을 사용해야 합니다."
#: common/setting/system.py:1047
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
-msgstr ""
+msgstr "이 설정을 활성화하면 모든 사용자가 다중 요소 인증을 설정해야 합니다. 모든 세션이 즉시 연결 해제됩니다."
#: common/setting/system.py:1052
msgid "Check plugins on startup"
-msgstr ""
+msgstr "시작 시 플러그인 확인"
#: common/setting/system.py:1054
msgid "Check that all plugins are installed on startup - enable in container environments"
-msgstr ""
+msgstr "시작 시 모든 플러그인이 설치되어 있는지 확인합니다(컨테이너 환경에서 사용)"
#: common/setting/system.py:1061
msgid "Check for plugin updates"
-msgstr ""
+msgstr "플러그인 업데이트 확인"
#: common/setting/system.py:1062
msgid "Enable periodic checks for updates to installed plugins"
-msgstr ""
+msgstr "설치된 플러그인의 업데이트를 주기적으로 확인합니다"
#: common/setting/system.py:1068
msgid "Enable URL integration"
-msgstr ""
+msgstr "URL 통합 사용"
#: common/setting/system.py:1069
msgid "Enable plugins to add URL routes"
-msgstr ""
+msgstr "플러그인이 URL 라우트를 추가할 수 있도록 허용합니다"
#: common/setting/system.py:1075
msgid "Enable navigation integration"
-msgstr ""
+msgstr "내비게이션 통합 사용"
#: common/setting/system.py:1076
msgid "Enable plugins to integrate into navigation"
-msgstr ""
+msgstr "플러그인이 내비게이션에 통합될 수 있도록 허용합니다"
#: common/setting/system.py:1082
msgid "Enable app integration"
-msgstr ""
+msgstr "앱 통합 사용"
#: common/setting/system.py:1083
msgid "Enable plugins to add apps"
-msgstr ""
+msgstr "플러그인이 앱을 추가할 수 있도록 허용합니다"
#: common/setting/system.py:1089
msgid "Enable schedule integration"
-msgstr ""
+msgstr "스케줄 통합 사용"
#: common/setting/system.py:1090
msgid "Enable plugins to run scheduled tasks"
-msgstr ""
+msgstr "플러그인이 예약 작업을 실행할 수 있도록 허용합니다"
#: common/setting/system.py:1096
msgid "Enable event integration"
-msgstr ""
+msgstr "이벤트 통합 사용"
#: common/setting/system.py:1097
msgid "Enable plugins to respond to internal events"
-msgstr ""
+msgstr "플러그인이 내부 이벤트에 응답할 수 있도록 허용합니다"
#: common/setting/system.py:1103
msgid "Enable interface integration"
-msgstr ""
+msgstr "인터페이스 통합 사용"
#: common/setting/system.py:1104
msgid "Enable plugins to integrate into the user interface"
-msgstr ""
+msgstr "플러그인이 사용자 인터페이스에 통합될 수 있도록 허용합니다"
#: common/setting/system.py:1110
msgid "Enable mail integration"
-msgstr ""
+msgstr "메일 통합 사용"
#: common/setting/system.py:1111
msgid "Enable plugins to process outgoing/incoming mails"
-msgstr ""
+msgstr "플러그인이 발신/수신 메일을 처리할 수 있도록 허용합니다"
#: common/setting/system.py:1117
msgid "Enable project codes"
-msgstr ""
+msgstr "프로젝트 코드 사용"
#: common/setting/system.py:1118
msgid "Enable project codes for tracking projects"
-msgstr ""
+msgstr "프로젝트를 추적하기 위한 프로젝트 코드를 사용합니다"
#: common/setting/system.py:1123
msgid "Enable Stocktake"
-msgstr ""
+msgstr "재고 실사 사용"
#: common/setting/system.py:1125
msgid "Enable functionality for recording historical stock levels and value"
-msgstr ""
+msgstr "과거 재고 수준과 가치를 기록하는 기능을 사용합니다"
#: common/setting/system.py:1131
msgid "Exclude External Locations"
-msgstr ""
+msgstr "외부 위치 제외"
#: common/setting/system.py:1133
msgid "Exclude stock items in external locations from stocktake calculations"
-msgstr ""
+msgstr "외부 위치의 재고 품목을 재고 실사 계산에서 제외합니다"
#: common/setting/system.py:1139
msgid "Automatic Stocktake Period"
-msgstr ""
+msgstr "자동 재고 실사 주기"
#: common/setting/system.py:1140
msgid "Number of days between automatic stocktake recording"
-msgstr ""
+msgstr "자동 재고 실사 기록 간격(일)"
#: common/setting/system.py:1146
msgid "Delete Old Stocktake Entries"
-msgstr ""
+msgstr "오래된 재고 실사 항목 삭제"
#: common/setting/system.py:1148
msgid "Delete stocktake entries older than the specified number of days"
-msgstr ""
+msgstr "지정된 일수보다 오래된 재고 실사 항목을 삭제합니다"
#: common/setting/system.py:1154
msgid "Stocktake Deletion Interval"
-msgstr ""
+msgstr "재고 실사 삭제 간격"
#: common/setting/system.py:1156
msgid "Stocktake entries will be deleted after specified number of days"
-msgstr ""
+msgstr "재고 실사 항목은 지정된 일수 후 삭제됩니다"
#: common/setting/system.py:1163
msgid "Delete Old Stock Tracking Entries"
-msgstr ""
+msgstr "오래된 재고 추적 항목 삭제"
#: common/setting/system.py:1165
msgid "Delete stock tracking entries older than the specified number of days"
-msgstr ""
+msgstr "지정된 일수보다 오래된 재고 추적 항목을 삭제합니다"
#: common/setting/system.py:1171
msgid "Stock Tracking Deletion Interval"
-msgstr ""
+msgstr "재고 추적 삭제 간격"
#: common/setting/system.py:1173
msgid "Stock tracking entries will be deleted after specified number of days"
-msgstr ""
+msgstr "재고 추적 항목은 지정된 일수 후 삭제됩니다"
#: common/setting/system.py:1180
msgid "Display Users full names"
-msgstr ""
+msgstr "사용자 전체 이름 표시"
#: common/setting/system.py:1181
msgid "Display Users full names instead of usernames"
-msgstr ""
+msgstr "사용자 이름 대신 사용자 전체 이름을 표시합니다"
#: common/setting/system.py:1186
msgid "Display User Profiles"
-msgstr ""
+msgstr "사용자 프로필 표시"
#: common/setting/system.py:1187
msgid "Display Users Profiles on their profile page"
-msgstr ""
+msgstr "프로필 페이지에 사용자 프로필을 표시합니다"
#: common/setting/system.py:1192
msgid "Enable Test Station Data"
-msgstr ""
+msgstr "테스트 스테이션 데이터 사용"
#: common/setting/system.py:1193
msgid "Enable test station data collection for test results"
-msgstr ""
+msgstr "테스트 결과를 위한 테스트 스테이션 데이터 수집을 사용합니다"
#: common/setting/system.py:1198
msgid "Enable Machine Ping"
-msgstr ""
+msgstr "장비 핑 사용"
#: common/setting/system.py:1200
msgid "Enable periodic ping task of registered machines to check their status"
-msgstr ""
+msgstr "등록된 장비의 상태를 확인하기 위해 주기적으로 핑 작업을 수행합니다"
#: common/setting/user.py:23
msgid "Inline label display"
-msgstr ""
+msgstr "인라인 라벨 표시"
#: common/setting/user.py:25
msgid "Display PDF labels in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "PDF 라벨을 파일로 다운로드하는 대신 브라우저에서 표시합니다"
#: common/setting/user.py:31
msgid "Default label printer"
-msgstr ""
+msgstr "기본 라벨 프린터"
#: common/setting/user.py:32
msgid "Configure which label printer should be selected by default"
-msgstr ""
+msgstr "기본으로 선택될 라벨 프린터를 설정합니다"
#: common/setting/user.py:37
msgid "Inline report display"
-msgstr ""
+msgstr "인라인 보고서 표시"
#: common/setting/user.py:39
msgid "Display PDF reports in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "PDF 보고서를 파일로 다운로드하는 대신 브라우저에서 표시합니다"
#: common/setting/user.py:45
msgid "Barcode Scanner in Form Fields"
-msgstr ""
+msgstr "폼 필드의 바코드 스캐너"
#: common/setting/user.py:46
msgid "Allow barcode scanner input in form fields"
-msgstr ""
+msgstr "폼 필드에서 바코드 스캐너 입력을 허용합니다"
#: common/setting/user.py:51
msgid "Search Parts"
-msgstr ""
+msgstr "부품 검색"
#: common/setting/user.py:52
msgid "Display parts in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 부품을 표시합니다"
#: common/setting/user.py:57
msgid "Search Supplier Parts"
-msgstr ""
+msgstr "공급업체 부품 검색"
#: common/setting/user.py:58
msgid "Display supplier parts in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 공급업체 부품을 표시합니다"
#: common/setting/user.py:63
msgid "Search Manufacturer Parts"
-msgstr ""
+msgstr "제조업체 부품 검색"
#: common/setting/user.py:64
msgid "Display manufacturer parts in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 제조업체 부품을 표시합니다"
#: common/setting/user.py:69
msgid "Hide Inactive Parts"
-msgstr ""
+msgstr "비활성 부품 숨기기"
#: common/setting/user.py:70
msgid "Excluded inactive parts from search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에서 비활성 부품을 제외합니다"
#: common/setting/user.py:75
msgid "Search Categories"
-msgstr ""
+msgstr "카테고리 검색"
#: common/setting/user.py:76
msgid "Display part categories in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 부품 카테고리를 표시합니다"
#: common/setting/user.py:81
msgid "Search Stock"
-msgstr ""
+msgstr "재고 검색"
#: common/setting/user.py:82
msgid "Display stock items in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 재고 품목을 표시합니다"
#: common/setting/user.py:87
msgid "Hide Unavailable Stock Items"
-msgstr ""
+msgstr "사용 불가 재고 품목 숨기기"
#: common/setting/user.py:89
msgid "Exclude stock items which are not available from the search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에서 사용 불가한 재고 품목을 제외합니다"
#: common/setting/user.py:95
msgid "Search Locations"
-msgstr ""
+msgstr "위치 검색"
#: common/setting/user.py:96
msgid "Display stock locations in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 재고 위치를 표시합니다"
#: common/setting/user.py:101
msgid "Search Companies"
-msgstr ""
+msgstr "회사 검색"
#: common/setting/user.py:102
msgid "Display companies in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 회사를 표시합니다"
#: common/setting/user.py:107
msgid "Search Build Orders"
-msgstr ""
+msgstr "빌드 주문 검색"
#: common/setting/user.py:108
msgid "Display build orders in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 빌드 주문을 표시합니다"
#: common/setting/user.py:113
msgid "Search Purchase Orders"
-msgstr ""
+msgstr "구매 주문 검색"
#: common/setting/user.py:114
msgid "Display purchase orders in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 구매 주문을 표시합니다"
#: common/setting/user.py:119
msgid "Exclude Inactive Purchase Orders"
-msgstr ""
+msgstr "비활성 구매 주문 제외"
#: common/setting/user.py:120
msgid "Exclude inactive purchase orders from search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에서 비활성 구매 주문을 제외합니다"
#: common/setting/user.py:125
msgid "Search Sales Orders"
-msgstr ""
+msgstr "판매 주문 검색"
#: common/setting/user.py:126
msgid "Display sales orders in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 판매 주문을 표시합니다"
#: common/setting/user.py:131
msgid "Exclude Inactive Sales Orders"
-msgstr ""
+msgstr "비활성 판매 주문 제외"
#: common/setting/user.py:132
msgid "Exclude inactive sales orders from search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에서 비활성 판매 주문을 제외합니다"
#: common/setting/user.py:137
msgid "Search Sales Order Shipments"
-msgstr ""
+msgstr "판매 주문 배송 검색"
#: common/setting/user.py:138
msgid "Display sales order shipments in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 판매 주문 배송을 표시합니다"
#: common/setting/user.py:143
msgid "Search Return Orders"
-msgstr ""
+msgstr "반품 주문 검색"
#: common/setting/user.py:144
msgid "Display return orders in search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에 반품 주문을 표시합니다"
#: common/setting/user.py:149
msgid "Exclude Inactive Return Orders"
-msgstr ""
+msgstr "비활성 반품 주문 제외"
#: common/setting/user.py:150
msgid "Exclude inactive return orders from search preview window"
-msgstr ""
+msgstr "검색 미리보기 창에서 비활성 반품 주문을 제외합니다"
#: common/setting/user.py:155
msgid "Search Preview Results"
-msgstr ""
+msgstr "검색 미리보기 결과"
#: common/setting/user.py:157
msgid "Number of results to show in each section of the search preview window"
-msgstr ""
+msgstr "검색 미리보기 창의 각 섹션에 표시할 결과 수"
#: common/setting/user.py:163
msgid "Regex Search"
-msgstr ""
+msgstr "정규식 검색"
#: common/setting/user.py:164
msgid "Enable regular expressions in search queries"
-msgstr ""
+msgstr "검색 쿼리에서 정규식을 사용할 수 있도록 합니다"
#: common/setting/user.py:169
msgid "Whole Word Search"
-msgstr ""
+msgstr "단어 단위 검색"
#: common/setting/user.py:170
msgid "Search queries return results for whole word matches"
-msgstr ""
+msgstr "검색 쿼리가 단어 전체가 일치하는 결과만 반환합니다"
#: common/setting/user.py:175
msgid "Search Notes"
-msgstr ""
+msgstr "노트 검색"
#: common/setting/user.py:177
msgid "Search queries return results for matches from the item's notes"
-msgstr ""
+msgstr "검색 쿼리가 항목의 노트에서 일치하는 결과를 반환합니다"
#: common/setting/user.py:183
msgid "Escape Key Closes Forms"
-msgstr ""
+msgstr "Esc 키로 폼 닫기"
#: common/setting/user.py:184
msgid "Use the escape key to close modal forms"
-msgstr ""
+msgstr "Esc 키를 사용해 모달 폼을 닫습니다"
#: common/setting/user.py:189
msgid "Fixed Navbar"
-msgstr ""
+msgstr "내비게이션 바 고정"
#: common/setting/user.py:190
msgid "The navbar position is fixed to the top of the screen"
-msgstr ""
+msgstr "내비게이션 바를 화면 상단에 고정합니다"
#: common/setting/user.py:195
msgid "Fixed Table Headers"
-msgstr ""
+msgstr "테이블 헤더 고정"
#: common/setting/user.py:196
msgid "Table headers are fixed to the top of the table"
-msgstr ""
+msgstr "테이블 헤더를 테이블 상단에 고정합니다"
#: common/setting/user.py:201
msgid "Show Spotlight"
-msgstr ""
+msgstr "스포트라이트 표시"
#: common/setting/user.py:202
msgid "Enable spotlight navigation functionality"
-msgstr ""
+msgstr "스포트라이트 내비게이션 기능을 사용합니다"
#: common/setting/user.py:207
msgid "Navigation Icons"
-msgstr ""
+msgstr "내비게이션 아이콘"
#: common/setting/user.py:208
msgid "Display icons in the navigation bar"
-msgstr ""
+msgstr "내비게이션 바에 아이콘을 표시합니다"
#: common/setting/user.py:213
msgid "Date Format"
-msgstr ""
+msgstr "날짜 형식"
#: common/setting/user.py:214
msgid "Preferred format for displaying dates"
-msgstr ""
+msgstr "날짜 표시 기본 형식"
#: common/setting/user.py:227
msgid "Show Stock History"
-msgstr ""
+msgstr "재고 기록 표시"
#: common/setting/user.py:228
msgid "Display stock history information in the part detail page"
-msgstr ""
+msgstr "부품 상세 페이지에 재고 기록 정보를 표시합니다"
#: common/setting/user.py:233
msgid "Show Last Breadcrumb"
-msgstr ""
+msgstr "마지막 탐색 경로 표시"
#: common/setting/user.py:234
msgid "Show the current page in breadcrumbs"
-msgstr ""
+msgstr "탐색 경로(브레드크럼)에서 현재 페이지를 표시"
#: common/setting/user.py:239
msgid "Show full stock location in tables"
-msgstr ""
+msgstr "테이블에서 전체 재고 위치 표시"
#: common/setting/user.py:241
msgid "Disabled: The full location path is displayed as a hover tooltip. Enabled: The full location path is displayed as plain text."
-msgstr ""
+msgstr "비활성화: 전체 위치 경로를 마우스오버 툴팁으로 표시합니다. 활성화: 전체 위치 경로를 일반 텍스트로 표시합니다."
#: common/setting/user.py:247
msgid "Show full part categories in tables"
-msgstr ""
+msgstr "테이블에서 전체 부품 카테고리 표시"
#: common/setting/user.py:249
msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled: The full category path is displayed as plain text."
-msgstr ""
+msgstr "비활성화: 전체 카테고리 경로를 마우스오버 툴팁으로 표시합니다. 활성화: 전체 카테고리 경로를 일반 텍스트로 표시합니다."
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
-msgstr ""
+msgid "Receive error reports"
+msgstr "오류 보고서 수신"
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr "시스템 오류에 대한 알림을 수신"
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr "마지막으로 사용한 인쇄 장비"
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
-msgstr ""
+msgstr "사용자의 마지막 사용 인쇄 장비를 저장"
#: common/validators.py:38
msgid "All models"
-msgstr ""
+msgstr "모든 모델"
#: common/validators.py:63
msgid "No attachment model type provided"
-msgstr ""
+msgstr "첨부 모델 유형이 제공되지 않았습니다"
#: common/validators.py:69
msgid "Invalid attachment model type"
-msgstr ""
+msgstr "잘못된 첨부 모델 유형입니다"
#: common/validators.py:110
msgid "Minimum places cannot be greater than maximum places"
-msgstr ""
+msgstr "최소 자리수는 최대 자리수보다 클 수 없습니다"
#: common/validators.py:122
msgid "Maximum places cannot be less than minimum places"
-msgstr ""
+msgstr "최대 자리수는 최소 자리수보다 작을 수 없습니다"
#: common/validators.py:133
msgid "An empty domain is not allowed."
-msgstr ""
+msgstr "빈 도메인은 허용되지 않습니다."
#: common/validators.py:135
#, python-brace-format
msgid "Invalid domain name: {domain}"
-msgstr ""
+msgstr "잘못된 도메인 이름: {domain}"
#: common/validators.py:151
msgid "Value must be uppercase"
-msgstr ""
+msgstr "값은 대문자여야 합니다"
#: common/validators.py:157
msgid "Value must be a valid variable identifier"
-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:251
+#: company/api.py:252
msgid "Supplier Part is Active"
-msgstr ""
+msgstr "공급업체 부품이 활성화됨"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
-msgstr ""
+msgstr "기본 공급업체 부품"
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
-msgstr ""
+msgstr "내부 부품이 활성화됨"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
-msgstr ""
+msgstr "공급업체가 활성화됨"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
-msgstr ""
+msgstr "제조사"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
-msgstr ""
+msgstr "회사"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
-msgstr ""
+msgstr "재고 있음"
#: company/models.py:125
msgid "Companies"
-msgstr ""
+msgstr "회사"
#: company/models.py:153
msgid "Company description"
-msgstr ""
+msgstr "회사 설명"
#: company/models.py:154
msgid "Description of the company"
-msgstr ""
+msgstr "회사에 대한 설명"
#: company/models.py:160
msgid "Website"
-msgstr ""
+msgstr "웹사이트"
#: company/models.py:161
msgid "Company website URL"
-msgstr ""
+msgstr "회사 웹사이트 URL"
#: company/models.py:167
msgid "Phone number"
-msgstr ""
+msgstr "전화번호"
#: company/models.py:169
msgid "Contact phone number"
-msgstr ""
+msgstr "연락처 전화번호"
#: company/models.py:176
msgid "Contact email address"
-msgstr ""
+msgstr "연락처 이메일 주소"
#: company/models.py:181 company/models.py:311 order/models.py:525
#: users/models.py:561
msgid "Contact"
-msgstr ""
+msgstr "담당자"
#: company/models.py:183
msgid "Point of contact"
-msgstr ""
+msgstr "담당자"
#: company/models.py:189
msgid "Link to external company information"
-msgstr ""
+msgstr "외부 회사 정보 링크"
#: company/models.py:194
msgid "Is this company active?"
-msgstr ""
+msgstr "이 회사가 활성 상태인가요?"
#: company/models.py:199
msgid "Is customer"
-msgstr ""
+msgstr "고객 여부"
#: company/models.py:200
msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "이 회사에 품목을 판매하나요?"
#: company/models.py:205
msgid "Is supplier"
-msgstr ""
+msgstr "공급업체 여부"
#: company/models.py:206
msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "이 회사로부터 품목을 구매하나요?"
#: company/models.py:211
msgid "Is manufacturer"
-msgstr ""
+msgstr "제조사 여부"
#: company/models.py:212
msgid "Does this company manufacture parts?"
-msgstr ""
+msgstr "이 회사가 부품을 제조하나요?"
#: company/models.py:220
msgid "Default currency used for this company"
-msgstr ""
+msgstr "이 회사에서 사용하는 기본 통화"
#: company/models.py:227
msgid "Tax ID"
-msgstr ""
+msgstr "세금 ID"
#: company/models.py:228
msgid "Company Tax ID"
-msgstr ""
+msgstr "회사 세금 ID"
#: company/models.py:350 order/models.py:535 order/models.py:2340
msgid "Address"
-msgstr ""
+msgstr "주소"
#: company/models.py:351
msgid "Addresses"
-msgstr ""
+msgstr "주소"
#: company/models.py:405
msgid "Select company"
-msgstr ""
+msgstr "회사 선택"
#: company/models.py:410
msgid "Address title"
-msgstr ""
+msgstr "주소 제목"
#: company/models.py:411
msgid "Title describing the address entry"
-msgstr ""
+msgstr "주소 항목을 설명하는 제목"
#: company/models.py:417
msgid "Primary address"
-msgstr ""
+msgstr "기본 주소"
#: company/models.py:418
msgid "Set as primary address"
-msgstr ""
+msgstr "기본 주소로 설정"
#: company/models.py:423
msgid "Line 1"
-msgstr ""
+msgstr "주소 1"
#: company/models.py:424
msgid "Address line 1"
-msgstr ""
+msgstr "주소 1"
#: company/models.py:430
msgid "Line 2"
-msgstr ""
+msgstr "주소 2"
#: company/models.py:431
msgid "Address line 2"
-msgstr ""
+msgstr "주소 2"
#: company/models.py:437 company/models.py:438
msgid "Postal code"
-msgstr ""
+msgstr "우편번호"
#: company/models.py:444
msgid "City/Region"
-msgstr ""
+msgstr "도시/지역"
#: company/models.py:445
msgid "Postal code city/region"
-msgstr ""
+msgstr "우편번호 도시/지역"
#: company/models.py:451
msgid "State/Province"
-msgstr ""
+msgstr "주/도"
#: company/models.py:452
msgid "State or province"
-msgstr ""
+msgstr "주 또는 도"
#: company/models.py:458
msgid "Country"
-msgstr ""
+msgstr "국가"
#: company/models.py:459
msgid "Address country"
-msgstr ""
+msgstr "주소 국가"
#: company/models.py:465
msgid "Courier shipping notes"
-msgstr ""
+msgstr "택배 배송 메모"
#: company/models.py:466
msgid "Notes for shipping courier"
-msgstr ""
+msgstr "택배 배송을 위한 메모"
#: company/models.py:472
msgid "Internal shipping notes"
-msgstr ""
+msgstr "내부 배송 메모"
#: company/models.py:473
msgid "Shipping notes for internal use"
-msgstr ""
+msgstr "내부용 배송 메모"
#: company/models.py:480
msgid "Link to address information (external)"
-msgstr ""
+msgstr "주소 정보 링크(외부)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
-msgstr ""
+msgstr "제조사 부품"
#: company/models.py:524 company/models.py:764 stock/models.py:1032
#: stock/serializers.py:418
msgid "Base Part"
-msgstr ""
+msgstr "기본 부품"
#: company/models.py:526 company/models.py:766
msgid "Select part"
-msgstr ""
+msgstr "부품 선택"
#: company/models.py:536
msgid "Select manufacturer"
-msgstr ""
+msgstr "제조사 선택"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
-msgstr ""
+msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
-msgstr ""
+msgstr "제조사 부품 번호"
#: company/models.py:550
msgid "URL for external manufacturer part link"
-msgstr ""
+msgstr "외부 제조사 부품 링크 URL"
#: company/models.py:559
msgid "Manufacturer part description"
-msgstr ""
+msgstr "제조사 부품 설명"
#: company/models.py:691
msgid "Pack units must be compatible with the base part units"
-msgstr ""
+msgstr "포장 단위는 기본 부품 단위와 호환되어야 합니다"
#: company/models.py:698
msgid "Pack units must be greater than zero"
-msgstr ""
+msgstr "포장 단위는 0보다 커야 합니다"
#: company/models.py:712
msgid "Linked manufacturer part must reference the same base part"
-msgstr ""
+msgstr "연결된 제조사 부품은 동일한 기본 부품을 참조해야 합니다"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
-msgstr ""
+msgstr "공급업체"
#: company/models.py:775
msgid "Select supplier"
-msgstr ""
+msgstr "공급업체 선택"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
-msgstr ""
+msgstr "공급업체 SKU"
#: company/models.py:787
msgid "Is this supplier part active?"
-msgstr ""
+msgstr "이 공급업체 부품이 활성 상태인가요?"
#: company/models.py:792
msgid "Primary"
-msgstr ""
+msgstr "기본"
#: company/models.py:793
msgid "Is this the primary supplier part for the linked Part?"
-msgstr ""
+msgstr "연결된 부품의 기본 공급업체 부품인가요?"
#: company/models.py:803
msgid "Select manufacturer part"
-msgstr ""
+msgstr "제조사 부품 선택"
#: company/models.py:810
msgid "URL for external supplier part link"
-msgstr ""
+msgstr "외부 공급업체 부품 링크 URL"
#: company/models.py:819
msgid "Supplier part description"
-msgstr ""
+msgstr "공급업체 부품 설명"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
-msgstr ""
+msgstr "기본 비용"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
-msgstr ""
+msgstr "최소 요금(예: 보관 수수료)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
-msgstr ""
+msgstr "포장"
#: company/models.py:844
msgid "Part packaging"
-msgstr ""
+msgstr "부품 포장"
#: company/models.py:849
msgid "Pack Quantity"
-msgstr ""
+msgstr "포장 수량"
#: company/models.py:851
msgid "Total quantity supplied in a single pack. Leave empty for single items."
-msgstr ""
+msgstr "한 포장에 공급되는 총 수량입니다. 단품인 경우 비워 두세요."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
-msgstr ""
+msgstr "배수"
#: company/models.py:871
msgid "Order multiple"
-msgstr ""
+msgstr "주문 배수"
#: company/models.py:883
msgid "Quantity available from supplier"
-msgstr ""
+msgstr "공급업체에서 제공 가능한 수량"
#: company/models.py:889
msgid "Availability Updated"
-msgstr ""
+msgstr "가용성 업데이트됨"
#: company/models.py:890
msgid "Date of last update of availability data"
-msgstr ""
+msgstr "가용성 데이터의 마지막 업데이트 날짜"
#: company/models.py:1018
msgid "Supplier Price Break"
-msgstr ""
+msgstr "공급업체 가격 구간"
#: company/serializers.py:191
msgid "Default currency used for this supplier"
-msgstr ""
+msgstr "이 공급업체에서 사용하는 기본 통화"
#: company/serializers.py:229
msgid "Company Name"
-msgstr ""
+msgstr "회사명"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
-msgstr ""
+msgstr "재고 있음"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
-msgstr ""
+msgstr "가격 구간"
+
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr "표시 이름"
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
-msgstr ""
+msgstr "데이터 내보내기 중 오류가 발생했습니다"
#: data_exporter/mixins.py:395
msgid "Data export plugin returned incorrect data format"
-msgstr ""
+msgstr "데이터 내보내기 플러그인이 잘못된 데이터 형식을 반환했습니다"
#: data_exporter/serializers.py:73
msgid "Export Format"
-msgstr ""
+msgstr "내보내기 형식"
#: data_exporter/serializers.py:74
msgid "Select export file format"
-msgstr ""
+msgstr "내보내기 파일 형식을 선택하세요"
#: data_exporter/serializers.py:81
msgid "Export Plugin"
-msgstr ""
+msgstr "내보내기 플러그인"
#: data_exporter/serializers.py:82
msgid "Select export plugin"
-msgstr ""
+msgstr "내보내기 플러그인을 선택하세요"
#: generic/states/fields.py:146
msgid "Additional status information for this item"
-msgstr ""
+msgstr "이 항목에 대한 추가 상태 정보"
#: generic/states/fields.py:160
msgid "Custom status key"
-msgstr ""
+msgstr "사용자 정의 상태 키"
#: generic/states/serializers.py:26
msgid "Custom"
-msgstr ""
+msgstr "사용자 정의"
#: generic/states/serializers.py:37
msgid "Class"
-msgstr ""
+msgstr "클래스"
#: generic/states/serializers.py:40
msgid "Values"
-msgstr ""
+msgstr "값"
#: generic/states/tests.py:22 order/status_codes.py:13
msgid "Placed"
-msgstr ""
+msgstr "접수됨"
#: generic/states/validators.py:21
msgid "Invalid status code"
-msgstr ""
+msgstr "잘못된 상태 코드"
#: importer/models.py:74
msgid "Data File"
-msgstr ""
+msgstr "데이터 파일"
#: importer/models.py:75
msgid "Data file to import"
-msgstr ""
+msgstr "가져올 데이터 파일"
#: importer/models.py:84
msgid "Columns"
-msgstr ""
+msgstr "열"
#: importer/models.py:91
msgid "Target model type for this import session"
-msgstr ""
+msgstr "이 가져오기 세션의 대상 모델 유형"
#: importer/models.py:97
msgid "Import status"
-msgstr ""
+msgstr "가져오기 상태"
#: importer/models.py:107
msgid "Field Defaults"
-msgstr ""
+msgstr "필드 기본값"
#: importer/models.py:114
msgid "Field Overrides"
-msgstr ""
+msgstr "필드 재정의"
#: importer/models.py:121
msgid "Field Filters"
-msgstr ""
+msgstr "필드 필터"
#: importer/models.py:127
msgid "Update Existing Records"
-msgstr ""
+msgstr "기존 레코드 업데이트"
#: importer/models.py:128
msgid "If enabled, existing records will be updated with new data"
-msgstr ""
+msgstr "활성화하면 기존 레코드가 새 데이터로 업데이트됩니다"
#: importer/models.py:281
msgid "Some required fields have not been mapped"
-msgstr ""
+msgstr "일부 필수 필드가 매핑되지 않았습니다"
#: importer/models.py:388
msgid "ID"
-msgstr ""
+msgstr "ID"
#: importer/models.py:389
msgid "Existing database identifier for the record"
-msgstr ""
+msgstr "레코드의 기존 데이터베이스 식별자"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
-msgstr ""
+msgstr "열이 이미 데이터베이스 필드에 매핑되어 있습니다"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
-msgstr ""
+msgstr "필드가 이미 데이터 열에 매핑되어 있습니다"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
-msgstr ""
-
-#: importer/models.py:471
-msgid "Column does not exist in the data file"
-msgstr ""
+msgstr "열 매핑은 유효한 가져오기 세션에 연결되어야 합니다"
#: importer/models.py:478
+msgid "Column does not exist in the data file"
+msgstr "데이터 파일에 해당 열이 없습니다"
+
+#: importer/models.py:485
msgid "Field does not exist in the target model"
-msgstr ""
+msgstr "대상 모델에 해당 필드가 없습니다"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
-msgstr ""
+msgstr "선택한 필드는 읽기 전용입니다"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
-msgstr ""
+msgstr "가져오기 세션"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
-msgstr ""
+msgstr "필드"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
-msgstr ""
+msgstr "열"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
-msgstr ""
+msgstr "행 인덱스"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
-msgstr ""
+msgstr "원본 행 데이터"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
-msgstr ""
+msgstr "오류"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
-msgstr ""
-
-#: importer/models.py:839
-msgid "ID is required for updating existing records."
-msgstr ""
+msgstr "유효"
#: importer/models.py:846
-msgid "No record found with the provided ID"
-msgstr ""
+msgid "ID is required for updating existing records."
+msgstr "기존 레코드를 업데이트하려면 ID가 필요합니다."
-#: importer/models.py:852
+#: importer/models.py:853
+msgid "No record found with the provided ID"
+msgstr "제공된 ID로 레코드를 찾을 수 없습니다"
+
+#: importer/models.py:859
msgid "Invalid ID format provided"
-msgstr ""
+msgstr "잘못된 ID 형식이 제공되었습니다"
#: importer/operations.py:31 importer/operations.py:52
msgid "Unsupported data file format"
-msgstr ""
+msgstr "지원되지 않는 데이터 파일 형식"
#: importer/operations.py:43
msgid "Failed to open data file"
-msgstr ""
+msgstr "데이터 파일을 열지 못했습니다"
#: importer/operations.py:54
msgid "Invalid data file dimensions"
-msgstr ""
+msgstr "잘못된 데이터 파일 크기입니다"
#: importer/serializers.py:92
msgid "Invalid field defaults"
-msgstr ""
+msgstr "잘못된 필드 기본값"
#: importer/serializers.py:105
msgid "Invalid field overrides"
-msgstr ""
+msgstr "잘못된 필드 재정의"
#: importer/serializers.py:118
msgid "Invalid field filters"
-msgstr ""
+msgstr "잘못된 필드 필터"
#: importer/serializers.py:177
msgid "Rows"
-msgstr ""
+msgstr "행"
#: importer/serializers.py:178
msgid "List of row IDs to accept"
-msgstr ""
+msgstr "승인할 행 ID 목록"
#: importer/serializers.py:191
msgid "No rows provided"
-msgstr ""
+msgstr "제공된 행이 없습니다"
#: importer/serializers.py:195
msgid "Row does not belong to this session"
-msgstr ""
+msgstr "행이 이 세션에 속하지 않습니다"
#: importer/serializers.py:198
msgid "Row contains invalid data"
-msgstr ""
+msgstr "행에 잘못된 데이터가 포함되어 있습니다"
#: importer/serializers.py:201
msgid "Row has already been completed"
-msgstr ""
+msgstr "행이 이미 완료되었습니다"
#: importer/status_codes.py:13
msgid "Initializing"
-msgstr ""
+msgstr "초기화 중"
#: importer/status_codes.py:18
msgid "Mapping Columns"
-msgstr ""
+msgstr "열 매핑 중"
#: importer/status_codes.py:21
msgid "Importing Data"
-msgstr ""
+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 ""
+msgstr "값은 유효한 사전(dictionary) 객체여야 합니다"
#: machine/machine_types/label_printer.py:212
msgid "Copies"
-msgstr ""
+msgstr "복사본"
#: machine/machine_types/label_printer.py:213
msgid "Number of copies to print for each label"
-msgstr ""
+msgstr "각 라벨에 대해 인쇄할 복사본 수"
#: machine/machine_types/label_printer.py:231
msgid "Connected"
-msgstr ""
+msgstr "연결됨"
#: machine/machine_types/label_printer.py:232 order/api.py:1846
msgid "Unknown"
-msgstr ""
+msgstr "알 수 없음"
#: machine/machine_types/label_printer.py:233
msgid "Printing"
-msgstr ""
+msgstr "인쇄 중"
#: machine/machine_types/label_printer.py:234
msgid "Warning"
-msgstr ""
+msgstr "경고"
#: machine/machine_types/label_printer.py:235
msgid "No media"
-msgstr ""
+msgstr "미디어 없음"
#: machine/machine_types/label_printer.py:236
msgid "Paper jam"
-msgstr ""
+msgstr "용지 걸림"
#: machine/machine_types/label_printer.py:237
msgid "Disconnected"
-msgstr ""
+msgstr "연결 끊김"
#: machine/machine_types/label_printer.py:238
msgid "Error"
-msgstr ""
+msgstr "오류"
#: machine/machine_types/label_printer.py:245
msgid "Label Printer"
-msgstr ""
+msgstr "라벨 프린터"
#: machine/machine_types/label_printer.py:246
msgid "Directly print labels for various items."
-msgstr ""
+msgstr "다양한 항목의 라벨을 직접 인쇄합니다."
#: machine/machine_types/label_printer.py:252
msgid "Printer Location"
-msgstr ""
+msgstr "프린터 위치"
#: machine/machine_types/label_printer.py:253
msgid "Scope the printer to a specific location"
-msgstr ""
+msgstr "프린터 범위를 특정 위치로 제한합니다"
#: machine/models.py:26
msgid "Name of machine"
-msgstr ""
+msgstr "장비 이름"
#: machine/models.py:30
msgid "Machine Type"
-msgstr ""
+msgstr "장비 유형"
#: machine/models.py:30
msgid "Type of machine"
-msgstr ""
+msgstr "장비의 유형"
#: machine/models.py:35 machine/models.py:147
msgid "Driver"
-msgstr ""
+msgstr "드라이버"
#: machine/models.py:36
msgid "Driver used for the machine"
-msgstr ""
+msgstr "장비에 사용되는 드라이버"
#: machine/models.py:40
msgid "Machines can be disabled"
-msgstr ""
+msgstr "장비를 비활성화할 수 있습니다"
#: machine/models.py:96
msgid "Driver available"
-msgstr ""
+msgstr "사용 가능한 드라이버"
#: machine/models.py:101
msgid "No errors"
-msgstr ""
+msgstr "오류 없음"
#: machine/models.py:106
msgid "Initialized"
-msgstr ""
+msgstr "초기화됨"
#: machine/models.py:118
msgid "Machine status"
-msgstr ""
+msgstr "장비 상태"
#: machine/models.py:146
msgid "Machine"
-msgstr ""
+msgstr "장비"
#: machine/models.py:158
msgid "Machine Config"
-msgstr ""
+msgstr "장비 구성"
#: machine/models.py:163
msgid "Config type"
-msgstr ""
+msgstr "구성 유형"
#: machine/serializers.py:24
msgid "Key of the property"
-msgstr ""
+msgstr "속성 키"
#: machine/serializers.py:27
msgid "Value of the property"
-msgstr ""
+msgstr "속성 값"
#: machine/serializers.py:30 users/models.py:238
msgid "Group"
-msgstr ""
+msgstr "그룹"
#: machine/serializers.py:30
msgid "Grouping of the property"
-msgstr ""
+msgstr "속성 그룹"
#: machine/serializers.py:33
msgid "Type"
-msgstr ""
+msgstr "유형"
#: machine/serializers.py:35
msgid "Type of the property"
-msgstr ""
+msgstr "속성의 유형"
#: machine/serializers.py:40
msgid "Max Progress"
-msgstr ""
+msgstr "최대 진행도"
#: machine/serializers.py:41
msgid "Maximum value for progress type, required if type=progress"
-msgstr ""
+msgstr "진행도 유형의 최대값( type=progress 인 경우 필수)"
#: order/api.py:128
msgid "Order Reference"
-msgstr ""
+msgstr "주문 참조"
#: order/api.py:156 order/api.py:1218
msgid "Outstanding"
-msgstr ""
+msgstr "미결"
#: order/api.py:172
msgid "Has Project Code"
-msgstr ""
+msgstr "프로젝트 코드 있음"
#: order/api.py:186 order/models.py:493
msgid "Created By"
-msgstr ""
+msgstr "생성자"
#: order/api.py:190
msgid "Created Before"
-msgstr ""
+msgstr "이전 생성"
#: order/api.py:194
msgid "Created After"
-msgstr ""
+msgstr "이후 생성"
#: order/api.py:198
msgid "Has Start Date"
-msgstr ""
+msgstr "시작일 있음"
#: order/api.py:206
msgid "Start Date Before"
-msgstr ""
+msgstr "시작일 이전"
#: order/api.py:210
msgid "Start Date After"
-msgstr ""
+msgstr "시작일 이후"
#: order/api.py:214
msgid "Has Target Date"
-msgstr ""
+msgstr "목표일 있음"
#: order/api.py:222
msgid "Target Date Before"
-msgstr ""
+msgstr "목표일 이전"
#: order/api.py:226
msgid "Target Date After"
-msgstr ""
+msgstr "목표일 이후"
#: order/api.py:230
msgid "Updated Before"
-msgstr ""
+msgstr "이전 업데이트"
#: order/api.py:234
msgid "Updated After"
-msgstr ""
+msgstr "이후 업데이트"
#: order/api.py:285
msgid "Has Pricing"
-msgstr ""
+msgstr "가격 정보 있음"
#: order/api.py:338 order/api.py:825 order/api.py:1527
msgid "Completed Before"
-msgstr ""
+msgstr "완료일 이전"
#: order/api.py:342 order/api.py:829 order/api.py:1531
msgid "Completed After"
-msgstr ""
+msgstr "완료일 이후"
#: order/api.py:348 order/api.py:352
msgid "External Build Order"
-msgstr ""
+msgstr "외주 생산 작업 지시서"
#: order/api.py:537 order/api.py:925 order/api.py:1181 order/models.py:1972
#: order/models.py:2098 order/models.py:2150 order/models.py:2331
#: order/models.py:2527 order/models.py:3056 order/models.py:3122
msgid "Order"
-msgstr ""
+msgstr "주문"
#: order/api.py:541 order/api.py:993
msgid "Order Complete"
-msgstr ""
+msgstr "주문 완료"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
-msgstr ""
+msgstr "내부 부품"
#: order/api.py:595
msgid "Order Pending"
-msgstr ""
+msgstr "주문 대기"
#: order/api.py:978
msgid "Completed"
-msgstr ""
+msgstr "완료됨"
#: order/api.py:1234
msgid "Has Shipment"
-msgstr ""
+msgstr "배송 있음"
#: order/api.py:1442
msgid "Shipment not found"
-msgstr ""
+msgstr "배송을 찾을 수 없습니다"
#: order/api.py:1840 order/models.py:577 order/models.py:1973
#: order/models.py:2099
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:129 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
-msgstr ""
+msgstr "구매 주문"
#: order/api.py:1842 order/models.py:1288 order/models.py:2151
#: order/models.py:2332 order/models.py:2528
@@ -4855,2293 +4867,2293 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:15
#: templates/email/overdue_sales_order.html:15
msgid "Sales Order"
-msgstr ""
+msgstr "판매 주문"
#: order/api.py:1844 order/models.py:2699 order/models.py:3057
#: order/models.py:3123
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
-msgstr ""
+msgstr "반품 주문"
#: order/models.py:90
#: report/templates/report/inventree_purchase_order_report.html:38
#: report/templates/report/inventree_sales_order_report.html:31
msgid "Total Price"
-msgstr ""
+msgstr "총액"
#: order/models.py:91
msgid "Total price for this order"
-msgstr ""
+msgstr "이 주문의 총액"
#: order/models.py:96 order/serializers.py:61
msgid "Order Currency"
-msgstr ""
+msgstr "주문 통화"
#: order/models.py:99 order/serializers.py:62
msgid "Currency for this order (leave blank to use company default)"
-msgstr ""
+msgstr "이 주문의 통화(비워 두면 회사 기본값 사용)"
#: order/models.py:326
msgid "This order is locked and cannot be modified"
-msgstr ""
+msgstr "이 주문은 잠겨 있어 수정할 수 없습니다"
#: order/models.py:380
msgid "Contact does not match selected company"
-msgstr ""
+msgstr "담당자가 선택한 회사와 일치하지 않습니다"
#: order/models.py:387
msgid "Start date must be before target date"
-msgstr ""
+msgstr "시작일은 목표일보다 이전이어야 합니다"
#: order/models.py:394
msgid "Address does not match selected company"
-msgstr ""
+msgstr "주소가 선택한 회사와 일치하지 않습니다"
#: order/models.py:448
msgid "Order description (optional)"
-msgstr ""
+msgstr "주문 설명(선택 사항)"
#: order/models.py:457 order/models.py:1854
msgid "Select project code for this order"
-msgstr ""
+msgstr "이 주문의 프로젝트 코드를 선택하세요"
#: order/models.py:463 order/models.py:1835 order/models.py:2396
msgid "Link to external page"
-msgstr ""
+msgstr "외부 페이지 링크"
#: order/models.py:470
msgid "Start date"
-msgstr ""
+msgstr "시작일"
#: order/models.py:471
msgid "Scheduled start date for this order"
-msgstr ""
+msgstr "이 주문의 예정 시작일"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
-msgstr ""
+msgstr "목표일"
#: order/models.py:479
msgid "Expected date for order delivery. Order will be overdue after this date."
-msgstr ""
+msgstr "주문 배송 예상일입니다. 이 날짜 이후에는 주문이 기한 초과로 표시됩니다."
#: order/models.py:499
msgid "Issue Date"
-msgstr ""
+msgstr "발행일"
#: order/models.py:500
msgid "Date order was issued"
-msgstr ""
+msgstr "주문이 발행된 날짜"
#: order/models.py:506
msgid "Updated At"
-msgstr ""
+msgstr "업데이트 일시"
#: order/models.py:515
msgid "User or group responsible for this order"
-msgstr ""
+msgstr "이 주문을 담당하는 사용자 또는 그룹"
#: order/models.py:526
msgid "Point of contact for this order"
-msgstr ""
+msgstr "이 주문의 연락 담당자"
#: order/models.py:536
msgid "Company address for this order"
-msgstr ""
+msgstr "이 주문의 회사 주소"
#: order/models.py:642 order/models.py:1351
msgid "Order reference"
-msgstr ""
+msgstr "주문 참조"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
-msgstr ""
+msgstr "상태"
#: order/models.py:652
msgid "Purchase order status"
-msgstr ""
+msgstr "구매 주문 상태"
#: order/models.py:667
msgid "Company from which the items are being ordered"
-msgstr ""
+msgstr "품목을 주문하는 공급업체"
#: order/models.py:678
msgid "Supplier Reference"
-msgstr ""
+msgstr "공급업체 참조"
#: order/models.py:679
msgid "Supplier order reference code"
-msgstr ""
+msgstr "공급업체 주문 참조 코드"
#: order/models.py:688
msgid "received by"
-msgstr ""
+msgstr "수령자"
#: order/models.py:695 order/models.py:2804
msgid "Date order was completed"
-msgstr ""
+msgstr "주문이 완료된 날짜"
#: order/models.py:704 order/models.py:2031
msgid "Destination"
-msgstr ""
+msgstr "목적지"
#: order/models.py:705 order/models.py:2035
msgid "Destination for received items"
-msgstr ""
+msgstr "수령된 품목의 목적지"
#: order/models.py:751
msgid "Part supplier must match PO supplier"
-msgstr ""
+msgstr "부품 공급업체는 구매 주문 공급업체와 일치해야 합니다"
#: order/models.py:1021
msgid "Line item does not match purchase order"
-msgstr ""
+msgstr "라인 항목이 구매 주문과 일치하지 않습니다"
#: order/models.py:1024
msgid "Line item is missing a linked part"
-msgstr ""
+msgstr "라인 항목에 연결된 부품이 없습니다"
#: order/models.py:1038
msgid "Quantity must be a positive number"
-msgstr ""
+msgstr "수량은 양수여야 합니다"
#: order/models.py:1072
msgid "Serial numbers cannot be assigned to virtual parts"
-msgstr ""
+msgstr "가상 부품에는 일련번호를 할당할 수 없습니다"
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
-msgstr ""
+msgstr "고객"
#: order/models.py:1363
msgid "Company to which the items are being sold"
-msgstr ""
+msgstr "품목을 판매하는 대상 회사"
#: order/models.py:1376
msgid "Sales order status"
-msgstr ""
+msgstr "판매 주문 상태"
#: order/models.py:1387 order/models.py:2796
msgid "Customer Reference "
-msgstr ""
+msgstr "고객 참조"
#: order/models.py:1388 order/models.py:2797
msgid "Customer order reference code"
-msgstr ""
+msgstr "고객 주문 참조 코드"
#: order/models.py:1392 order/models.py:2348
msgid "Shipment Date"
-msgstr ""
+msgstr "발송일"
#: order/models.py:1401
msgid "shipped by"
-msgstr ""
+msgstr "발송자"
#: order/models.py:1452
msgid "Order is already complete"
-msgstr ""
+msgstr "주문이 이미 완료되었습니다"
#: order/models.py:1455
msgid "Order is already cancelled"
-msgstr ""
+msgstr "주문이 이미 취소되었습니다"
#: order/models.py:1459
msgid "Only an open order can be marked as complete"
-msgstr ""
+msgstr "열린 주문만 완료로 표시할 수 있습니다"
#: order/models.py:1463
msgid "Order cannot be completed as there are incomplete shipments"
-msgstr ""
+msgstr "미완료 발송이 있어 주문을 완료할 수 없습니다"
#: order/models.py:1468
msgid "Order cannot be completed as there are incomplete allocations"
-msgstr ""
+msgstr "미완료 할당이 있어 주문을 완료할 수 없습니다"
#: order/models.py:1477
msgid "Order cannot be completed as there are incomplete line items"
-msgstr ""
+msgstr "미완료 라인 항목이 있어 주문을 완료할 수 없습니다"
#: order/models.py:1772 order/models.py:1788
msgid "The order is locked and cannot be modified"
-msgstr ""
+msgstr "이 주문은 잠겨 있어 수정할 수 없습니다"
#: order/models.py:1796
msgid "Item quantity"
-msgstr ""
+msgstr "품목 수량"
#: order/models.py:1814
msgid "Line Number"
-msgstr ""
+msgstr "라인 번호"
#: order/models.py:1815
msgid "Line number for this item (optional)"
-msgstr ""
+msgstr "이 항목의 라인 번호(선택)"
#: order/models.py:1822
msgid "Line item reference"
-msgstr ""
+msgstr "라인 항목 참조"
#: order/models.py:1829
msgid "Line item notes"
-msgstr ""
+msgstr "라인 항목 메모"
#: order/models.py:1844
msgid "Target date for this line item (leave blank to use the target date from the order)"
-msgstr ""
+msgstr "이 라인 항목의 목표일(비워 두면 주문의 목표일을 사용)"
#: order/models.py:1874
msgid "Line item description (optional)"
-msgstr ""
+msgstr "라인 항목 설명(선택)"
#: order/models.py:1881
msgid "Additional context for this line"
-msgstr ""
+msgstr "이 라인의 추가 정보"
#: order/models.py:1891
msgid "Unit price"
-msgstr ""
+msgstr "단가"
#: order/models.py:1910
msgid "Purchase Order Line Item"
-msgstr ""
+msgstr "구매 주문 라인 항목"
#: order/models.py:1939
msgid "Supplier part must match supplier"
-msgstr ""
+msgstr "공급업체 부품은 공급업체와 일치해야 합니다"
#: order/models.py:1944
msgid "Build order must be marked as external"
-msgstr ""
+msgstr "빌드 주문은 외부로 표시되어야 합니다"
#: order/models.py:1951
msgid "Build orders can only be linked to assembly parts"
-msgstr ""
+msgstr "빌드 주문은 조립 부품에만 연결할 수 있습니다"
#: order/models.py:1957
msgid "Build order part must match line item part"
-msgstr ""
+msgstr "빌드 주문 부품은 라인 항목 부품과 일치해야 합니다"
#: order/models.py:1992
msgid "Supplier part"
-msgstr ""
+msgstr "공급업체 부품"
#: order/models.py:1999
msgid "Received"
-msgstr ""
+msgstr "수령됨"
#: order/models.py:2000
msgid "Number of items received"
-msgstr ""
+msgstr "수령된 품목 수"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
-msgstr ""
+msgstr "구매 가격"
#: order/models.py:2009
msgid "Unit purchase price"
-msgstr ""
+msgstr "단위 구매 가격"
#: order/models.py:2025
msgid "External Build Order to be fulfilled by this line item"
-msgstr ""
+msgstr "이 라인 항목으로 이행할 외주 생산 작업 지시서"
#: order/models.py:2087
msgid "Purchase Order Extra Line"
-msgstr ""
+msgstr "구매 주문 추가 라인"
#: order/models.py:2116
msgid "Sales Order Line Item"
-msgstr ""
+msgstr "판매 주문 라인 항목"
#: order/models.py:2143
msgid "Only salable parts can be assigned to a sales order"
-msgstr ""
+msgstr "판매 가능한 부품만 판매 주문에 할당할 수 있습니다"
#: order/models.py:2169
msgid "Sale Price"
-msgstr ""
+msgstr "판매 가격"
#: order/models.py:2170
msgid "Unit sale price"
-msgstr ""
+msgstr "단위 판매 가격"
#: order/models.py:2179 order/status_codes.py:50
msgid "Shipped"
-msgstr ""
+msgstr "발송됨"
#: order/models.py:2180
msgid "Shipped quantity"
-msgstr ""
+msgstr "발송 수량"
#: order/models.py:2292
msgid "Sales Order Shipment"
-msgstr ""
+msgstr "판매 주문 발송"
#: order/models.py:2305
msgid "Shipment address must match the customer"
-msgstr ""
+msgstr "발송 주소는 고객과 일치해야 합니다"
#: order/models.py:2341
msgid "Shipping address for this shipment"
-msgstr ""
+msgstr "이 발송의 배송지 주소"
#: order/models.py:2349
msgid "Date of shipment"
-msgstr ""
+msgstr "발송 날짜"
#: order/models.py:2355
msgid "Delivery Date"
-msgstr ""
+msgstr "배송일"
#: order/models.py:2356
msgid "Date of delivery of shipment"
-msgstr ""
+msgstr "발송물 배송 날짜"
#: order/models.py:2364
msgid "Checked By"
-msgstr ""
+msgstr "확인자"
#: order/models.py:2365
msgid "User who checked this shipment"
-msgstr ""
+msgstr "이 발송을 확인한 사용자"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
-msgstr ""
+msgstr "발송"
#: order/models.py:2373
msgid "Shipment number"
-msgstr ""
+msgstr "발송 번호"
#: order/models.py:2381
msgid "Tracking Number"
-msgstr ""
+msgstr "운송장 번호"
#: order/models.py:2382
msgid "Shipment tracking information"
-msgstr ""
+msgstr "발송 추적 정보"
#: order/models.py:2389
msgid "Invoice Number"
-msgstr ""
+msgstr "송장 번호"
#: order/models.py:2390
msgid "Reference number for associated invoice"
-msgstr ""
+msgstr "연결된 송장의 참조 번호"
#: order/models.py:2436
msgid "Shipment has already been sent"
-msgstr ""
+msgstr "발송이 이미 전송되었습니다"
#: order/models.py:2439
msgid "Shipment has no allocated stock items"
-msgstr ""
+msgstr "발송에 할당된 재고 품목이 없습니다"
#: order/models.py:2446
msgid "Shipment must be checked before it can be completed"
-msgstr ""
+msgstr "발송은 완료하기 전에 확인되어야 합니다"
#: order/models.py:2516
msgid "Sales Order Extra Line"
-msgstr ""
+msgstr "판매 주문 추가 라인"
#: order/models.py:2545
msgid "Sales Order Allocation"
-msgstr ""
+msgstr "판매 주문 할당"
#: order/models.py:2568 order/models.py:2570
msgid "Stock item has not been assigned"
-msgstr ""
+msgstr "재고 품목이 할당되지 않았습니다"
#: order/models.py:2577
msgid "Cannot allocate stock item to a line with a different part"
-msgstr ""
+msgstr "부품이 다른 라인에 재고 품목을 할당할 수 없습니다"
#: order/models.py:2580
msgid "Cannot allocate stock to a line without a part"
-msgstr ""
+msgstr "부품이 없는 라인에는 재고를 할당할 수 없습니다"
#: order/models.py:2583
msgid "Allocation quantity cannot exceed stock quantity"
-msgstr ""
+msgstr "할당 수량은 재고 수량을 초과할 수 없습니다"
#: order/models.py:2599
msgid "Allocation quantity must be greater than zero"
-msgstr ""
+msgstr "할당 수량은 0보다 커야 합니다"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
-msgstr ""
+msgstr "일련번호가 있는 재고 품목의 수량은 1이어야 합니다"
#: order/models.py:2605
msgid "Sales order does not match shipment"
-msgstr ""
+msgstr "판매 주문이 발송과 일치하지 않습니다"
#: order/models.py:2606 plugin/base/barcodes/api.py:643
msgid "Shipment does not match sales order"
-msgstr ""
+msgstr "발송이 판매 주문과 일치하지 않습니다"
#: order/models.py:2614
msgid "Line"
-msgstr ""
+msgstr "라인"
#: order/models.py:2625
msgid "Sales order shipment reference"
-msgstr ""
+msgstr "판매 주문 발송 참조"
#: order/models.py:2638 order/models.py:3064
msgid "Item"
-msgstr ""
+msgstr "품목"
#: order/models.py:2639
msgid "Select stock item to allocate"
-msgstr ""
+msgstr "할당할 재고 품목을 선택하세요"
#: order/models.py:2648
msgid "Enter stock allocation quantity"
-msgstr ""
+msgstr "재고 할당 수량을 입력하세요"
#: order/models.py:2765
msgid "Return Order reference"
-msgstr ""
+msgstr "반품 주문 참조"
#: order/models.py:2777
msgid "Company from which items are being returned"
-msgstr ""
+msgstr "품목이 반품되는 회사"
#: order/models.py:2790
msgid "Return order status"
-msgstr ""
+msgstr "반품 주문 상태"
#: order/models.py:3022
msgid "Return Order Line Item"
-msgstr ""
+msgstr "반품 주문 라인 항목"
#: order/models.py:3035
msgid "Stock item must be specified"
-msgstr ""
+msgstr "재고 품목을 지정해야 합니다"
#: order/models.py:3039
msgid "Return quantity exceeds stock quantity"
-msgstr ""
+msgstr "반품 수량이 재고 수량을 초과합니다"
#: order/models.py:3044
msgid "Return quantity must be greater than zero"
-msgstr ""
+msgstr "반품 수량은 0보다 커야 합니다"
#: order/models.py:3049
msgid "Invalid quantity for serialized stock item"
-msgstr ""
+msgstr "일련번호가 있는 재고 품목에 대한 수량이 올바르지 않습니다"
#: order/models.py:3065
msgid "Select item to return from customer"
-msgstr ""
+msgstr "고객에게서 반품받을 품목을 선택하세요"
#: order/models.py:3080
msgid "Received Date"
-msgstr ""
+msgstr "수령일"
#: order/models.py:3081
msgid "The date this return item was received"
-msgstr ""
+msgstr "이 반품 품목을 수령한 날짜"
#: order/models.py:3093
msgid "Outcome"
-msgstr ""
+msgstr "결과"
#: order/models.py:3094
msgid "Outcome for this line item"
-msgstr ""
+msgstr "이 라인 항목의 결과"
#: order/models.py:3101
msgid "Cost associated with return or repair for this line item"
-msgstr ""
+msgstr "이 라인 항목의 반품 또는 수리에 관련된 비용"
#: order/models.py:3111
msgid "Return Order Extra Line"
-msgstr ""
+msgstr "반품 주문 추가 라인"
#: order/serializers.py:75
msgid "Order ID"
-msgstr ""
+msgstr "주문 ID"
#: order/serializers.py:75
msgid "ID of the order to duplicate"
-msgstr ""
+msgstr "복제할 주문의 ID"
#: order/serializers.py:81
msgid "Copy Lines"
-msgstr ""
+msgstr "라인 복사"
#: order/serializers.py:82
msgid "Copy line items from the original order"
-msgstr ""
+msgstr "원본 주문에서 라인 항목을 복사"
#: order/serializers.py:88
msgid "Copy Extra Lines"
-msgstr ""
+msgstr "추가 라인 복사"
#: order/serializers.py:89
msgid "Copy extra line items from the original order"
-msgstr ""
+msgstr "원본 주문에서 추가 라인 항목을 복사"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
-msgstr ""
+msgstr "매개변수 복사"
#: order/serializers.py:96
msgid "Copy order parameters from the original order"
-msgstr ""
+msgstr "원본 주문에서 주문 매개변수를 복사"
#: order/serializers.py:111
#: report/templates/report/inventree_purchase_order_report.html:29
#: report/templates/report/inventree_return_order_report.html:19
#: report/templates/report/inventree_sales_order_report.html:22
msgid "Line Items"
-msgstr ""
+msgstr "라인 항목"
#: order/serializers.py:116
msgid "Completed Lines"
-msgstr ""
+msgstr "완료된 라인"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
-msgstr ""
+msgstr "주문 복제"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
-msgstr ""
+msgstr "이 주문을 복제하기 위한 옵션을 지정하세요"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
-msgstr ""
+msgstr "유효하지 않은 주문 ID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
-msgstr ""
+msgstr "공급업체 이름"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
-msgstr ""
+msgstr "주문을 취소할 수 없습니다"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
-msgstr ""
+msgstr "미완료 라인 항목이 있어도 주문을 종료할 수 있도록 허용"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
-msgstr ""
+msgstr "주문에 미완료 라인 항목이 있습니다"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
-msgstr ""
+msgstr "주문이 열려 있지 않습니다"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
-msgstr ""
+msgstr "자동 가격 책정"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
-msgstr ""
+msgstr "공급업체 부품 데이터를 기반으로 구매 가격을 자동으로 계산"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
-msgstr ""
+msgstr "구매 가격 통화"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
-msgstr ""
+msgstr "항목 병합"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
-msgstr ""
+msgstr "부품, 목적지, 목표일이 같은 항목을 하나의 라인 항목으로 병합"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
-msgstr ""
+msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
-msgstr ""
+msgstr "내부 부품 번호"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
-msgstr ""
+msgstr "내부 부품 이름"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
-msgstr ""
+msgstr "공급업체 부품을 지정해야 합니다"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
-msgstr ""
+msgstr "구매 주문을 지정해야 합니다"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
-msgstr ""
+msgstr "공급업체는 구매 주문과 일치해야 합니다"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
-msgstr ""
+msgstr "구매 주문은 공급업체와 일치해야 합니다"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
-msgstr ""
+msgstr "라인 항목"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
-msgstr ""
-
-#: order/serializers.py:821
-msgid "Enter batch code for incoming stock items"
-msgstr ""
-
-#: order/serializers.py:828 stock/models.py:1167
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
-msgid "Expiry Date"
-msgstr ""
-
-#: order/serializers.py:829
-msgid "Enter expiry date for incoming stock items"
-msgstr ""
-
-#: order/serializers.py:837
-msgid "Enter serial numbers for incoming stock items"
-msgstr ""
-
-#: order/serializers.py:847
-msgid "Override packaging information for incoming stock items"
-msgstr ""
-
-#: order/serializers.py:855 order/serializers.py:2037
-msgid "Additional note for incoming stock items"
-msgstr ""
+msgstr "수령 품목의 목적지 위치를 선택하세요"
#: order/serializers.py:862
+msgid "Enter batch code for incoming stock items"
+msgstr "입고 재고 품목의 배치 코드를 입력하세요"
+
+#: order/serializers.py:869 stock/models.py:1167
+#: templates/email/stale_stock_notification.html:22 users/models.py:137
+msgid "Expiry Date"
+msgstr "만료일"
+
+#: order/serializers.py:870
+msgid "Enter expiry date for incoming stock items"
+msgstr "입고 재고 품목의 만료일을 입력하세요"
+
+#: order/serializers.py:878
+msgid "Enter serial numbers for incoming stock items"
+msgstr "입고 재고 품목의 일련번호를 입력하세요"
+
+#: order/serializers.py:888
+msgid "Override packaging information for incoming stock items"
+msgstr "입고 재고 품목의 포장 정보를 재정의"
+
+#: order/serializers.py:896 order/serializers.py:2145
+msgid "Additional note for incoming stock items"
+msgstr "입고 재고 품목에 대한 추가 메모"
+
+#: order/serializers.py:903
msgid "Barcode"
-msgstr ""
+msgstr "바코드"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
-msgstr ""
+msgstr "스캔된 바코드"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
-msgstr ""
+msgstr "바코드가 이미 사용 중입니다"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
-msgstr ""
+msgstr "라인 항목을 제공해야 합니다"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
-msgstr ""
+msgstr "목적지 위치를 지정해야 합니다"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
-msgstr ""
+msgstr "제공된 바코드 값은 고유해야 합니다"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
-msgstr ""
+msgstr "발송"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
-msgstr ""
+msgstr "완료된 발송"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
-msgstr ""
+msgstr "할당된 라인"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
-msgstr ""
+msgstr "판매 가격 통화"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
-msgstr ""
+msgstr "할당된 품목"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
-msgstr ""
+msgstr "발송 세부 정보가 제공되지 않았습니다"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
-msgstr ""
+msgstr "라인 항목이 이 주문과 연결되어 있지 않습니다"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
-msgstr ""
+msgstr "수량은 양수여야 합니다"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
-msgstr ""
+msgstr "할당할 일련번호를 입력하세요"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
-msgstr ""
+msgstr "발송이 이미 발송되었습니다"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
-msgstr ""
+msgstr "발송이 이 주문과 연결되어 있지 않습니다"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
-msgstr ""
+msgstr "다음 일련번호에 대한 일치 항목을 찾을 수 없습니다"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
-msgstr ""
+msgstr "다음 일련번호는 사용할 수 없습니다"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
-msgstr ""
+msgstr "반품 주문 라인 항목"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
-msgstr ""
+msgstr "라인 항목이 반품 주문과 일치하지 않습니다"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
-msgstr ""
+msgstr "라인 항목이 이미 수령되었습니다"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
-msgstr ""
+msgstr "진행 중인 주문에 대해서만 품목을 수령할 수 있습니다"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
-msgstr ""
+msgstr "반품 수량"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
-msgstr ""
+msgstr "라인 가격 통화"
#: 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:55 stock/status_codes.py:24
msgid "Returned"
-msgstr ""
+msgstr "반품됨"
#: order/status_codes.py:47 order/status_codes.py:79
msgid "In Progress"
-msgstr ""
+msgstr "진행 중"
#: order/status_codes.py:105
msgid "Return"
-msgstr ""
+msgstr "반품"
#: order/status_codes.py:108
msgid "Repair"
-msgstr ""
+msgstr "수리"
#: order/status_codes.py:111
msgid "Replace"
-msgstr ""
+msgstr "교체"
#: order/status_codes.py:114
msgid "Refund"
-msgstr ""
+msgstr "환불"
#: order/status_codes.py:117
msgid "Reject"
-msgstr ""
+msgstr "거부"
#: order/tasks.py:48
msgid "Overdue Purchase Order"
-msgstr ""
+msgstr "기한 초과 구매 주문"
#: order/tasks.py:53
#, python-brace-format
msgid "Purchase order {po} is now overdue"
-msgstr ""
+msgstr "구매 주문 {po}가 이제 기한을 초과했습니다"
#: order/tasks.py:118
msgid "Overdue Sales Order"
-msgstr ""
+msgstr "기한 초과 판매 주문"
#: order/tasks.py:123
#, python-brace-format
msgid "Sales order {so} is now overdue"
-msgstr ""
+msgstr "판매 주문 {so}가 이제 기한을 초과했습니다"
#: order/tasks.py:185
msgid "Overdue Return Order"
-msgstr ""
+msgstr "기한 초과 반품 주문"
#: order/tasks.py:190
#, python-brace-format
msgid "Return order {ro} is now overdue"
-msgstr ""
+msgstr "반품 주문 {ro}가 이제 기한을 초과했습니다"
#: part/api.py:88
msgid "Starred"
-msgstr ""
+msgstr "즐겨찾기"
#: part/api.py:90
msgid "Filter by starred categories"
-msgstr ""
+msgstr "즐겨찾기 카테고리로 필터"
#: part/api.py:107 stock/api.py:287
msgid "Depth"
-msgstr ""
+msgstr "깊이"
#: part/api.py:107
msgid "Filter by category depth"
-msgstr ""
+msgstr "카테고리 깊이로 필터"
#: part/api.py:125 stock/api.py:305
msgid "Top Level"
-msgstr ""
+msgstr "최상위"
#: part/api.py:127
msgid "Filter by top-level categories"
-msgstr ""
+msgstr "최상위 카테고리로 필터"
#: part/api.py:140 stock/api.py:320
msgid "Cascade"
-msgstr ""
+msgstr "계층 포함"
#: part/api.py:142
msgid "Include sub-categories in filtered results"
-msgstr ""
+msgstr "필터 결과에 하위 카테고리를 포함"
#: part/api.py:162
msgid "Parent"
-msgstr ""
+msgstr "상위"
#: part/api.py:164
msgid "Filter by parent category"
-msgstr ""
+msgstr "상위 카테고리로 필터"
#: part/api.py:199
msgid "Exclude sub-categories under the specified category"
-msgstr ""
+msgstr "지정된 카테고리 아래의 하위 카테고리를 제외"
#: part/api.py:424
msgid "Has Results"
-msgstr ""
+msgstr "결과 있음"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
-msgstr ""
+msgstr "변형 여부"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
-msgstr ""
+msgstr "리비전 여부"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
-msgstr ""
+msgstr "리비전 있음"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
-msgstr ""
-
-#: part/api.py:961
-msgid "Cascade Categories"
-msgstr ""
+msgstr "BOM 유효"
#: part/api.py:962
+msgid "Cascade Categories"
+msgstr "카테고리 계층 포함"
+
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
-msgstr ""
+msgstr "참이면 지정된 카테고리의 하위 카테고리에 있는 항목을 포함합니다"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
-msgstr ""
+msgstr "숫자 카테고리 ID 또는 'null' 값으로 필터"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
-msgstr ""
+msgstr "조립 부품이 활성 상태"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
-msgstr ""
+msgstr "조립 부품을 추적할 수 있음"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
-msgstr ""
+msgstr "조립 부품을 테스트할 수 있음"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
-msgstr ""
+msgstr "구성 부품이 활성 상태"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
-msgstr ""
+msgstr "구성 부품을 추적할 수 있음"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
-msgstr ""
+msgstr "구성 부품을 테스트할 수 있음"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
-msgstr ""
+msgstr "구성 부품이 조립품임"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
-msgstr ""
+msgstr "구성 부품이 가상 부품임"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
-msgstr ""
+msgstr "사용 가능한 재고 있음"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
-msgstr ""
+msgstr "사용"
#: part/models.py:92 part/models.py:413
#: templates/email/part_event_notification.html:16
msgid "Part Category"
-msgstr ""
+msgstr "부품 카테고리"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
-msgstr ""
+msgstr "부품 카테고리"
#: part/models.py:111 part/models.py:1187
msgid "Default Location"
-msgstr ""
+msgstr "기본 위치"
#: part/models.py:112
msgid "Default location for parts in this category"
-msgstr ""
+msgstr "이 카테고리의 부품 기본 위치"
#: part/models.py:117 stock/models.py:204
msgid "Structural"
-msgstr ""
+msgstr "구조적"
#: part/models.py:119
msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories."
-msgstr ""
+msgstr "부품은 구조 카테고리에 직접 할당할 수 없지만, 하위 카테고리에 할당할 수 있습니다."
#: part/models.py:128
msgid "Default keywords"
-msgstr ""
+msgstr "기본 키워드"
#: part/models.py:129
msgid "Default keywords for parts in this category"
-msgstr ""
+msgstr "이 카테고리의 부품 기본 키워드"
#: part/models.py:136 stock/models.py:99 stock/models.py:186
msgid "Icon"
-msgstr ""
+msgstr "아이콘"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
-msgstr ""
+msgstr "아이콘(선택)"
#: part/models.py:181
msgid "You cannot make this part category structural because some parts are already assigned to it!"
-msgstr ""
+msgstr "일부 부품이 이미 이 카테고리에 할당되어 있어 이 부품 카테고리를 구조적으로 만들 수 없습니다!"
#: part/models.py:369
msgid "Part Category Parameter Template"
-msgstr ""
+msgstr "부품 카테고리 매개변수 템플릿"
#: part/models.py:425
msgid "Default Value"
-msgstr ""
+msgstr "기본값"
#: part/models.py:426
msgid "Default Parameter Value"
-msgstr ""
+msgstr "기본 매개변수 값"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
-msgstr ""
+msgstr "부품"
#: part/models.py:574
msgid "Cannot delete parameters of a locked part"
-msgstr ""
+msgstr "잠긴 부품의 매개변수는 삭제할 수 없습니다"
#: part/models.py:579
msgid "Cannot modify parameters of a locked part"
-msgstr ""
+msgstr "잠긴 부품의 매개변수는 수정할 수 없습니다"
#: part/models.py:590
msgid "Cannot delete this part as it is locked"
-msgstr ""
+msgstr "잠겨 있어 이 부품을 삭제할 수 없습니다"
#: part/models.py:593
msgid "Cannot delete this part as it is still active"
-msgstr ""
+msgstr "여전히 활성 상태라 이 부품을 삭제할 수 없습니다"
#: part/models.py:598
msgid "Cannot delete this part as it is used in an assembly"
-msgstr ""
+msgstr "조립품에 사용 중이라 이 부품을 삭제할 수 없습니다"
#: part/models.py:682 part/models.py:689
#, python-brace-format
msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)"
-msgstr ""
+msgstr "부품 '{self}'은(는) '{parent}'의 BOM에 사용할 수 없습니다(순환 참조)"
#: part/models.py:701
#, python-brace-format
msgid "Part '{parent}' is used in BOM for '{self}' (recursive)"
-msgstr ""
+msgstr "부품 '{parent}'이(가) '{self}'의 BOM에 사용되고 있습니다(순환 참조)"
#: part/models.py:768
#, python-brace-format
msgid "IPN must match regex pattern {pattern}"
-msgstr ""
+msgstr "IPN은 정규식 패턴 {pattern}과 일치해야 합니다"
#: part/models.py:776
msgid "Part cannot be a revision of itself"
-msgstr ""
+msgstr "부품은 자기 자신의 개정이 될 수 없습니다"
#: part/models.py:783
msgid "Revision code must be specified for a part marked as a revision"
-msgstr ""
+msgstr "개정으로 표시된 부품에는 개정 코드가 지정되어야 합니다"
#: part/models.py:791
msgid "Revisions are only allowed for assembly parts"
-msgstr ""
+msgstr "개정은 조립 부품에만 허용됩니다"
#: part/models.py:798
msgid "Cannot make a revision of a template part"
-msgstr ""
+msgstr "템플릿 부품의 개정을 만들 수 없습니다"
#: part/models.py:804
msgid "Parent part must point to the same template"
-msgstr ""
+msgstr "상위 부품은 동일한 템플릿을 가리켜야 합니다"
#: part/models.py:901
msgid "Stock item with this serial number already exists"
-msgstr ""
+msgstr "이 일련번호의 재고 항목이 이미 존재합니다"
#: part/models.py:1031
msgid "Duplicate IPN not allowed in part settings"
-msgstr ""
+msgstr "부품 설정에서 중복 IPN은 허용되지 않습니다"
#: part/models.py:1044
msgid "Duplicate part revision already exists."
-msgstr ""
+msgstr "중복된 부품 개정이 이미 존재합니다."
#: part/models.py:1054
msgid "Part with this Name, IPN and Revision already exists."
-msgstr ""
+msgstr "이 이름, IPN 및 개정의 부품이 이미 존재합니다."
#: part/models.py:1069
msgid "Parts cannot be assigned to structural part categories!"
-msgstr ""
+msgstr "부품은 구조 부품 카테고리에 할당할 수 없습니다!"
#: part/models.py:1101
msgid "Part name"
-msgstr ""
+msgstr "부품 이름"
#: part/models.py:1106
msgid "Is Template"
-msgstr ""
+msgstr "템플릿 여부"
#: part/models.py:1107
msgid "Is this part a template part?"
-msgstr ""
+msgstr "이 부품은 템플릿 부품인가요?"
#: part/models.py:1117
msgid "Is this part a variant of another part?"
-msgstr ""
+msgstr "이 부품은 다른 부품의 변형(Variant)인가요?"
#: part/models.py:1118
msgid "Variant Of"
-msgstr ""
+msgstr "변형 대상"
#: part/models.py:1125
msgid "Part description (optional)"
-msgstr ""
+msgstr "부품 설명(선택)"
#: part/models.py:1132
msgid "Keywords"
-msgstr ""
+msgstr "키워드"
#: part/models.py:1133
msgid "Part keywords to improve visibility in search results"
-msgstr ""
+msgstr "검색 결과에서 가시성을 높이기 위한 부품 키워드"
#: part/models.py:1143
msgid "Part category"
-msgstr ""
+msgstr "부품 카테고리"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
-msgstr ""
+msgstr "IPN"
#: part/models.py:1158
msgid "Part revision or version number"
-msgstr ""
+msgstr "부품 개정 또는 버전 번호"
#: part/models.py:1159 report/models.py:231
msgid "Revision"
-msgstr ""
+msgstr "개정"
#: part/models.py:1168
msgid "Is this part a revision of another part?"
-msgstr ""
+msgstr "이 부품은 다른 부품의 개정인가요?"
#: part/models.py:1169
msgid "Revision Of"
-msgstr ""
+msgstr "개정 대상"
#: part/models.py:1185
msgid "Where is this item normally stored?"
-msgstr ""
+msgstr "이 항목은 보통 어디에 보관되나요?"
#: part/models.py:1222
msgid "Default Expiry"
-msgstr ""
+msgstr "기본 만료"
#: part/models.py:1223
msgid "Expiry time (in days) for stock items of this part"
-msgstr ""
+msgstr "이 부품의 재고 항목 만료 기간(일)"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
-msgstr ""
+msgstr "최소 재고"
#: part/models.py:1232
msgid "Minimum allowed stock level"
-msgstr ""
+msgstr "허용되는 최소 재고 수준"
#: part/models.py:1241
msgid "Units of measure for this part"
-msgstr ""
+msgstr "이 부품의 측정 단위"
#: part/models.py:1248
msgid "Can this part be built from other parts?"
-msgstr ""
+msgstr "이 부품을 다른 부품으로 조립/제작할 수 있나요?"
#: part/models.py:1254
msgid "Can this part be used to build other parts?"
-msgstr ""
+msgstr "이 부품을 사용해 다른 부품을 제작할 수 있나요?"
#: part/models.py:1260
msgid "Does this part have tracking for unique items?"
-msgstr ""
+msgstr "이 부품에 고유 항목 추적 기능이 있나요?"
#: part/models.py:1266
msgid "Can this part have test results recorded against it?"
-msgstr ""
+msgstr "이 부품에 대한 테스트 결과를 기록할 수 있나요?"
#: part/models.py:1272
msgid "Can this part be purchased from external suppliers?"
-msgstr ""
+msgstr "이 부품을 외부 공급업체에서 구매할 수 있나요?"
#: part/models.py:1278
msgid "Can this part be sold to customers?"
-msgstr ""
+msgstr "이 부품을 고객에게 판매할 수 있나요?"
#: part/models.py:1282
msgid "Is this part active?"
-msgstr ""
+msgstr "이 부품이 활성 상태인가요?"
#: part/models.py:1288
msgid "Locked parts cannot be edited"
-msgstr ""
+msgstr "잠긴 부품은 편집할 수 없습니다"
#: part/models.py:1294
msgid "Is this a virtual part, such as a software product or license?"
-msgstr ""
+msgstr "소프트웨어 제품이나 라이선스 같은 가상 부품인가요?"
#: part/models.py:1299
msgid "BOM Validated"
-msgstr ""
+msgstr "BOM 검증됨"
#: part/models.py:1300
msgid "Is the BOM for this part valid?"
-msgstr ""
+msgstr "이 부품의 BOM이 유효한가요?"
#: part/models.py:1306
msgid "BOM checksum"
-msgstr ""
+msgstr "BOM 체크섬"
#: part/models.py:1307
msgid "Stored BOM checksum"
-msgstr ""
+msgstr "저장된 BOM 체크섬"
#: part/models.py:1315
msgid "BOM checked by"
-msgstr ""
+msgstr "BOM 검증자"
#: part/models.py:1320
msgid "BOM checked date"
-msgstr ""
+msgstr "BOM 검증 날짜"
#: part/models.py:1336
msgid "Creation User"
-msgstr ""
+msgstr "생성 사용자"
#: part/models.py:1346
msgid "Owner responsible for this part"
-msgstr ""
+msgstr "이 부품의 책임 소유자"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
-msgstr ""
+msgstr "판매 배수"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
-msgstr ""
+msgstr "가격 계산 캐시에 사용되는 통화"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
-msgstr ""
+msgstr "최소 BOM 비용"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
-msgstr ""
+msgstr "구성 부품의 최소 비용"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
-msgstr ""
+msgstr "최대 BOM 비용"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
-msgstr ""
+msgstr "구성 부품의 최대 비용"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
-msgstr ""
+msgstr "최소 구매 비용"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
-msgstr ""
+msgstr "과거 구매 비용의 최소값"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
-msgstr ""
+msgstr "최대 구매 비용"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
-msgstr ""
+msgstr "과거 구매 비용의 최대값"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
-msgstr ""
+msgstr "최소 내부 가격"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
-msgstr ""
+msgstr "내부 가격 구간에 기반한 최소 비용"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
-msgstr ""
+msgstr "최대 내부 가격"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
-msgstr ""
+msgstr "내부 가격 구간에 기반한 최대 비용"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
-msgstr ""
+msgstr "최소 공급업체 가격"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
-msgstr ""
+msgstr "외부 공급업체로부터의 최소 가격"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
-msgstr ""
+msgstr "최대 공급업체 가격"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
-msgstr ""
+msgstr "외부 공급업체로부터의 최대 가격"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
-msgstr ""
+msgstr "최소 변형 비용"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
-msgstr ""
+msgstr "변형 부품의 계산된 최소 비용"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
-msgstr ""
+msgstr "최대 변형 비용"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
-msgstr ""
+msgstr "변형 부품의 계산된 최대 비용"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
-msgstr ""
+msgstr "최소 비용"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
-msgstr ""
+msgstr "최소 비용 재정의"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
-msgstr ""
+msgstr "최대 비용"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
-msgstr ""
+msgstr "최대 비용 재정의"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
-msgstr ""
+msgstr "계산된 전체 최소 비용"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
-msgstr ""
+msgstr "계산된 전체 최대 비용"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
-msgstr ""
+msgstr "최소 판매 가격"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
-msgstr ""
+msgstr "가격 구간에 기반한 최소 판매 가격"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
-msgstr ""
+msgstr "최대 판매 가격"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
-msgstr ""
+msgstr "가격 구간에 기반한 최대 판매 가격"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
-msgstr ""
+msgstr "최소 판매 비용"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
-msgstr ""
+msgstr "과거 판매 가격의 최소값"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
-msgstr ""
+msgstr "최대 판매 비용"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
-msgstr ""
+msgstr "과거 판매 가격의 최대값"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
-msgstr ""
-
-#: part/models.py:3467
-msgid "Item Count"
-msgstr ""
-
-#: part/models.py:3468
-msgid "Number of individual stock entries at time of stocktake"
-msgstr ""
+msgstr "재고 조사 대상 부품"
#: part/models.py:3476
-msgid "Total available stock at time of stocktake"
-msgstr ""
+msgid "Item Count"
+msgstr "항목 수"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3477
+msgid "Number of individual stock entries at time of stocktake"
+msgstr "재고 조사 시점의 개별 재고 항목 수"
+
+#: part/models.py:3485
+msgid "Total available stock at time of stocktake"
+msgstr "재고 조사 시점의 사용 가능한 총 재고"
+
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
-msgstr ""
+msgstr "날짜"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
-msgstr ""
+msgstr "재고 조사가 수행된 날짜"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
-msgstr ""
+msgstr "최소 재고 비용"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
-msgstr ""
+msgstr "보유 재고의 추정 최소 비용"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
-msgstr ""
+msgstr "최대 재고 비용"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
-msgstr ""
+msgstr "보유 재고의 추정 최대 비용"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
-msgstr ""
+msgstr "부품 판매 가격 구간"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
-msgstr ""
+msgstr "부품 테스트 템플릿"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
-msgstr ""
+msgstr "템플릿 이름이 올바르지 않습니다 - 영숫자 문자를 최소 1개 포함해야 합니다"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
-msgstr ""
+msgstr "테스트 템플릿은 테스트 가능한 부품에만 만들 수 있습니다"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
-msgstr ""
+msgstr "같은 키의 테스트 템플릿이 이 부품에 이미 존재합니다"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
-msgstr ""
+msgstr "테스트 이름"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
-msgstr ""
-
-#: part/models.py:3716
-msgid "Test Key"
-msgstr ""
-
-#: part/models.py:3717
-msgid "Simplified key for the test"
-msgstr ""
-
-#: part/models.py:3724
-msgid "Test Description"
-msgstr ""
+msgstr "테스트 이름을 입력하세요"
#: part/models.py:3725
-msgid "Enter description for this test"
-msgstr ""
+msgid "Test Key"
+msgstr "테스트 키"
-#: part/models.py:3729
-msgid "Is this test enabled?"
-msgstr ""
+#: part/models.py:3726
+msgid "Simplified key for the test"
+msgstr "테스트를 위한 단순화된 키"
+
+#: part/models.py:3733
+msgid "Test Description"
+msgstr "테스트 설명"
#: part/models.py:3734
+msgid "Enter description for this test"
+msgstr "이 테스트에 대한 설명을 입력하세요"
+
+#: part/models.py:3738
+msgid "Is this test enabled?"
+msgstr "이 테스트가 활성화되어 있나요?"
+
+#: part/models.py:3743
msgid "Required"
-msgstr ""
+msgstr "필수"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
-msgstr ""
+msgstr "이 테스트는 통과가 필수인가요?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
-msgstr ""
+msgstr "값 필요"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
-msgstr ""
-
-#: part/models.py:3746
-msgid "Requires Attachment"
-msgstr ""
-
-#: part/models.py:3748
-msgid "Does this test require a file attachment when adding a test result?"
-msgstr ""
+msgstr "테스트 결과를 추가할 때 값이 필요한가요?"
#: part/models.py:3755
+msgid "Requires Attachment"
+msgstr "첨부 필요"
+
+#: part/models.py:3757
+msgid "Does this test require a file attachment when adding a test result?"
+msgstr "테스트 결과를 추가할 때 파일 첨부가 필요한가요?"
+
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
-msgstr ""
+msgstr "이 테스트의 유효한 선택지(쉼표로 구분)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
-msgstr ""
+msgstr "조립품이 잠겨 있어 BOM 항목을 수정할 수 없습니다"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
-msgstr ""
+msgstr "변형 조립품이 잠겨 있어 BOM 항목을 수정할 수 없습니다"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
-msgstr ""
-
-#: part/models.py:3976
-msgid "Sub part"
-msgstr ""
-
-#: part/models.py:3977
-msgid "Select part to be used in BOM"
-msgstr ""
+msgstr "상위 부품을 선택하세요"
#: part/models.py:3988
-msgid "BOM quantity for this BOM item"
-msgstr ""
+msgid "Sub part"
+msgstr "하위 부품"
-#: part/models.py:3994
-msgid "This BOM item is optional"
-msgstr ""
+#: part/models.py:3989
+msgid "Select part to be used in BOM"
+msgstr "BOM에 사용할 부품을 선택하세요"
#: part/models.py:4000
+msgid "BOM quantity for this BOM item"
+msgstr "이 BOM 항목의 BOM 수량"
+
+#: part/models.py:4006
+msgid "This BOM item is optional"
+msgstr "이 BOM 항목은 선택 사항입니다"
+
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
-msgstr ""
+msgstr "이 BOM 항목은 소모품입니다(제작 주문에서 추적되지 않음)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
-msgstr ""
+msgstr "설정 수량"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
-msgstr ""
+msgstr "설정 손실을 고려해 제작에 추가로 필요한 수량"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
-msgstr ""
+msgstr "손실률"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
-msgstr ""
+msgstr "제작 손실률 추정치(백분율, 0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
-msgstr ""
+msgstr "반올림 배수"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
-msgstr ""
+msgstr "필요 생산 수량을 이 값의 가장 가까운 배수로 올림합니다"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
-msgstr ""
-
-#: part/models.py:4048
-msgid "BOM item notes"
-msgstr ""
-
-#: part/models.py:4054
-msgid "Checksum"
-msgstr ""
-
-#: part/models.py:4055
-msgid "BOM line checksum"
-msgstr ""
+msgstr "BOM 항목 참조"
#: part/models.py:4060
-msgid "Validated"
-msgstr ""
-
-#: part/models.py:4061
-msgid "This BOM item has been validated"
-msgstr ""
+msgid "BOM item notes"
+msgstr "BOM 항목 메모"
#: part/models.py:4066
-msgid "Gets inherited"
-msgstr ""
+msgid "Checksum"
+msgstr "체크섬"
#: part/models.py:4067
-msgid "This BOM item is inherited by BOMs for variant parts"
-msgstr ""
+msgid "BOM line checksum"
+msgstr "BOM 라인 체크섬"
+
+#: part/models.py:4072
+msgid "Validated"
+msgstr "검증됨"
#: part/models.py:4073
+msgid "This BOM item has been validated"
+msgstr "이 BOM 항목이 검증되었습니다"
+
+#: part/models.py:4078
+msgid "Gets inherited"
+msgstr "상속됨"
+
+#: part/models.py:4079
+msgid "This BOM item is inherited by BOMs for variant parts"
+msgstr "이 BOM 항목은 변형 부품의 BOM에 상속됩니다"
+
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
-msgstr ""
+msgstr "변형 부품의 재고 항목을 이 BOM 항목에 사용할 수 있습니다"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
-msgstr ""
+msgstr "추적 가능한 부품의 수량은 정수여야 합니다"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
-msgstr ""
+msgstr "하위 부품을 지정해야 합니다"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
-msgstr ""
+msgstr "BOM 항목 대체품"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
-msgstr ""
+msgstr "대체 부품은 기준 부품과 같을 수 없습니다"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
-msgstr ""
+msgstr "상위 BOM 항목"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
-msgstr ""
+msgstr "대체 부품"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
-msgstr ""
+msgstr "부품 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
-msgstr ""
+msgstr "부품 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
-msgstr ""
+msgstr "관련 부품 선택"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
-msgstr ""
+msgstr "이 관계에 대한 메모"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
-msgstr ""
+msgstr "부품과 자기 자신 사이에는 부품 관계를 만들 수 없습니다"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
-msgstr ""
+msgstr "중복된 관계가 이미 존재합니다"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
-msgstr ""
+msgstr "상위 카테고리"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
-msgstr ""
+msgstr "상위 부품 카테고리"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
-msgstr ""
+msgstr "하위 카테고리"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
-msgstr ""
+msgstr "결과"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
-msgstr ""
+msgstr "이 템플릿에 대해 기록된 결과 수"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
-msgstr ""
+msgstr "이 재고 항목의 구매 통화"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
-msgstr ""
+msgstr "파일이 이미지가 아닙니다"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
-msgstr ""
+msgstr "원본 부품"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
-msgstr ""
+msgstr "복제할 원본 부품을 선택하세요"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
-msgstr ""
+msgstr "이미지 복사"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
-msgstr ""
+msgstr "원본 부품의 이미지를 복사합니다"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
-msgstr ""
+msgstr "BOM 복사"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
-msgstr ""
+msgstr "원본 부품의 자재 명세서(BOM)를 복사합니다"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
-msgstr ""
+msgstr "원본 부품의 매개변수 데이터를 복사합니다"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
-msgstr ""
+msgstr "메모 복사"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
-msgstr ""
+msgstr "원본 부품의 메모를 복사합니다"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
-msgstr ""
+msgstr "테스트 복사"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
-msgstr ""
+msgstr "원본 부품의 테스트 템플릿을 복사합니다"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
-msgstr ""
+msgstr "초기 재고 수량"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
-msgstr ""
+msgstr "이 부품의 초기 재고 수량을 지정하세요. 수량이 0이면 재고가 추가되지 않습니다."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
-msgstr ""
+msgstr "초기 재고 위치"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
-msgstr ""
+msgstr "이 부품의 초기 재고 위치를 지정하세요"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
-msgstr ""
+msgstr "공급업체를 선택하세요(또는 비워 두고 건너뛰기)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
-msgstr ""
+msgstr "제조사를 선택하세요(또는 비워 두고 건너뛰기)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
-msgstr ""
+msgstr "제조사 부품 번호"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
-msgstr ""
+msgstr "선택한 회사는 유효한 공급업체가 아닙니다"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
-msgstr ""
+msgstr "선택한 회사는 유효한 제조사가 아닙니다"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
-msgstr ""
+msgstr "이 MPN과 일치하는 제조사 부품이 이미 존재합니다"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
-msgstr ""
+msgstr "이 SKU와 일치하는 공급업체 부품이 이미 존재합니다"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
-msgstr ""
+msgstr "카테고리 이름"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
-msgstr ""
+msgstr "제작 중"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
-msgstr ""
+msgstr "현재 생산 중인 이 부품의 수량"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
-msgstr ""
+msgstr "제작 예정인 이 부품의 미완료 수량"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
-msgstr ""
+msgstr "재고 항목"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
-msgstr ""
+msgstr "개정"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
-msgstr ""
+msgstr "총 재고"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
-msgstr ""
+msgstr "미할당 재고"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
-msgstr ""
+msgstr "변형 재고"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
-msgstr ""
+msgstr "부품 복제"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
-msgstr ""
+msgstr "다른 부품에서 초기 데이터를 복사합니다"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
-msgstr ""
+msgstr "초기 재고"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
-msgstr ""
+msgstr "초기 재고 수량과 함께 부품을 생성합니다"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
-msgstr ""
+msgstr "공급업체 정보"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
-msgstr ""
+msgstr "이 부품에 대한 초기 공급업체 정보를 추가합니다"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
-msgstr ""
+msgstr "카테고리 매개변수 복사"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
-msgstr ""
+msgstr "선택한 부품 카테고리의 매개변수 템플릿을 복사합니다"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
-msgstr ""
+msgstr "기존 이미지"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
-msgstr ""
+msgstr "기존 부품 이미지의 파일명"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
-msgstr ""
+msgstr "이미지 파일이 존재하지 않습니다"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
-msgstr ""
+msgstr "전체 자재 명세서(BOM) 검증"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
-msgstr ""
+msgstr "제작 가능"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
-msgstr ""
+msgstr "제작 주문에 필요"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
-msgstr ""
+msgstr "제작 주문에 할당됨"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
-msgstr ""
+msgstr "판매 주문에 필요"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
-msgstr ""
+msgstr "판매 주문에 할당됨"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
-msgstr ""
+msgstr "부품 IPN"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
-msgstr ""
+msgstr "부품 설명"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
-msgstr ""
+msgstr "재고 조사 정보를 생성할 부품을 선택하세요(및 모든 변형 부품)."
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
-msgstr ""
+msgstr "해당 카테고리(및 하위 카테고리)의 모든 부품을 포함할 카테고리를 선택하세요"
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
-msgstr ""
+msgstr "해당 위치(하위 위치 포함)에 재고가 있는 모든 부품을 포함할 위치를 선택하세요"
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
-msgstr ""
+msgstr "재고 조사 항목 생성"
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
-msgstr ""
+msgstr "선택한 부품에 대한 재고 조사 항목을 저장합니다"
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
-msgstr ""
+msgstr "보고서 생성"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
-msgstr ""
+msgstr "선택한 부품에 대한 재고 조사 보고서를 생성합니다"
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
-msgstr ""
+msgstr "최소 가격"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
-msgstr ""
+msgstr "계산된 최소 가격 값을 재정의합니다"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
-msgstr ""
+msgstr "최소 가격 통화"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
-msgstr ""
+msgstr "최대 가격"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
-msgstr ""
+msgstr "계산된 최대 가격 값을 재정의합니다"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
-msgstr ""
+msgstr "최대 가격 통화"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
-msgstr ""
+msgstr "업데이트"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
-msgstr ""
+msgstr "이 부품의 가격 정보를 업데이트합니다"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
-msgstr ""
+msgstr "제공된 통화를 {default_currency}(으)로 변환할 수 없습니다"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
-msgstr ""
+msgstr "최소 가격은 최대 가격보다 클 수 없습니다"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
-msgstr ""
+msgstr "최대 가격은 최소 가격보다 작을 수 없습니다"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
-msgstr ""
+msgstr "수량은 0 이상이어야 합니다"
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
-msgstr ""
+msgstr "상위 조립품을 선택하세요"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
-msgstr ""
+msgstr "구성 부품을 선택하세요"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
-msgstr ""
+msgstr "BOM을 복사할 부품을 선택하세요"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
-msgstr ""
+msgstr "기존 데이터 제거"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
-msgstr ""
+msgstr "복사하기 전에 기존 BOM 항목을 제거합니다"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
-msgstr ""
+msgstr "상속 항목 포함"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
-msgstr ""
+msgstr "템플릿 부품에서 상속된 BOM 항목 포함"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
-msgstr ""
+msgstr "잘못된 행 건너뛰기"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
-msgstr ""
+msgstr "이 옵션을 사용하면 잘못된 행을 건너뜁니다"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
-msgstr ""
+msgstr "대체 부품 복사"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
-msgstr ""
+msgstr "BOM 항목을 복제할 때 대체 부품도 복사"
#: part/tasks.py:42
msgid "Low stock notification"
-msgstr ""
+msgstr "재고 부족 알림"
#: part/tasks.py:44
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
-msgstr ""
+msgstr "{part.name}의 사용 가능한 재고가 설정된 최소 수준 아래로 떨어졌습니다"
#: part/tasks.py:74
msgid "Stale stock notification"
-msgstr ""
+msgstr "유통기한 임박 재고 알림"
#: part/tasks.py:78
msgid "You have 1 stock item approaching its expiry date"
-msgstr ""
+msgstr "유통기한이 임박한 재고 항목이 1개 있습니다"
#: part/tasks.py:80
#, python-brace-format
msgid "You have {item_count} stock items approaching their expiry dates"
-msgstr ""
+msgstr "유통기한이 임박한 재고 항목이 {item_count}개 있습니다"
#: part/tasks.py:89
msgid "No expiry date"
-msgstr ""
+msgstr "유통기한 없음"
#: part/tasks.py:96
msgid "Expired {abs(days_diff)} days ago"
-msgstr ""
+msgstr "{abs(days_diff)}일 전에 만료됨"
#: part/tasks.py:99
msgid "Expires today"
-msgstr ""
+msgstr "오늘 만료됨"
#: part/tasks.py:102
#, python-brace-format
msgid "{days_until_expiry} days"
-msgstr ""
+msgstr "{days_until_expiry}일"
#: plugin/api.py:80
msgid "Builtin"
-msgstr ""
+msgstr "내장"
#: plugin/api.py:94
msgid "Mandatory"
-msgstr ""
+msgstr "필수"
#: plugin/api.py:109
msgid "Sample"
-msgstr ""
+msgstr "샘플"
#: plugin/api.py:123 plugin/models.py:167
msgid "Installed"
-msgstr ""
+msgstr "설치됨"
#: plugin/api.py:190
msgid "Plugin cannot be deleted as it is currently active"
-msgstr ""
+msgstr "플러그인이 현재 활성 상태이므로 삭제할 수 없습니다"
#: plugin/base/action/api.py:56
msgid "No action specified"
-msgstr ""
+msgstr "작업이 지정되지 않았습니다"
#: plugin/base/action/api.py:70
msgid "No matching action found"
-msgstr ""
+msgstr "일치하는 작업을 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:212
msgid "No match found for barcode data"
-msgstr ""
+msgstr "바코드 데이터와 일치하는 항목을 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:216
msgid "Match found for barcode data"
-msgstr ""
+msgstr "바코드 데이터와 일치하는 항목을 찾았습니다"
#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
-msgstr ""
+msgstr "지원되지 않는 모델입니다"
#: plugin/base/barcodes/api.py:259
msgid "Model instance not found"
-msgstr ""
+msgstr "모델 인스턴스를 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:288
msgid "Barcode matches existing item"
-msgstr ""
+msgstr "바코드가 기존 항목과 일치합니다"
#: plugin/base/barcodes/api.py:419
msgid "No matching part data found"
-msgstr ""
+msgstr "일치하는 부품 데이터를 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:435
msgid "No matching supplier parts found"
-msgstr ""
+msgstr "일치하는 공급업체 부품을 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:438
msgid "Multiple matching supplier parts found"
-msgstr ""
+msgstr "일치하는 공급업체 부품이 여러 개 있습니다"
#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:678
msgid "No matching plugin found for barcode data"
-msgstr ""
+msgstr "바코드 데이터에 일치하는 플러그인을 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:461
msgid "Matched supplier part"
-msgstr ""
+msgstr "공급업체 부품과 일치함"
#: plugin/base/barcodes/api.py:529
msgid "Item has already been received"
-msgstr ""
+msgstr "항목이 이미 입고되었습니다"
#: plugin/base/barcodes/api.py:577
msgid "No plugin match for supplier barcode"
-msgstr ""
+msgstr "공급업체 바코드에 일치하는 플러그인이 없습니다"
#: plugin/base/barcodes/api.py:626
msgid "Multiple matching line items found"
-msgstr ""
+msgstr "일치하는 라인 항목이 여러 개 있습니다"
#: plugin/base/barcodes/api.py:629
msgid "No matching line item found"
-msgstr ""
+msgstr "일치하는 라인 항목을 찾을 수 없습니다"
#: plugin/base/barcodes/api.py:675
msgid "No sales order provided"
-msgstr ""
+msgstr "판매 주문이 제공되지 않았습니다"
#: plugin/base/barcodes/api.py:684
msgid "Barcode does not match an existing stock item"
-msgstr ""
+msgstr "바코드가 기존 재고 항목과 일치하지 않습니다"
#: plugin/base/barcodes/api.py:700
msgid "Stock item does not match line item"
-msgstr ""
+msgstr "재고 항목이 라인 항목과 일치하지 않습니다"
#: plugin/base/barcodes/api.py:730
msgid "Insufficient stock available"
-msgstr ""
+msgstr "사용 가능한 재고가 부족합니다"
#: plugin/base/barcodes/api.py:743
msgid "Stock item allocated to sales order"
-msgstr ""
+msgstr "재고 항목이 판매 주문에 할당되었습니다"
#: plugin/base/barcodes/api.py:746
msgid "Not enough information"
-msgstr ""
+msgstr "정보가 충분하지 않습니다"
#: plugin/base/barcodes/mixins.py:309
#: plugin/builtin/barcodes/inventree_barcode.py:101
msgid "Found matching item"
-msgstr ""
+msgstr "일치하는 항목을 찾았습니다"
#: plugin/base/barcodes/mixins.py:375
msgid "Supplier part does not match line item"
-msgstr ""
+msgstr "공급업체 부품이 라인 항목과 일치하지 않습니다"
#: plugin/base/barcodes/mixins.py:378
msgid "Line item is already completed"
-msgstr ""
+msgstr "라인 항목이 이미 완료되었습니다"
#: plugin/base/barcodes/mixins.py:415
msgid "Further information required to receive line item"
-msgstr ""
+msgstr "라인 항목을 입고하려면 추가 정보가 필요합니다"
#: plugin/base/barcodes/mixins.py:423
msgid "Received purchase order line item"
-msgstr ""
+msgstr "구매 주문 라인 항목을 입고했습니다"
#: plugin/base/barcodes/mixins.py:430
msgid "Failed to receive line item"
-msgstr ""
+msgstr "라인 항목 입고에 실패했습니다"
#: plugin/base/barcodes/serializers.py:53
msgid "Scanned barcode data"
-msgstr ""
+msgstr "스캔한 바코드 데이터"
#: plugin/base/barcodes/serializers.py:62
msgid "Model name to generate barcode for"
-msgstr ""
+msgstr "바코드를 생성할 모델 이름"
#: plugin/base/barcodes/serializers.py:67
msgid "Primary key of model object to generate barcode for"
-msgstr ""
+msgstr "바코드를 생성할 모델 객체의 기본 키"
#: plugin/base/barcodes/serializers.py:137
msgid "Purchase Order to allocate items against"
-msgstr ""
+msgstr "항목을 할당할 구매 주문"
#: plugin/base/barcodes/serializers.py:143
msgid "Purchase order is not open"
-msgstr ""
+msgstr "구매 주문이 열려 있지 않습니다"
#: plugin/base/barcodes/serializers.py:161
msgid "Supplier to receive items from"
-msgstr ""
+msgstr "항목을 입고할 공급업체"
#: plugin/base/barcodes/serializers.py:168
msgid "PurchaseOrder to receive items against"
-msgstr ""
+msgstr "항목을 입고할 구매 주문"
#: plugin/base/barcodes/serializers.py:174
msgid "Purchase order has not been placed"
-msgstr ""
+msgstr "구매 주문이 발주되지 않았습니다"
#: plugin/base/barcodes/serializers.py:182
msgid "Location to receive items into"
-msgstr ""
+msgstr "항목을 입고할 위치"
#: plugin/base/barcodes/serializers.py:188
msgid "Cannot select a structural location"
-msgstr ""
+msgstr "구조적 위치를 선택할 수 없습니다"
#: plugin/base/barcodes/serializers.py:196
msgid "Purchase order line item to receive items against"
-msgstr ""
+msgstr "항목을 입고할 구매 주문 라인 항목"
#: plugin/base/barcodes/serializers.py:202
msgid "Automatically allocate stock items to the purchase order"
-msgstr ""
+msgstr "구매 주문에 재고 항목을 자동으로 할당"
#: plugin/base/barcodes/serializers.py:215
msgid "Sales Order to allocate items against"
-msgstr ""
+msgstr "항목을 할당할 판매 주문"
#: plugin/base/barcodes/serializers.py:221
msgid "Sales order is not open"
-msgstr ""
+msgstr "판매 주문이 열려 있지 않습니다"
#: plugin/base/barcodes/serializers.py:229
msgid "Sales order line item to allocate items against"
-msgstr ""
+msgstr "항목을 할당할 판매 주문 라인 항목"
#: plugin/base/barcodes/serializers.py:236
msgid "Sales order shipment to allocate items against"
-msgstr ""
+msgstr "항목을 할당할 판매 주문 출하"
#: plugin/base/barcodes/serializers.py:242
msgid "Shipment has already been delivered"
-msgstr ""
+msgstr "출하가 이미 배송되었습니다"
#: plugin/base/barcodes/serializers.py:247
msgid "Quantity to allocate"
-msgstr ""
+msgstr "할당할 수량"
#: plugin/base/label/label.py:41
msgid "Label printing failed"
-msgstr ""
+msgstr "라벨 인쇄에 실패했습니다"
#: plugin/base/label/mixins.py:53
msgid "Error rendering label to PDF"
-msgstr ""
+msgstr "라벨을 PDF로 렌더링하는 중 오류가 발생했습니다"
#: plugin/base/label/mixins.py:67
msgid "Error rendering label to HTML"
-msgstr ""
+msgstr "라벨을 HTML로 렌더링하는 중 오류가 발생했습니다"
#: plugin/base/label/mixins.py:144
msgid "No items provided to print"
-msgstr ""
+msgstr "인쇄할 항목이 제공되지 않았습니다"
#: plugin/base/ui/serializers.py:30
msgid "Plugin Name"
-msgstr ""
+msgstr "플러그인 이름"
#: plugin/base/ui/serializers.py:34
msgid "Feature Type"
-msgstr ""
+msgstr "기능 유형"
#: plugin/base/ui/serializers.py:39
msgid "Feature Label"
-msgstr ""
+msgstr "기능 라벨"
#: plugin/base/ui/serializers.py:44
msgid "Feature Title"
-msgstr ""
+msgstr "기능 제목"
#: plugin/base/ui/serializers.py:49
msgid "Feature Description"
-msgstr ""
+msgstr "기능 설명"
#: plugin/base/ui/serializers.py:54
msgid "Feature Icon"
-msgstr ""
+msgstr "기능 아이콘"
#: plugin/base/ui/serializers.py:58
msgid "Feature Options"
-msgstr ""
+msgstr "기능 옵션"
#: plugin/base/ui/serializers.py:61
msgid "Feature Context"
-msgstr ""
+msgstr "기능 컨텍스트"
#: plugin/base/ui/serializers.py:64
msgid "Feature Source (javascript)"
-msgstr ""
+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/events/auto_create_builds.py:30
@@ -7162,1056 +7174,1056 @@ msgstr ""
#: plugin/builtin/suppliers/digikey.py:20 plugin/builtin/suppliers/lcsc.py:22
#: plugin/builtin/suppliers/mouser.py:20 plugin/builtin/suppliers/tme.py:22
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/events/auto_create_builds.py:28
msgid "Auto Create Builds"
-msgstr ""
+msgstr "빌드 자동 생성"
#: plugin/builtin/events/auto_create_builds.py:31
msgid "Automatically create build orders for assemblies"
-msgstr ""
+msgstr "조립품에 대한 빌드 주문을 자동으로 생성합니다"
#: plugin/builtin/events/auto_issue_orders.py:17
msgid "Auto Issue Orders"
-msgstr ""
+msgstr "주문 자동 발행"
#: plugin/builtin/events/auto_issue_orders.py:20
msgid "Automatically issue orders on the assigned target date"
-msgstr ""
+msgstr "지정된 목표 날짜에 주문을 자동으로 발행합니다"
#: plugin/builtin/events/auto_issue_orders.py:30
msgid "Auto Issue Build Orders"
-msgstr ""
+msgstr "빌드 주문 자동 발행"
#: plugin/builtin/events/auto_issue_orders.py:32
msgid "Automatically issue build orders on the assigned target date"
-msgstr ""
+msgstr "지정된 목표 날짜에 빌드 주문을 자동으로 발행합니다"
#: plugin/builtin/events/auto_issue_orders.py:38
msgid "Auto Issue Purchase Orders"
-msgstr ""
+msgstr "구매 주문 자동 발행"
#: plugin/builtin/events/auto_issue_orders.py:40
msgid "Automatically issue purchase orders on the assigned target date"
-msgstr ""
+msgstr "지정된 목표 날짜에 구매 주문을 자동으로 발행합니다"
#: plugin/builtin/events/auto_issue_orders.py:46
msgid "Auto Issue Sales Orders"
-msgstr ""
+msgstr "판매 주문 자동 발행"
#: plugin/builtin/events/auto_issue_orders.py:48
msgid "Automatically issue sales orders on the assigned target date"
-msgstr ""
+msgstr "지정된 목표 날짜에 판매 주문을 자동으로 발행합니다"
#: plugin/builtin/events/auto_issue_orders.py:54
msgid "Auto Issue Return Orders"
-msgstr ""
+msgstr "반품 주문 자동 발행"
#: plugin/builtin/events/auto_issue_orders.py:56
msgid "Automatically issue return orders on the assigned target date"
-msgstr ""
+msgstr "지정된 목표 날짜에 반품 주문을 자동으로 발행합니다"
#: plugin/builtin/events/auto_issue_orders.py:62
msgid "Issue Backdated Orders"
-msgstr ""
+msgstr "소급 날짜 주문 발행"
#: plugin/builtin/events/auto_issue_orders.py:63
msgid "Automatically issue orders that are backdated"
-msgstr ""
+msgstr "날짜가 소급된 주문을 자동으로 발행합니다"
#: plugin/builtin/exporter/bom_exporter.py:22
msgid "Levels"
-msgstr ""
+msgstr "레벨"
#: plugin/builtin/exporter/bom_exporter.py:24
msgid "Number of levels to export - set to zero to export all BOM levels"
-msgstr ""
+msgstr "내보낼 레벨 수 - 0으로 설정하면 모든 BOM 레벨을 내보냅니다"
#: plugin/builtin/exporter/bom_exporter.py:31
#: plugin/builtin/exporter/bom_exporter.py:118
msgid "Total Quantity"
-msgstr ""
+msgstr "총 수량"
#: plugin/builtin/exporter/bom_exporter.py:32
msgid "Include total quantity of each part in the BOM"
-msgstr ""
+msgstr "BOM에서 각 부품의 총 수량을 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:36
msgid "Stock Data"
-msgstr ""
+msgstr "재고 데이터"
#: plugin/builtin/exporter/bom_exporter.py:36
msgid "Include part stock data"
-msgstr ""
+msgstr "부품 재고 데이터를 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:40
#: plugin/builtin/exporter/stocktake_exporter.py:20
msgid "Pricing Data"
-msgstr ""
+msgstr "가격 데이터"
#: plugin/builtin/exporter/bom_exporter.py:40
#: plugin/builtin/exporter/stocktake_exporter.py:20
msgid "Include part pricing data"
-msgstr ""
+msgstr "부품 가격 데이터를 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:44
msgid "Supplier Data"
-msgstr ""
+msgstr "공급업체 데이터"
#: plugin/builtin/exporter/bom_exporter.py:44
msgid "Include supplier data"
-msgstr ""
+msgstr "공급업체 데이터를 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:49
msgid "Manufacturer Data"
-msgstr ""
+msgstr "제조사 데이터"
#: plugin/builtin/exporter/bom_exporter.py:50
msgid "Include manufacturer data"
-msgstr ""
+msgstr "제조사 데이터를 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:55
msgid "Substitute Data"
-msgstr ""
+msgstr "대체품 데이터"
#: plugin/builtin/exporter/bom_exporter.py:56
msgid "Include substitute part data"
-msgstr ""
+msgstr "대체 부품 데이터를 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:61
msgid "Parameter Data"
-msgstr ""
+msgstr "매개변수 데이터"
#: plugin/builtin/exporter/bom_exporter.py:62
msgid "Include part parameter data"
-msgstr ""
+msgstr "부품 매개변수 데이터를 포함합니다"
#: plugin/builtin/exporter/bom_exporter.py:71
msgid "Multi-Level BOM Exporter"
-msgstr ""
+msgstr "다중 레벨 BOM 내보내기"
#: plugin/builtin/exporter/bom_exporter.py:72
msgid "Provides support for exporting multi-level BOMs"
-msgstr ""
+msgstr "다중 레벨 BOM 내보내기를 지원합니다"
#: plugin/builtin/exporter/bom_exporter.py:114
msgid "BOM Level"
-msgstr ""
+msgstr "BOM 레벨"
#: plugin/builtin/exporter/bom_exporter.py:124
#, python-brace-format
msgid "Substitute {n}"
-msgstr ""
+msgstr "대체품 {n}"
#: plugin/builtin/exporter/bom_exporter.py:130
#, python-brace-format
msgid "Supplier {n}"
-msgstr ""
+msgstr "공급업체 {n}"
#: plugin/builtin/exporter/bom_exporter.py:131
#, python-brace-format
msgid "Supplier {n} SKU"
-msgstr ""
+msgstr "공급업체 {n} SKU"
#: plugin/builtin/exporter/bom_exporter.py:132
#, python-brace-format
msgid "Supplier {n} MPN"
-msgstr ""
+msgstr "공급업체 {n} MPN"
#: plugin/builtin/exporter/bom_exporter.py:138
#, python-brace-format
msgid "Manufacturer {n}"
-msgstr ""
+msgstr "제조사 {n}"
#: plugin/builtin/exporter/bom_exporter.py:139
#, python-brace-format
msgid "Manufacturer {n} MPN"
-msgstr ""
+msgstr "제조사 {n} MPN"
#: plugin/builtin/exporter/inventree_exporter.py:14
msgid "InvenTree Generic Exporter"
-msgstr ""
+msgstr "InvenTree 일반 내보내기"
#: plugin/builtin/exporter/inventree_exporter.py:15
msgid "Provides support for exporting data from InvenTree"
-msgstr ""
+msgstr "InvenTree에서 데이터를 내보내는 기능을 지원합니다"
#: plugin/builtin/exporter/parameter_exporter.py:16
msgid "Exclude Inactive"
-msgstr ""
+msgstr "비활성 제외"
#: plugin/builtin/exporter/parameter_exporter.py:17
msgid "Exclude parameters which are inactive"
-msgstr ""
+msgstr "비활성 매개변수를 제외합니다"
#: plugin/builtin/exporter/parameter_exporter.py:29
msgid "Parameter Exporter"
-msgstr ""
+msgstr "매개변수 내보내기"
#: plugin/builtin/exporter/parameter_exporter.py:30
msgid "Exporter for model parameter data"
-msgstr ""
+msgstr "모델 매개변수 데이터 내보내기 도구"
#: plugin/builtin/exporter/stocktake_exporter.py:25
msgid "Include External Stock"
-msgstr ""
+msgstr "외부 재고 포함"
#: plugin/builtin/exporter/stocktake_exporter.py:26
msgid "Include external stock in the stocktake data"
-msgstr ""
+msgstr "재고 조사 데이터에 외부 재고를 포함합니다"
#: plugin/builtin/exporter/stocktake_exporter.py:31
msgid "Include Variant Items"
-msgstr ""
+msgstr "변형 항목 포함"
#: plugin/builtin/exporter/stocktake_exporter.py:32
msgid "Include part variant stock in pricing calculations"
-msgstr ""
+msgstr "가격 계산에 부품 변형 재고를 포함합니다"
#: plugin/builtin/exporter/stocktake_exporter.py:44
msgid "Part Stocktake Exporter"
-msgstr ""
+msgstr "부품 재고 조사 내보내기"
#: plugin/builtin/exporter/stocktake_exporter.py:45
msgid "Exporter for part stocktake data"
-msgstr ""
+msgstr "부품 재고 조사 데이터 내보내기 도구"
#: plugin/builtin/exporter/stocktake_exporter.py:108
msgid "Minimum Unit Cost"
-msgstr ""
+msgstr "최소 단가"
#: plugin/builtin/exporter/stocktake_exporter.py:109
msgid "Maximum Unit Cost"
-msgstr ""
+msgstr "최대 단가"
#: plugin/builtin/exporter/stocktake_exporter.py:110
msgid "Minimum Total Cost"
-msgstr ""
+msgstr "최소 총 비용"
#: plugin/builtin/exporter/stocktake_exporter.py:111
msgid "Maximum Total Cost"
-msgstr ""
+msgstr "최대 총 비용"
#: plugin/builtin/integration/core_notifications.py:23
msgid "InvenTree UI Notifications"
-msgstr ""
+msgstr "InvenTree UI 알림"
#: plugin/builtin/integration/core_notifications.py:26
msgid "Integrated UI notification methods"
-msgstr ""
+msgstr "통합 UI 알림 방법"
#: plugin/builtin/integration/core_notifications.py:67
msgid "InvenTree Email Notifications"
-msgstr ""
+msgstr "InvenTree 이메일 알림"
#: plugin/builtin/integration/core_notifications.py:70
msgid "Integrated email notification methods"
-msgstr ""
+msgstr "통합 이메일 알림 방법"
#: plugin/builtin/integration/core_notifications.py:75
msgid "Allow email notifications"
-msgstr ""
+msgstr "이메일 알림 허용"
#: plugin/builtin/integration/core_notifications.py:76
msgid "Allow email notifications to be sent to this user"
-msgstr ""
+msgstr "이 사용자에게 이메일 알림을 보낼 수 있도록 허용합니다"
#: plugin/builtin/integration/core_notifications.py:123
msgid "InvenTree Slack Notifications"
-msgstr ""
+msgstr "InvenTree Slack 알림"
#: plugin/builtin/integration/core_notifications.py:126
msgid "Integrated Slack notification methods"
-msgstr ""
+msgstr "통합 Slack 알림 방법"
#: plugin/builtin/integration/core_notifications.py:131
msgid "Slack incoming webhook URL"
-msgstr ""
+msgstr "Slack 수신 웹훅 URL"
#: plugin/builtin/integration/core_notifications.py:132
msgid "URL that is used to send messages to a slack channel"
-msgstr ""
+msgstr "Slack 채널로 메시지를 보내는 데 사용되는 URL"
#: plugin/builtin/integration/core_notifications.py:162
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/integration/machine_types.py:15
msgid "InvenTree Machines"
-msgstr ""
+msgstr "InvenTree 머신"
#: plugin/builtin/integration/machine_types.py:16
msgid "Built-in machine types for InvenTree"
-msgstr ""
+msgstr "InvenTree용 내장 머신 유형"
#: plugin/builtin/integration/part_notifications.py:20
msgid "Part Notifications"
-msgstr ""
+msgstr "부품 알림"
#: plugin/builtin/integration/part_notifications.py:22
msgid "Notify users about part changes"
-msgstr ""
+msgstr "부품 변경 사항을 사용자에게 알립니다"
#: plugin/builtin/integration/part_notifications.py:27
msgid "Send notifications"
-msgstr ""
+msgstr "알림 보내기"
#: plugin/builtin/integration/part_notifications.py:28
msgid "Send notifications for part changes to subscribed users"
-msgstr ""
+msgstr "구독한 사용자에게 부품 변경 알림을 보냅니다"
#: plugin/builtin/integration/part_notifications.py:45
msgid "Changed part notification"
-msgstr ""
+msgstr "부품 변경 알림"
#: plugin/builtin/integration/part_notifications.py:55
#, python-brace-format
msgid "The part `{part.name}` has been triggered with a `{part_action}` event"
-msgstr ""
+msgstr "부품 `{part.name}`에서 `{part_action}` 이벤트가 트리거되었습니다"
#: plugin/builtin/labels/inventree_label.py:23
msgid "InvenTree PDF label printer"
-msgstr ""
+msgstr "InvenTree PDF 라벨 프린터"
#: plugin/builtin/labels/inventree_label.py:24
msgid "Provides native support for printing PDF labels"
-msgstr ""
+msgstr "PDF 라벨 인쇄에 대한 기본 지원을 제공합니다"
#: plugin/builtin/labels/inventree_label.py:32
#: plugin/builtin/labels/label_sheet.py:78
msgid "Debug mode"
-msgstr ""
+msgstr "디버그 모드"
#: plugin/builtin/labels/inventree_label.py:33
#: plugin/builtin/labels/label_sheet.py:79
msgid "Enable debug mode - returns raw HTML instead of PDF"
-msgstr ""
+msgstr "디버그 모드를 활성화하면 PDF 대신 원본 HTML을 반환합니다"
#: 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:164
msgid "last used"
-msgstr ""
+msgstr "마지막 사용"
#: plugin/builtin/labels/inventree_machine.py:181
msgid "Options"
-msgstr ""
+msgstr "옵션"
#: plugin/builtin/labels/label_sheet.py:30
msgid "Page size for the label sheet"
-msgstr ""
+msgstr "라벨 시트의 페이지 크기"
#: plugin/builtin/labels/label_sheet.py:35
msgid "Skip Labels"
-msgstr ""
+msgstr "라벨 건너뛰기"
#: plugin/builtin/labels/label_sheet.py:36
msgid "Skip this number of labels when printing label sheets"
-msgstr ""
+msgstr "라벨 시트를 인쇄할 때 이 개수만큼의 라벨을 건너뜁니다"
#: plugin/builtin/labels/label_sheet.py:43
msgid "Border"
-msgstr ""
+msgstr "테두리"
#: plugin/builtin/labels/label_sheet.py:44
msgid "Print a border around each label"
-msgstr ""
+msgstr "각 라벨 주위에 테두리를 인쇄합니다"
#: plugin/builtin/labels/label_sheet.py:49 report/models.py:390
msgid "Landscape"
-msgstr ""
+msgstr "가로"
#: plugin/builtin/labels/label_sheet.py:50
msgid "Print the label sheet in landscape mode"
-msgstr ""
+msgstr "라벨 시트를 가로 모드로 인쇄합니다"
#: plugin/builtin/labels/label_sheet.py:55
msgid "Page Margin"
-msgstr ""
+msgstr "페이지 여백"
#: plugin/builtin/labels/label_sheet.py:56
msgid "Margin around the page in mm"
-msgstr ""
+msgstr "페이지 가장자리 여백(mm)"
#: plugin/builtin/labels/label_sheet.py:69
msgid "InvenTree Label Sheet Printer"
-msgstr ""
+msgstr "InvenTree 라벨 시트 프린터"
#: plugin/builtin/labels/label_sheet.py:70
msgid "Arrays multiple labels onto a single sheet"
-msgstr ""
+msgstr "여러 라벨을 한 장의 시트에 배열합니다"
#: plugin/builtin/labels/label_sheet.py:122
msgid "Label is too large for page size"
-msgstr ""
+msgstr "라벨이 페이지 크기에 비해 너무 큽니다"
#: plugin/builtin/labels/label_sheet.py:161
msgid "No labels were generated"
-msgstr ""
+msgstr "생성된 라벨이 없습니다"
#: plugin/builtin/suppliers/digikey.py:17
msgid "Supplier Integration - DigiKey"
-msgstr ""
+msgstr "공급업체 통합 - DigiKey"
#: plugin/builtin/suppliers/digikey.py:18
msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
+msgstr "DigiKey 바코드 스캔을 지원합니다"
#: plugin/builtin/suppliers/digikey.py:27
msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
+msgstr "'DigiKey' 역할을 하는 공급업체"
#: plugin/builtin/suppliers/lcsc.py:19
msgid "Supplier Integration - LCSC"
-msgstr ""
+msgstr "공급업체 통합 - LCSC"
#: plugin/builtin/suppliers/lcsc.py:20
msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
+msgstr "LCSC 바코드 스캔을 지원합니다"
#: plugin/builtin/suppliers/lcsc.py:28
msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
+msgstr "'LCSC' 역할을 하는 공급업체"
#: plugin/builtin/suppliers/mouser.py:17
msgid "Supplier Integration - Mouser"
-msgstr ""
+msgstr "공급업체 통합 - Mouser"
#: plugin/builtin/suppliers/mouser.py:18
msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
+msgstr "Mouser 바코드 스캔을 지원합니다"
#: plugin/builtin/suppliers/mouser.py:26
msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
+msgstr "'Mouser' 역할을 하는 공급업체"
#: plugin/builtin/suppliers/tme.py:19
msgid "Supplier Integration - TME"
-msgstr ""
+msgstr "공급업체 통합 - TME"
#: plugin/builtin/suppliers/tme.py:20
msgid "Provides support for scanning TME barcodes"
-msgstr ""
+msgstr "TME 바코드 스캔을 지원합니다"
#: plugin/builtin/suppliers/tme.py:28
msgid "The Supplier which acts as 'TME'"
-msgstr ""
+msgstr "'TME' 역할을 하는 공급업체"
#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
-msgstr ""
+msgstr "슈퍼유저 계정만 플러그인을 관리할 수 있습니다"
#: plugin/installer.py:243
msgid "Plugin installation is disabled"
-msgstr ""
+msgstr "플러그인 설치가 비활성화되어 있습니다"
#: plugin/installer.py:273
msgid "No package name or URL provided for installation"
-msgstr ""
+msgstr "설치할 패키지 이름 또는 URL이 제공되지 않았습니다"
#: plugin/installer.py:277
msgid "Invalid characters in package name or URL"
-msgstr ""
+msgstr "패키지 이름 또는 URL에 잘못된 문자가 있습니다"
#: plugin/installer.py:287
msgid "Installed plugin successfully"
-msgstr ""
+msgstr "플러그인을 성공적으로 설치했습니다"
#: plugin/installer.py:292
#, python-brace-format
msgid "Installed plugin into {path}"
-msgstr ""
+msgstr "플러그인을 {path}에 설치했습니다"
#: plugin/installer.py:318
msgid "Plugin was not found in registry"
-msgstr ""
+msgstr "레지스트리에서 플러그인을 찾을 수 없습니다"
#: plugin/installer.py:321
msgid "Plugin is not a packaged plugin"
-msgstr ""
+msgstr "플러그인이 패키지 플러그인이 아닙니다"
#: plugin/installer.py:324
msgid "Plugin package name not found"
-msgstr ""
+msgstr "플러그인 패키지 이름을 찾을 수 없습니다"
#: plugin/installer.py:327
msgid "Only staff users can administer plugins"
-msgstr ""
+msgstr "스태프 사용자만 플러그인을 관리할 수 있습니다"
#: plugin/installer.py:347
msgid "Plugin uninstalling is disabled"
-msgstr ""
+msgstr "플러그인 제거가 비활성화되어 있습니다"
#: plugin/installer.py:351
msgid "Plugin cannot be uninstalled as it is currently active"
-msgstr ""
+msgstr "플러그인이 현재 활성 상태이므로 제거할 수 없습니다"
#: plugin/installer.py:357
msgid "Plugin cannot be uninstalled as it is mandatory"
-msgstr ""
+msgstr "플러그인이 필수이므로 제거할 수 없습니다"
#: plugin/installer.py:362
msgid "Plugin cannot be uninstalled as it is a sample plugin"
-msgstr ""
+msgstr "플러그인이 샘플 플러그인이므로 제거할 수 없습니다"
#: plugin/installer.py:367
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
-msgstr ""
+msgstr "플러그인이 내장 플러그인이므로 제거할 수 없습니다"
#: plugin/installer.py:371
msgid "Plugin is not installed"
-msgstr ""
+msgstr "플러그인이 설치되어 있지 않습니다"
#: plugin/installer.py:389
msgid "Plugin installation not found"
-msgstr ""
+msgstr "플러그인 설치 정보를 찾을 수 없습니다"
#: plugin/installer.py:405
msgid "Uninstalled plugin successfully"
-msgstr ""
+msgstr "플러그인을 성공적으로 제거했습니다"
#: plugin/models.py:39
msgid "Plugin Configuration"
-msgstr ""
+msgstr "플러그인 구성"
#: plugin/models.py:40
msgid "Plugin Configurations"
-msgstr ""
+msgstr "플러그인 구성"
#: plugin/models.py:47
msgid "Key of plugin"
-msgstr ""
+msgstr "플러그인 키"
#: plugin/models.py:55
msgid "Name of the plugin"
-msgstr ""
+msgstr "플러그인 이름"
#: plugin/models.py:62 plugin/serializers.py:119
msgid "Package Name"
-msgstr ""
+msgstr "패키지 이름"
#: plugin/models.py:64
msgid "Name of the installed package, if the plugin was installed via PIP"
-msgstr ""
+msgstr "PIP로 플러그인을 설치한 경우, 설치된 패키지의 이름"
#: plugin/models.py:69
msgid "Is the plugin active"
-msgstr ""
+msgstr "플러그인이 활성 상태인지 여부"
#: plugin/models.py:176
msgid "Sample plugin"
-msgstr ""
+msgstr "샘플 플러그인"
#: plugin/models.py:184
msgid "Builtin Plugin"
-msgstr ""
+msgstr "내장 플러그인"
#: plugin/models.py:192
msgid "Mandatory Plugin"
-msgstr ""
+msgstr "필수 플러그인"
#: plugin/models.py:210
msgid "Package Plugin"
-msgstr ""
+msgstr "패키지 플러그인"
#: plugin/models.py:301 plugin/models.py:347
msgid "Plugin"
-msgstr ""
+msgstr "플러그인"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
-msgstr ""
+msgstr "작성자를 찾을 수 없습니다"
#: plugin/registry.py:786
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
-msgstr ""
+msgstr "플러그인 '{p}'은(는) 현재 InvenTree 버전 {v}와 호환되지 않습니다"
#: plugin/registry.py:789
#, python-brace-format
msgid "Plugin requires at least version {v}"
-msgstr ""
+msgstr "플러그인은 최소 버전 {v}가 필요합니다"
#: plugin/registry.py:791
#, python-brace-format
msgid "Plugin requires at most version {v}"
-msgstr ""
+msgstr "플러그인은 최대 버전 {v}까지 지원합니다"
#: plugin/samples/integration/sample.py:52
msgid "User Setting 1"
-msgstr ""
+msgstr "사용자 설정 1"
#: plugin/samples/integration/sample.py:53
msgid "A user setting that can be changed by the user"
-msgstr ""
+msgstr "사용자가 변경할 수 있는 사용자 설정"
#: plugin/samples/integration/sample.py:57
msgid "User Setting 2"
-msgstr ""
+msgstr "사용자 설정 2"
#: plugin/samples/integration/sample.py:58
msgid "Another user setting"
-msgstr ""
+msgstr "또 다른 사용자 설정"
#: plugin/samples/integration/sample.py:63
msgid "User Setting 3"
-msgstr ""
+msgstr "사용자 설정 3"
#: plugin/samples/integration/sample.py:64
msgid "A user setting with choices"
-msgstr ""
+msgstr "선택지가 있는 사용자 설정"
#: plugin/samples/integration/sample.py:72
msgid "Enable PO"
-msgstr ""
+msgstr "구매 주문(PO) 활성화"
#: plugin/samples/integration/sample.py:73
msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
+msgstr "InvenTree 인터페이스에서 구매 주문(PO) 기능을 활성화합니다"
#: plugin/samples/integration/sample.py:78
msgid "API Key"
-msgstr ""
+msgstr "API 키"
#: plugin/samples/integration/sample.py:79
msgid "Key required for accessing external API"
-msgstr ""
+msgstr "외부 API에 접근하기 위한 키"
#: plugin/samples/integration/sample.py:83
msgid "Numerical"
-msgstr ""
+msgstr "숫자"
#: plugin/samples/integration/sample.py:84
msgid "A numerical setting"
-msgstr ""
+msgstr "숫자 설정"
#: plugin/samples/integration/sample.py:90
msgid "Choice Setting"
-msgstr ""
+msgstr "선택 설정"
#: plugin/samples/integration/sample.py:91
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 ""
+msgstr "InvenTree 기여자"
#: plugin/samples/integration/user_interface_sample.py:27
msgid "Enable Part Panels"
-msgstr ""
+msgstr "부품 패널 활성화"
#: plugin/samples/integration/user_interface_sample.py:28
msgid "Enable custom panels for Part views"
-msgstr ""
+msgstr "부품 보기용 사용자 정의 패널을 활성화합니다"
#: plugin/samples/integration/user_interface_sample.py:33
msgid "Enable Purchase Order Panels"
-msgstr ""
+msgstr "구매 주문 패널 활성화"
#: plugin/samples/integration/user_interface_sample.py:34
msgid "Enable custom panels for Purchase Order views"
-msgstr ""
+msgstr "구매 주문 보기용 사용자 정의 패널을 활성화합니다"
#: plugin/samples/integration/user_interface_sample.py:39
msgid "Enable Broken Panels"
-msgstr ""
+msgstr "손상된 패널 활성화"
#: plugin/samples/integration/user_interface_sample.py:40
msgid "Enable broken panels for testing"
-msgstr ""
+msgstr "테스트를 위해 손상된 패널을 활성화합니다"
#: plugin/samples/integration/user_interface_sample.py:45
msgid "Enable Dynamic Panel"
-msgstr ""
+msgstr "동적 패널 활성화"
#: plugin/samples/integration/user_interface_sample.py:46
msgid "Enable dynamic panels for testing"
-msgstr ""
+msgstr "테스트를 위해 동적 패널을 활성화합니다"
#: plugin/samples/integration/user_interface_sample.py:114
msgid "Part Panel"
-msgstr ""
+msgstr "부품 패널"
#: plugin/samples/integration/user_interface_sample.py:149
msgid "Broken Dashboard Item"
-msgstr ""
+msgstr "손상된 대시보드 항목"
#: plugin/samples/integration/user_interface_sample.py:151
msgid "This is a broken dashboard item - it will not render!"
-msgstr ""
+msgstr "이것은 손상된 대시보드 항목입니다. 렌더링되지 않습니다!"
#: plugin/samples/integration/user_interface_sample.py:157
msgid "Sample Dashboard Item"
-msgstr ""
+msgstr "샘플 대시보드 항목"
#: plugin/samples/integration/user_interface_sample.py:159
msgid "This is a sample dashboard item. It renders a simple string of HTML content."
-msgstr ""
+msgstr "이것은 샘플 대시보드 항목입니다. 단순한 HTML 문자열 콘텐츠를 렌더링합니다."
#: plugin/samples/integration/user_interface_sample.py:165
msgid "Context Dashboard Item"
-msgstr ""
+msgstr "컨텍스트 대시보드 항목"
#: plugin/samples/integration/user_interface_sample.py:179
msgid "Admin Dashboard Item"
-msgstr ""
+msgstr "관리자 대시보드 항목"
#: plugin/samples/integration/user_interface_sample.py:180
msgid "This is an admin-only dashboard item."
-msgstr ""
+msgstr "이것은 관리자 전용 대시보드 항목입니다."
#: plugin/serializers.py:86
msgid "Source File"
-msgstr ""
+msgstr "소스 파일"
#: plugin/serializers.py:87
msgid "Path to the source file for admin integration"
-msgstr ""
+msgstr "관리자 통합을 위한 소스 파일 경로"
#: plugin/serializers.py:94
msgid "Optional context data for the admin integration"
-msgstr ""
+msgstr "관리자 통합을 위한 선택적 컨텍스트 데이터"
#: plugin/serializers.py:110
msgid "Source URL"
-msgstr ""
+msgstr "소스 URL"
#: plugin/serializers.py:112
msgid "Source for the package - this can be a custom registry or a VCS path"
-msgstr ""
+msgstr "패키지 소스입니다. 사용자 정의 레지스트리 또는 VCS 경로가 될 수 있습니다"
#: plugin/serializers.py:121
msgid "Name for the Plugin Package - can also contain a version indicator"
-msgstr ""
+msgstr "플러그인 패키지 이름입니다. 버전 표기를 포함할 수도 있습니다"
#: plugin/serializers.py:128
msgid "Version"
-msgstr ""
+msgstr "버전"
#: plugin/serializers.py:130
msgid "Version specifier for the plugin. Leave blank for latest version."
-msgstr ""
+msgstr "플러그인 버전 지정자입니다. 최신 버전이면 비워 두세요."
#: plugin/serializers.py:135
msgid "Confirm plugin installation"
-msgstr ""
+msgstr "플러그인 설치 확인"
#: plugin/serializers.py:137
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
-msgstr ""
+msgstr "이 플러그인을 현재 인스턴스에 지금 설치합니다. 인스턴스는 유지보수 모드로 전환됩니다."
#: plugin/serializers.py:150
msgid "Installation not confirmed"
-msgstr ""
+msgstr "설치가 확인되지 않았습니다"
#: plugin/serializers.py:152
msgid "Either packagename or URL must be provided"
-msgstr ""
+msgstr "패키지 이름 또는 URL 중 하나는 제공되어야 합니다"
#: plugin/serializers.py:191
msgid "Full reload"
-msgstr ""
+msgstr "전체 다시 로드"
#: plugin/serializers.py:192
msgid "Perform a full reload of the plugin registry"
-msgstr ""
+msgstr "플러그인 레지스트리를 전체 다시 로드합니다"
#: plugin/serializers.py:198
msgid "Force reload"
-msgstr ""
+msgstr "강제 다시 로드"
#: plugin/serializers.py:200
msgid "Force a reload of the plugin registry, even if it is already loaded"
-msgstr ""
+msgstr "이미 로드되어 있더라도 플러그인 레지스트리를 강제로 다시 로드합니다"
#: plugin/serializers.py:207
msgid "Collect plugins"
-msgstr ""
+msgstr "플러그인 수집"
#: plugin/serializers.py:208
msgid "Collect plugins and add them to the registry"
-msgstr ""
+msgstr "플러그인을 수집하여 레지스트리에 추가합니다"
#: plugin/serializers.py:236
msgid "Activate Plugin"
-msgstr ""
+msgstr "플러그인 활성화"
#: plugin/serializers.py:237
msgid "Activate this plugin"
-msgstr ""
+msgstr "이 플러그인을 활성화합니다"
#: plugin/serializers.py:246
msgid "Mandatory plugin cannot be deactivated"
-msgstr ""
+msgstr "필수 플러그인은 비활성화할 수 없습니다"
#: plugin/serializers.py:264
msgid "Delete configuration"
-msgstr ""
+msgstr "구성 삭제"
#: plugin/serializers.py:265
msgid "Delete the plugin configuration from the database"
-msgstr ""
+msgstr "데이터베이스에서 플러그인 구성을 삭제합니다"
#: plugin/serializers.py:299
msgid "The user for which this setting applies"
-msgstr ""
+msgstr "이 설정이 적용될 사용자"
#: report/api.py:44 report/serializers.py:125 report/serializers.py:175
msgid "Items"
-msgstr ""
+msgstr "항목"
#: report/api.py:115
msgid "Plugin not found"
-msgstr ""
+msgstr "플러그인을 찾을 수 없습니다"
#: report/api.py:117
msgid "Plugin does not support label printing"
-msgstr ""
+msgstr "플러그인이 라벨 인쇄를 지원하지 않습니다"
#: report/api.py:165
msgid "Invalid label dimensions"
-msgstr ""
+msgstr "잘못된 라벨 크기입니다"
#: report/api.py:183 report/api.py:271
msgid "No valid items provided to template"
-msgstr ""
+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:128
msgid "Template file with this name already exists"
-msgstr ""
+msgstr "이 이름의 템플릿 파일이 이미 존재합니다"
#: report/models.py:220
msgid "Template name"
-msgstr ""
+msgstr "템플릿 이름"
#: report/models.py:226
msgid "Template description"
-msgstr ""
+msgstr "템플릿 설명"
#: report/models.py:232
msgid "Revision number (auto-increments)"
-msgstr ""
+msgstr "리비전 번호(자동 증가)"
#: report/models.py:238
msgid "Attach to Model on Print"
-msgstr ""
+msgstr "인쇄 시 모델에 첨부"
#: report/models.py:240
msgid "Save report output as an attachment against linked model instance when printing"
-msgstr ""
+msgstr "인쇄 시 보고서 출력물을 연결된 모델 인스턴스에 첨부파일로 저장합니다"
#: report/models.py:284
msgid "Filename Pattern"
-msgstr ""
+msgstr "파일명 패턴"
#: report/models.py:285
msgid "Pattern for generating filenames"
-msgstr ""
+msgstr "파일명을 생성하기 위한 패턴"
#: report/models.py:290
msgid "Template is enabled"
-msgstr ""
+msgstr "템플릿이 활성화됨"
#: report/models.py:297
msgid "Target model type for template"
-msgstr ""
+msgstr "템플릿 대상 모델 유형"
#: report/models.py:317
msgid "Filters"
-msgstr ""
+msgstr "필터"
#: report/models.py:318
msgid "Template query filters (comma-separated list of key=value pairs)"
-msgstr ""
+msgstr "템플릿 쿼리 필터(쉼표로 구분된 key=value 쌍 목록)"
#: report/models.py:377 report/models.py:673
msgid "Template file"
-msgstr ""
+msgstr "템플릿 파일"
#: report/models.py:385
msgid "Page size for PDF reports"
-msgstr ""
+msgstr "PDF 보고서 페이지 크기"
#: report/models.py:391
msgid "Render report in landscape orientation"
-msgstr ""
+msgstr "보고서를 가로 방향으로 렌더링"
#: report/models.py:396
msgid "Merge"
-msgstr ""
+msgstr "병합"
#: report/models.py:397
msgid "Render a single report against selected items"
-msgstr ""
+msgstr "선택한 항목에 대해 단일 보고서를 렌더링합니다"
#: report/models.py:452
#, python-brace-format
msgid "Report generated from template {self.name}"
-msgstr ""
+msgstr "템플릿 {self.name}에서 생성된 보고서"
#: report/models.py:549 report/models.py:588 report/models.py:589
msgid "Template syntax error"
-msgstr ""
+msgstr "템플릿 구문 오류"
#: report/models.py:556 report/models.py:595
msgid "Error rendering report"
-msgstr ""
+msgstr "보고서 렌더링 오류"
#: report/models.py:615
msgid "Error generating report"
-msgstr ""
+msgstr "보고서 생성 오류"
#: report/models.py:647
msgid "Error merging report outputs"
-msgstr ""
+msgstr "보고서 출력 병합 오류"
#: report/models.py:679
msgid "Width [mm]"
-msgstr ""
+msgstr "너비 [mm]"
#: report/models.py:680
msgid "Label width, specified in mm"
-msgstr ""
+msgstr "라벨 너비(mm)"
#: report/models.py:686
msgid "Height [mm]"
-msgstr ""
+msgstr "높이 [mm]"
#: report/models.py:687
msgid "Label height, specified in mm"
-msgstr ""
+msgstr "라벨 높이(mm)"
#: report/models.py:792
msgid "Error printing labels"
-msgstr ""
+msgstr "라벨 인쇄 오류"
#: report/models.py:811
msgid "Snippet"
-msgstr ""
+msgstr "스니펫"
#: report/models.py:812
msgid "Report snippet file"
-msgstr ""
+msgstr "보고서 스니펫 파일"
#: report/models.py:819
msgid "Snippet file description"
-msgstr ""
+msgstr "스니펫 파일 설명"
#: report/models.py:837
msgid "Asset"
-msgstr ""
+msgstr "자산"
#: report/models.py:838
msgid "Report asset file"
-msgstr ""
+msgstr "보고서 자산 파일"
#: report/models.py:845
msgid "Asset file description"
-msgstr ""
+msgstr "자산 파일 설명"
#: report/serializers.py:37
msgid "User must be authenticated to save report templates"
-msgstr ""
+msgstr "보고서 템플릿을 저장하려면 사용자 인증이 필요합니다"
#: report/serializers.py:118
msgid "Select report template"
-msgstr ""
+msgstr "보고서 템플릿 선택"
#: report/serializers.py:126 report/serializers.py:176
msgid "List of item primary keys to include in the report"
-msgstr ""
+msgstr "보고서에 포함할 항목의 기본 키 목록"
#: report/serializers.py:159
msgid "Select label template"
-msgstr ""
+msgstr "라벨 템플릿 선택"
#: report/serializers.py:167
msgid "Printing Plugin"
-msgstr ""
+msgstr "인쇄 플러그인"
#: report/serializers.py:168
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
msgid "QR Code"
-msgstr ""
+msgstr "QR 코드"
#: report/templates/label/part_label_code128.html:31
#: report/templates/label/stocklocation_qr_and_text.html:31
msgid "QR code"
-msgstr ""
+msgstr "QR 코드"
#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
-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:98
#: report/templates/report/inventree_purchase_order_report.html:47
@@ -8222,43 +8234,43 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:84
#: report/templates/report/inventree_test_report.html:162
msgid "Part image"
-msgstr ""
+msgstr "부품 이미지"
#: report/templates/report/inventree_build_order_report.html:121
msgid "Issued"
-msgstr ""
+msgstr "지급됨"
#: report/templates/report/inventree_build_order_report.html:146
msgid "Required For"
-msgstr ""
+msgstr "필요 대상"
#: report/templates/report/inventree_build_order_report.html:152
msgid "Issued By"
-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:22
msgid "Order Details"
-msgstr ""
+msgstr "주문 상세"
#: report/templates/report/inventree_purchase_order_report.html:37
#: report/templates/report/inventree_sales_order_report.html:30
msgid "Unit Price"
-msgstr ""
+msgstr "단가"
#: report/templates/report/inventree_purchase_order_report.html:62
#: 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:79
#: report/templates/report/inventree_sales_order_report.html:72
msgid "Total"
-msgstr ""
+msgstr "합계"
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_sales_order_shipment_report.html:45
@@ -8266,1069 +8278,1069 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:88 stock/models.py:1090
#: stock/serializers.py:164 templates/email/stale_stock_notification.html:21
msgid "Serial Number"
-msgstr ""
+msgstr "시리얼 번호"
#: report/templates/report/inventree_sales_order_shipment_report.html:23
msgid "Allocations"
-msgstr ""
+msgstr "할당"
#: report/templates/report/inventree_sales_order_shipment_report.html:47
#: templates/email/stale_stock_notification.html:20
msgid "Batch"
-msgstr ""
+msgstr "배치"
#: report/templates/report/inventree_stock_location_report.html:97
msgid "Stock location items"
-msgstr ""
+msgstr "재고 위치 항목"
#: report/templates/report/inventree_stock_report_merge.html:21
#: report/templates/report/inventree_test_report.html:21
msgid "Stock Item Test Report"
-msgstr ""
+msgstr "재고 품목 테스트 보고서"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
-msgstr ""
+msgstr "설치된 항목"
#: report/templates/report/inventree_stock_report_merge.html:111
#: report/templates/report/inventree_test_report.html:167
msgid "Serial"
-msgstr ""
+msgstr "시리얼"
#: report/templates/report/inventree_test_report.html:97
msgid "Test Results"
-msgstr ""
+msgstr "테스트 결과"
#: report/templates/report/inventree_test_report.html:102
msgid "Test"
-msgstr ""
+msgstr "테스트"
#: report/templates/report/inventree_test_report.html:129
msgid "Pass"
-msgstr ""
+msgstr "통과"
#: report/templates/report/inventree_test_report.html:131
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
msgid "No result"
-msgstr ""
+msgstr "결과 없음"
#: report/templatetags/report.py:166
msgid "Invalid media file path"
-msgstr ""
+msgstr "잘못된 미디어 파일 경로"
#: report/templatetags/report.py:185
msgid "Invalid static file path"
-msgstr ""
+msgstr "잘못된 정적 파일 경로"
#: report/templatetags/report.py:287
msgid "Asset file not found"
-msgstr ""
+msgstr "자산 파일을 찾을 수 없습니다"
#: report/templatetags/report.py:345 report/templatetags/report.py:461
msgid "Image file not found"
-msgstr ""
+msgstr "이미지 파일을 찾을 수 없습니다"
#: report/templatetags/report.py:430
msgid "No image file specified"
-msgstr ""
+msgstr "이미지 파일이 지정되지 않았습니다"
#: report/templatetags/report.py:455
msgid "part_image tag requires a Part instance"
-msgstr ""
+msgstr "part_image 태그에는 Part 인스턴스가 필요합니다"
#: report/templatetags/report.py:553
msgid "company_image tag requires a Company instance"
-msgstr ""
+msgstr "company_image 태그에는 Company 인스턴스가 필요합니다"
#: stock/api.py:287
msgid "Filter by location depth"
-msgstr ""
+msgstr "위치 깊이로 필터"
#: stock/api.py:307
msgid "Filter by top-level locations"
-msgstr ""
+msgstr "최상위 위치로 필터"
#: stock/api.py:322
msgid "Include sub-locations in filtered results"
-msgstr ""
+msgstr "필터 결과에 하위 위치를 포함합니다"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
-msgstr ""
+msgstr "상위 위치"
#: stock/api.py:344
msgid "Filter by parent location"
-msgstr ""
+msgstr "상위 위치로 필터"
#: stock/api.py:604
msgid "Part name (case insensitive)"
-msgstr ""
+msgstr "부품명(대소문자 구분 없음)"
#: stock/api.py:610
msgid "Part name contains (case insensitive)"
-msgstr ""
+msgstr "부품명 포함(대소문자 구분 없음)"
#: stock/api.py:616
msgid "Part name (regex)"
-msgstr ""
+msgstr "부품명(정규식)"
#: stock/api.py:621
msgid "Part IPN (case insensitive)"
-msgstr ""
+msgstr "부품 IPN(대소문자 구분 없음)"
#: stock/api.py:627
msgid "Part IPN contains (case insensitive)"
-msgstr ""
+msgstr "부품 IPN 포함(대소문자 구분 없음)"
#: stock/api.py:633
msgid "Part IPN (regex)"
-msgstr ""
+msgstr "부품 IPN(정규식)"
#: stock/api.py:645
msgid "Minimum stock"
-msgstr ""
+msgstr "최소 재고"
#: stock/api.py:649
msgid "Maximum stock"
-msgstr ""
+msgstr "최대 재고"
#: stock/api.py:652
msgid "Status Code"
-msgstr ""
+msgstr "상태 코드"
#: stock/api.py:692
msgid "External Location"
-msgstr ""
+msgstr "외부 위치"
#: stock/api.py:791
msgid "Consumed by Build Order"
-msgstr ""
+msgstr "작업 지시서에서 소비됨"
#: stock/api.py:801
msgid "Installed in other stock item"
-msgstr ""
+msgstr "다른 재고 품목에 설치됨"
#: stock/api.py:890
msgid "Part Tree"
-msgstr ""
+msgstr "부품 트리"
#: stock/api.py:912
msgid "Updated before"
-msgstr ""
+msgstr "업데이트 날짜 이전"
#: stock/api.py:916
msgid "Updated after"
-msgstr ""
+msgstr "업데이트 날짜 이후"
#: stock/api.py:920
msgid "Stocktake Before"
-msgstr ""
+msgstr "재고조사 날짜 이전"
#: stock/api.py:924
msgid "Stocktake After"
-msgstr ""
+msgstr "재고조사 날짜 이후"
#: stock/api.py:929
msgid "Expiry date before"
-msgstr ""
+msgstr "유효기간 날짜 이전"
#: stock/api.py:933
msgid "Expiry date after"
-msgstr ""
+msgstr "유효기간 날짜 이후"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
-msgstr ""
+msgstr "장기 재고"
#: stock/api.py:962
msgid "Provide a StockItem PK to exclude that item and all its descendants"
-msgstr ""
+msgstr "제외할 재고 품목 PK를 제공하면 해당 품목과 모든 하위 항목을 제외합니다"
#: stock/api.py:980
msgid "Cascade Locations"
-msgstr ""
+msgstr "위치 계단식 적용"
#: stock/api.py:981
msgid "If true, include items in child locations of the given location"
-msgstr ""
+msgstr "true이면 지정한 위치의 하위 위치에 있는 항목을 포함합니다"
#: stock/api.py:987
msgid "Filter by numeric Location ID or the literal 'null'"
-msgstr ""
+msgstr "숫자 Location ID 또는 'null' 리터럴로 필터"
#: stock/api.py:1087
msgid "Quantity is required"
-msgstr ""
+msgstr "수량이 필요합니다"
#: stock/api.py:1092
msgid "Valid part must be supplied"
-msgstr ""
+msgstr "유효한 부품을 제공해야 합니다"
#: stock/api.py:1123
msgid "The given supplier part does not exist"
-msgstr ""
+msgstr "지정한 공급업체 부품이 존재하지 않습니다"
#: stock/api.py:1133
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
-msgstr ""
+msgstr "공급업체 부품에 포장 단위가 정의되어 있지만 use_pack_size 플래그가 설정되지 않았습니다"
#: stock/api.py:1165
msgid "Serial numbers cannot be supplied for a non-trackable part"
-msgstr ""
+msgstr "추적 불가능한 부품에는 시리얼 번호를 제공할 수 없습니다"
#: stock/api.py:1409
msgid "Include Installed"
-msgstr ""
+msgstr "설치된 항목 포함"
#: stock/api.py:1411
msgid "If true, include test results for items installed underneath the given stock item"
-msgstr ""
+msgstr "true이면 지정한 재고 품목 아래에 설치된 항목의 테스트 결과를 포함합니다"
#: stock/api.py:1418
msgid "Filter by numeric Stock Item ID"
-msgstr ""
+msgstr "숫자 재고 품목 ID로 필터"
#: stock/api.py:1439
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
-msgstr ""
+msgstr "ID가 {id}인 재고 품목이 존재하지 않습니다"
#: stock/api.py:1516
msgid "Include Part Variants"
-msgstr ""
+msgstr "부품 변형 포함"
#: stock/api.py:1546
msgid "Date after"
-msgstr ""
+msgstr "날짜 이후"
#: stock/api.py:1550
msgid "Date before"
-msgstr ""
+msgstr "날짜 이전"
#: stock/models.py:73
msgid "Stock Location type"
-msgstr ""
+msgstr "재고 위치 유형"
#: stock/models.py:74
msgid "Stock Location types"
-msgstr ""
+msgstr "재고 위치 유형"
#: stock/models.py:100
msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
+msgstr "아이콘이 설정되지 않은 모든 위치에 대한 기본 아이콘(선택)"
#: stock/models.py:147 stock/models.py:1052
msgid "Stock Location"
-msgstr ""
+msgstr "재고 위치"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
-msgstr ""
+msgstr "재고 위치"
#: stock/models.py:197 stock/models.py:1217
msgid "Owner"
-msgstr ""
+msgstr "소유자"
#: stock/models.py:198 stock/models.py:1218
msgid "Select Owner"
-msgstr ""
+msgstr "소유자 선택"
#: stock/models.py:206
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:213 users/models.py:497
msgid "External"
-msgstr ""
+msgstr "외부"
#: stock/models.py:214
msgid "This is an external stock location"
-msgstr ""
+msgstr "외부 재고 위치입니다"
#: stock/models.py:220
msgid "Location type"
-msgstr ""
+msgstr "위치 유형"
#: stock/models.py:224
msgid "Stock location type of this location"
-msgstr ""
+msgstr "이 위치의 재고 위치 유형"
#: stock/models.py:296
msgid "You cannot make this stock location structural because some stock items are already located into it!"
-msgstr ""
+msgstr "일부 재고 품목이 이미 이 위치에 있으므로 이 재고 위치를 구조적 위치로 만들 수 없습니다!"
#: stock/models.py:585
#, python-brace-format
msgid "{field} does not exist"
-msgstr ""
+msgstr "{field}이(가) 존재하지 않습니다"
#: stock/models.py:598
msgid "Part must be specified"
-msgstr ""
+msgstr "부품을 지정해야 합니다"
#: stock/models.py:911
msgid "Stock items cannot be located into structural stock locations!"
-msgstr ""
+msgstr "재고 품목은 구조적 재고 위치에 배치할 수 없습니다!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
-msgstr ""
+msgstr "가상 부품에 대해 재고 품목을 생성할 수 없습니다"
#: stock/models.py:955
#, 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:965 stock/models.py:978
msgid "Quantity must be 1 for item with a serial number"
-msgstr ""
+msgstr "시리얼 번호가 있는 품목의 수량은 1이어야 합니다"
#: stock/models.py:968
msgid "Serial number cannot be set if quantity greater than 1"
-msgstr ""
+msgstr "수량이 1보다 크면 시리얼 번호를 설정할 수 없습니다"
#: stock/models.py:990
msgid "Item cannot belong to itself"
-msgstr ""
+msgstr "항목은 자기 자신에 속할 수 없습니다"
#: stock/models.py:995
msgid "Item must have a build reference if is_building=True"
-msgstr ""
+msgstr "is_building=True인 경우 항목에는 제조 참조가 있어야 합니다"
#: stock/models.py:1008
msgid "Build reference does not point to the same part object"
-msgstr ""
+msgstr "제조 참조가 동일한 부품 객체를 가리키지 않습니다"
#: stock/models.py:1022
msgid "Parent Stock Item"
-msgstr ""
+msgstr "상위 재고 품목"
#: stock/models.py:1034
msgid "Base part"
-msgstr ""
+msgstr "기본 부품"
#: stock/models.py:1044
msgid "Select a matching supplier part for this stock item"
-msgstr ""
+msgstr "이 재고 품목에 맞는 공급업체 부품을 선택하세요"
#: stock/models.py:1056
msgid "Where is this stock item located?"
-msgstr ""
+msgstr "이 재고 품목은 어디에 있습니까?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
-msgstr ""
+msgstr "이 재고 품목이 보관된 포장재"
#: stock/models.py:1070
msgid "Installed In"
-msgstr ""
+msgstr "설치 위치"
#: stock/models.py:1075
msgid "Is this item installed in another item?"
-msgstr ""
+msgstr "이 항목이 다른 항목에 설치되어 있습니까?"
#: stock/models.py:1094
msgid "Serial number for this item"
-msgstr ""
+msgstr "이 항목의 시리얼 번호"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
-msgstr ""
+msgstr "이 재고 품목의 배치 코드"
#: stock/models.py:1116
msgid "Stock Quantity"
-msgstr ""
+msgstr "재고 수량"
#: stock/models.py:1126
msgid "Source Build"
-msgstr ""
+msgstr "원본 제조"
#: stock/models.py:1129
msgid "Build for this stock item"
-msgstr ""
+msgstr "이 재고 품목의 제조"
#: stock/models.py:1136
msgid "Consumed By"
-msgstr ""
+msgstr "소비한 대상"
#: stock/models.py:1139
msgid "Build order which consumed this stock item"
-msgstr ""
+msgstr "이 재고 품목을 소비한 제조 주문"
#: stock/models.py:1148
msgid "Source Purchase Order"
-msgstr ""
+msgstr "원본 구매 주문"
#: stock/models.py:1152
msgid "Purchase order for this stock item"
-msgstr ""
+msgstr "이 재고 품목의 구매 주문"
#: stock/models.py:1158
msgid "Destination Sales Order"
-msgstr ""
+msgstr "대상 판매 주문"
#: stock/models.py:1169
msgid "Expiry date for stock item. Stock will be considered expired after this date"
-msgstr ""
+msgstr "재고 품목의 유효기간입니다. 이 날짜 이후 재고는 만료로 간주됩니다"
#: stock/models.py:1187
msgid "Delete on deplete"
-msgstr ""
+msgstr "소진 시 삭제"
#: stock/models.py:1188
msgid "Delete this Stock Item when stock is depleted"
-msgstr ""
+msgstr "재고가 소진되면 이 재고 품목을 삭제합니다"
#: stock/models.py:1209
msgid "Single unit purchase price at time of purchase"
-msgstr ""
+msgstr "구매 시점의 단위 구매 가격"
#: stock/models.py:1240
msgid "Converted to part"
-msgstr ""
+msgstr "부품으로 변환됨"
#: stock/models.py:1442
msgid "Quantity exceeds available stock"
-msgstr ""
+msgstr "수량이 사용 가능한 재고를 초과합니다"
#: stock/models.py:1893
msgid "Part is not set as trackable"
-msgstr ""
+msgstr "부품이 추적으로 설정되어 있지 않습니다"
#: stock/models.py:1899
msgid "Quantity must be integer"
-msgstr ""
+msgstr "수량은 정수여야 합니다"
#: stock/models.py:1907
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
-msgstr ""
+msgstr "수량은 사용 가능한 재고 수량({self.quantity})을 초과할 수 없습니다"
#: stock/models.py:1913
msgid "Serial numbers must be provided as a list"
-msgstr ""
+msgstr "시리얼 번호는 목록으로 제공되어야 합니다"
#: stock/models.py:1918
msgid "Quantity does not match serial numbers"
-msgstr ""
+msgstr "수량이 시리얼 번호와 일치하지 않습니다"
#: stock/models.py:1936
msgid "Cannot assign stock to structural location"
-msgstr ""
+msgstr "구조적 위치에 재고를 할당할 수 없습니다"
#: stock/models.py:2053 stock/models.py:3023
msgid "Test template does not exist"
-msgstr ""
+msgstr "테스트 템플릿이 존재하지 않습니다"
#: stock/models.py:2071
msgid "Stock item has been assigned to a sales order"
-msgstr ""
+msgstr "재고 품목이 판매 주문에 할당되었습니다"
#: stock/models.py:2075
msgid "Stock item is installed in another item"
-msgstr ""
+msgstr "재고 품목이 다른 품목에 설치되어 있습니다"
#: stock/models.py:2078
msgid "Stock item contains other items"
-msgstr ""
+msgstr "재고 품목에 다른 품목이 포함되어 있습니다"
#: stock/models.py:2081
msgid "Stock item has been assigned to a customer"
-msgstr ""
+msgstr "재고 품목이 고객에게 할당되었습니다"
#: stock/models.py:2084 stock/models.py:2270
msgid "Stock item is currently in production"
-msgstr ""
+msgstr "재고 품목이 현재 생산 중입니다"
#: stock/models.py:2087
msgid "Serialized stock cannot be merged"
-msgstr ""
+msgstr "시리얼 추적 재고는 병합할 수 없습니다"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
-msgstr ""
+msgstr "중복 재고 품목"
#: stock/models.py:2098
msgid "Stock items must refer to the same part"
-msgstr ""
+msgstr "재고 품목은 동일한 부품을 참조해야 합니다"
#: stock/models.py:2106
msgid "Stock items must refer to the same supplier part"
-msgstr ""
+msgstr "재고 항목은 동일한 공급업체 부품을 참조해야 합니다"
#: stock/models.py:2111
msgid "Stock status codes must match"
-msgstr ""
+msgstr "재고 상태 코드는 일치해야 합니다"
#: stock/models.py:2411
msgid "StockItem cannot be moved as it is not in stock"
-msgstr ""
+msgstr "재고에 없으므로 재고 항목을 이동할 수 없습니다"
#: stock/models.py:2905
msgid "Stock Item Tracking"
-msgstr ""
+msgstr "재고 항목 추적"
#: stock/models.py:2955
msgid "Entry notes"
-msgstr ""
+msgstr "항목 메모"
#: stock/models.py:2995
msgid "Stock Item Test Result"
-msgstr ""
+msgstr "재고 항목 테스트 결과"
#: stock/models.py:3026
msgid "Value must be provided for this test"
-msgstr ""
+msgstr "이 테스트에는 값을 제공해야 합니다"
#: stock/models.py:3030
msgid "Attachment must be uploaded for this test"
-msgstr ""
+msgstr "이 테스트에는 첨부 파일을 업로드해야 합니다"
#: stock/models.py:3035
msgid "Invalid value for this test"
-msgstr ""
+msgstr "이 테스트의 값이 올바르지 않습니다"
#: stock/models.py:3059
msgid "Test result"
-msgstr ""
+msgstr "테스트 결과"
#: stock/models.py:3066
msgid "Test output value"
-msgstr ""
+msgstr "테스트 출력 값"
#: stock/models.py:3074 stock/serializers.py:259
msgid "Test result attachment"
-msgstr ""
+msgstr "테스트 결과 첨부 파일"
#: stock/models.py:3078
msgid "Test notes"
-msgstr ""
+msgstr "테스트 메모"
#: stock/models.py:3086
msgid "Test station"
-msgstr ""
+msgstr "테스트 스테이션"
#: stock/models.py:3087
msgid "The identifier of the test station where the test was performed"
-msgstr ""
+msgstr "테스트가 수행된 테스트 스테이션의 식별자"
#: stock/models.py:3093
msgid "Started"
-msgstr ""
+msgstr "시작됨"
#: stock/models.py:3094
msgid "The timestamp of the test start"
-msgstr ""
+msgstr "테스트 시작 시각"
#: stock/models.py:3100
msgid "Finished"
-msgstr ""
+msgstr "완료됨"
#: stock/models.py:3101
msgid "The timestamp of the test finish"
-msgstr ""
+msgstr "테스트 종료 시각"
#: stock/serializers.py:85
msgid "Generated batch code"
-msgstr ""
+msgstr "생성된 배치 코드"
#: stock/serializers.py:94
msgid "Select build order"
-msgstr ""
+msgstr "제조 주문 선택"
#: stock/serializers.py:103
msgid "Select stock item to generate batch code for"
-msgstr ""
+msgstr "배치 코드를 생성할 재고 항목을 선택하세요"
#: stock/serializers.py:112
msgid "Select location to generate batch code for"
-msgstr ""
+msgstr "배치 코드를 생성할 위치를 선택하세요"
#: stock/serializers.py:121
msgid "Select part to generate batch code for"
-msgstr ""
+msgstr "배치 코드를 생성할 부품을 선택하세요"
#: stock/serializers.py:130
msgid "Select purchase order"
-msgstr ""
+msgstr "구매 주문 선택"
#: stock/serializers.py:137
msgid "Enter quantity for batch code"
-msgstr ""
+msgstr "배치 코드 수량을 입력하세요"
#: stock/serializers.py:163
msgid "Generated serial number"
-msgstr ""
+msgstr "생성된 일련 번호"
#: stock/serializers.py:173
msgid "Select part to generate serial number for"
-msgstr ""
+msgstr "일련 번호를 생성할 부품을 선택하세요"
#: stock/serializers.py:181
msgid "Quantity of serial numbers to generate"
-msgstr ""
+msgstr "생성할 일련 번호 수량"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
-msgstr ""
+msgstr "이 결과의 테스트 템플릿"
#: stock/serializers.py:289
msgid "No matching test found for this part"
-msgstr ""
+msgstr "이 부품에 일치하는 테스트를 찾을 수 없습니다"
#: stock/serializers.py:293
msgid "Template ID or test name must be provided"
-msgstr ""
+msgstr "템플릿 ID 또는 테스트 이름을 제공해야 합니다"
#: stock/serializers.py:303
msgid "The test finished time cannot be earlier than the test started time"
-msgstr ""
+msgstr "테스트 종료 시각은 테스트 시작 시각보다 빠를 수 없습니다"
#: stock/serializers.py:427
msgid "Parent Item"
-msgstr ""
+msgstr "상위 항목"
#: stock/serializers.py:428
msgid "Parent stock item"
-msgstr ""
+msgstr "상위 재고 항목"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
-msgstr ""
+msgstr "추가 시 포장 단위 사용: 입력한 수량은 포장 개수입니다"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
-msgstr ""
+msgstr "포장 단위 사용"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
-msgstr ""
+msgstr "새 항목의 일련 번호를 입력하세요"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
-msgstr ""
+msgstr "공급업체 부품 번호"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
-msgstr ""
+msgstr "만료됨"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
-msgstr ""
+msgstr "하위 항목"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
-msgstr ""
+msgstr "추적 항목"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
-msgstr ""
+msgstr "이 재고 항목의 구매 가격(단위 또는 포장 기준)"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
-msgstr ""
+msgstr "일련 번호를 부여할 재고 항목 수를 입력하세요"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
-msgstr ""
+msgstr "재고 항목이 제공되지 않았습니다"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
-msgstr ""
+msgstr "수량은 사용 가능한 재고 수량({q})을(를) 초과할 수 없습니다"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
-msgstr ""
+msgstr "대상 재고 위치"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
-msgstr ""
+msgstr "이 부품에는 일련 번호를 할당할 수 없습니다"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
-msgstr ""
+msgstr "일련 번호가 이미 존재합니다"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
-msgstr ""
-
-#: stock/serializers.py:823
-msgid "Quantity to Install"
-msgstr ""
-
-#: stock/serializers.py:824
-msgid "Enter the quantity of items to install"
-msgstr ""
-
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
-msgid "Add transaction note (optional)"
-msgstr ""
+msgstr "설치할 재고 항목을 선택하세요"
#: stock/serializers.py:837
+msgid "Quantity to Install"
+msgstr "설치 수량"
+
+#: stock/serializers.py:838
+msgid "Enter the quantity of items to install"
+msgstr "설치할 항목 수량을 입력하세요"
+
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
+msgid "Add transaction note (optional)"
+msgstr "거래 메모 추가(선택 사항)"
+
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
-msgstr ""
+msgstr "설치 수량은 최소 1이어야 합니다"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
-msgstr ""
+msgstr "재고 항목을 사용할 수 없습니다"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
-msgstr ""
+msgstr "선택한 부품이 BOM(자재 명세서)에 없습니다"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
-msgstr ""
+msgstr "설치 수량은 사용 가능한 수량을 초과할 수 없습니다"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
-msgstr ""
+msgstr "미설치 항목의 대상 위치"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
-msgstr ""
+msgstr "재고 항목을 변환할 부품을 선택하세요"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
-msgstr ""
+msgstr "선택한 부품은 변환에 사용할 수 없는 옵션입니다"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
-msgstr ""
+msgstr "공급업체 부품이 할당된 재고 항목은 변환할 수 없습니다"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
-msgstr ""
+msgstr "재고 항목 상태 코드"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
-msgstr ""
+msgstr "상태를 변경할 재고 항목을 선택하세요"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
-msgstr ""
+msgstr "선택된 재고 항목이 없습니다"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
-msgstr ""
+msgstr "하위 위치"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
-msgstr ""
+msgstr "상위 재고 위치"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
-msgstr ""
+msgstr "부품은 판매 가능해야 합니다"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
-msgstr ""
+msgstr "항목이 판매 주문에 할당되어 있습니다"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
-msgstr ""
+msgstr "항목이 제조 주문에 할당되어 있습니다"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
-msgstr ""
+msgstr "재고 항목을 할당할 고객"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
-msgstr ""
+msgstr "선택한 회사는 고객이 아닙니다"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
-msgstr ""
+msgstr "재고 할당 메모"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
-msgstr ""
+msgstr "재고 항목 목록을 제공해야 합니다"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
-msgstr ""
+msgstr "재고 병합 메모"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
-msgstr ""
+msgstr "공급업체 불일치 허용"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
-msgstr ""
+msgstr "공급업체 부품이 다른 재고 항목의 병합을 허용합니다"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
-msgstr ""
+msgstr "상태 불일치 허용"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
-msgstr ""
+msgstr "상태 코드가 다른 재고 항목의 병합을 허용합니다"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
-msgstr ""
+msgstr "최소 두 개의 재고 항목을 제공해야 합니다"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
-msgstr ""
+msgstr "변경 없음"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
-msgstr ""
+msgstr "재고 항목 기본 키 값"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
-msgstr ""
+msgstr "재고 항목이 재고에 없습니다"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
-msgstr ""
+msgstr "재고 항목이 이미 재고에 있습니다"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
-msgstr ""
+msgstr "수량은 음수일 수 없습니다"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
-msgstr ""
+msgstr "재고 거래 메모"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
-msgstr ""
+msgstr "기존 재고로 병합"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
-msgstr ""
+msgstr "가능하면 반품된 항목을 기존 재고 항목에 병합합니다"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
-msgstr ""
+msgstr "다음 일련 번호"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
-msgstr ""
+msgstr "이전 일련 번호"
#: stock/status_codes.py:11
msgid "OK"
-msgstr ""
+msgstr "정상"
#: 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:44
msgid "Legacy stock tracking entry"
-msgstr ""
+msgstr "레거시 재고 추적 항목"
#: stock/status_codes.py:46
msgid "Stock item created"
-msgstr ""
+msgstr "재고 항목 생성됨"
#: stock/status_codes.py:49
msgid "Edited stock item"
-msgstr ""
+msgstr "재고 항목 수정됨"
#: stock/status_codes.py:50
msgid "Assigned serial number"
-msgstr ""
+msgstr "일련 번호 할당됨"
#: stock/status_codes.py:53
msgid "Stock counted"
-msgstr ""
+msgstr "재고 실사됨"
#: stock/status_codes.py:54
msgid "Stock manually added"
-msgstr ""
+msgstr "재고 수동 추가됨"
#: stock/status_codes.py:55
msgid "Stock manually removed"
-msgstr ""
+msgstr "재고 수동 제거됨"
#: stock/status_codes.py:56
msgid "Serialized stock items"
-msgstr ""
+msgstr "재고 항목 일련번호화됨"
#: stock/status_codes.py:58
msgid "Returned to stock"
-msgstr ""
+msgstr "재고로 반품됨"
#: stock/status_codes.py:61
msgid "Location changed"
-msgstr ""
+msgstr "위치 변경됨"
#: stock/status_codes.py:62
msgid "Stock updated"
-msgstr ""
+msgstr "재고 업데이트됨"
#: stock/status_codes.py:65
msgid "Installed into assembly"
-msgstr ""
+msgstr "조립품에 설치됨"
#: stock/status_codes.py:66
msgid "Removed from assembly"
-msgstr ""
+msgstr "조립품에서 제거됨"
#: stock/status_codes.py:68
msgid "Installed component item"
-msgstr ""
+msgstr "구성품 항목 설치됨"
#: stock/status_codes.py:69
msgid "Removed component item"
-msgstr ""
+msgstr "구성품 항목 제거됨"
#: stock/status_codes.py:72
msgid "Split from parent item"
-msgstr ""
+msgstr "상위 항목에서 분리됨"
#: stock/status_codes.py:73
msgid "Split child item"
-msgstr ""
+msgstr "하위 항목 분리됨"
#: stock/status_codes.py:76
msgid "Merged stock items"
-msgstr ""
+msgstr "재고 항목 병합됨"
#: stock/status_codes.py:79
msgid "Converted to variant"
-msgstr ""
+msgstr "변형(Variant)으로 변환됨"
#: stock/status_codes.py:82
msgid "Build order output created"
-msgstr ""
+msgstr "제조 주문 출력 생성됨"
#: stock/status_codes.py:83
msgid "Build order output completed"
-msgstr ""
+msgstr "제조 주문 출력 완료됨"
#: stock/status_codes.py:84
msgid "Build order output rejected"
-msgstr ""
+msgstr "제조 주문 출력 거부됨"
#: stock/status_codes.py:85
msgid "Consumed by build order"
-msgstr ""
+msgstr "제조 주문에서 소모됨"
#: stock/status_codes.py:88
msgid "Shipped against Sales Order"
-msgstr ""
+msgstr "판매 주문으로 출하됨"
#: stock/status_codes.py:91
msgid "Received against Purchase Order"
-msgstr ""
+msgstr "구매 주문으로 입고됨"
#: stock/status_codes.py:94
msgid "Returned against Return Order"
-msgstr ""
+msgstr "반품 주문으로 반품됨"
#: stock/status_codes.py:97
msgid "Sent to customer"
-msgstr ""
+msgstr "고객에게 발송됨"
#: stock/status_codes.py:98
msgid "Returned from customer"
-msgstr ""
+msgstr "고객으로부터 반품됨"
#: templates/403.html:6 templates/403.html:10 templates/403_csrf.html:7
msgid "Permission Denied"
-msgstr ""
+msgstr "권한이 없습니다"
#: templates/403.html:11
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:12
msgid "You have been logged out from InvenTree."
-msgstr ""
+msgstr "InvenTree에서 로그아웃되었습니다."
#: templates/404.html:6 templates/404.html:10
msgid "Page Not Found"
-msgstr ""
+msgstr "페이지를 찾을 수 없음"
#: templates/404.html:11
msgid "The requested page does not exist"
-msgstr ""
+msgstr "요청한 페이지가 존재하지 않습니다"
#: templates/500.html:6 templates/500.html:10
msgid "Internal Server Error"
-msgstr ""
+msgstr "내부 서버 오류"
#: templates/500.html:11
#, python-format
msgid "The %(inventree_title)s server raised an internal error"
-msgstr ""
+msgstr "%(inventree_title)s 서버에서 내부 오류가 발생했습니다"
#: templates/500.html:12
msgid "Refer to the error log in the admin interface for further details"
-msgstr ""
+msgstr "자세한 내용은 관리자 인터페이스의 오류 로그를 확인하세요"
#: templates/503.html:11 templates/503.html:15
msgid "Site is in Maintenance"
-msgstr ""
+msgstr "사이트 점검 중"
#: templates/503.html:17
msgid "The site is currently in maintenance and should be up again soon!"
-msgstr ""
+msgstr "현재 사이트가 점검 중이며 곧 다시 이용할 수 있습니다!"
#: templates/base.html:51
msgid "Server Restart Required"
-msgstr ""
+msgstr "서버 재시작 필요"
#: templates/base.html:54
msgid "A configuration option has been changed which requires a server restart"
-msgstr ""
+msgstr "재시작이 필요한 설정 옵션이 변경되었습니다"
#: templates/base.html:54 templates/base.html:64
msgid "Contact your system administrator for further information"
-msgstr ""
+msgstr "자세한 내용은 시스템 관리자에게 문의하세요"
#: templates/base.html:61
msgid "Pending Database Migrations"
-msgstr ""
+msgstr "대기 중인 데이터베이스 마이그레이션"
#: templates/base.html:64
msgid "There are pending database migrations which require attention"
-msgstr ""
+msgstr "주의가 필요한 대기 중인 데이터베이스 마이그레이션이 있습니다"
#: templates/config_error.html:6 templates/config_error.html:10
msgid "Configuration Error"
-msgstr ""
+msgstr "구성 오류"
#: templates/config_error.html:11
#, python-format
msgid "The %(inventree_title)s server raised a configuration error"
-msgstr ""
+msgstr "%(inventree_title)s 서버에서 구성 오류가 발생했습니다"
#: templates/email/build_order_completed.html:9
#: templates/email/canceled_order_assigned.html:9
@@ -9340,357 +9352,361 @@ 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 - %(part)s %(quantity)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
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
#: templates/email/part_event_notification.html:9
msgid "Click on the following link to view this part"
-msgstr ""
+msgstr "이 부품을 보려면 다음 링크를 클릭하세요"
#: templates/email/low_stock_notification.html:18
#: templates/email/part_event_notification.html:19
msgid "Minimum Quantity"
-msgstr ""
+msgstr "최소 수량"
#: templates/email/part_event_notification.html:32
msgid "You are receiving this email because you are subscribed to notifications for this part or a category that it is part of "
-msgstr ""
+msgstr "이 부품 또는 이 부품이 속한 카테고리에 대한 알림을 구독하고 있어 이 이메일을 받고 있습니다 "
#: templates/email/stale_stock_notification.html:10
msgid "The following stock items are approaching their expiry dates:"
-msgstr ""
+msgstr "다음 재고 항목의 유효기간이 곧 만료됩니다:"
#: templates/email/stale_stock_notification.html:23
msgid "Days Until Expiry"
-msgstr ""
+msgstr "만료까지 남은 일수"
#: templates/email/stale_stock_notification.html:57
msgid "You are receiving this email because you are subscribed to notifications for these parts"
-msgstr ""
+msgstr "이 부품들에 대한 알림을 구독하고 있어 이 이메일을 받고 있습니다"
#: users/admin.py:101
msgid "Users"
-msgstr ""
+msgstr "사용자"
#: users/admin.py:102
msgid "Select which users are assigned to this group"
-msgstr ""
+msgstr "이 그룹에 할당할 사용자를 선택하세요"
#: users/admin.py:137
msgid "Personal info"
-msgstr ""
+msgstr "개인 정보"
#: users/admin.py:139
msgid "Permissions"
-msgstr ""
+msgstr "권한"
#: users/admin.py:142
msgid "Important dates"
-msgstr ""
+msgstr "중요 날짜"
#: users/authentication.py:30 users/models.py:151
msgid "Token has been revoked"
-msgstr ""
+msgstr "토큰이 취소되었습니다"
#: users/authentication.py:33
msgid "Token has expired"
-msgstr ""
+msgstr "토큰이 만료되었습니다"
#: users/models.py:94
msgid "API Token"
-msgstr ""
+msgstr "API 토큰"
#: users/models.py:95
msgid "API Tokens"
-msgstr ""
+msgstr "API 토큰"
#: users/models.py:131
msgid "Token Name"
-msgstr ""
+msgstr "토큰 이름"
#: users/models.py:132
msgid "Custom token name"
-msgstr ""
+msgstr "사용자 지정 토큰 이름"
#: users/models.py:138
msgid "Token expiry date"
-msgstr ""
+msgstr "토큰 만료일"
#: users/models.py:146
msgid "Last Seen"
-msgstr ""
+msgstr "마지막 사용"
#: users/models.py:147
msgid "Last time the token was used"
-msgstr ""
+msgstr "토큰이 마지막으로 사용된 시간"
#: users/models.py:151
msgid "Revoked"
-msgstr ""
+msgstr "취소됨"
#: users/models.py:229
msgid "Permission set"
-msgstr ""
+msgstr "권한 세트"
#: users/models.py:242
msgid "View"
-msgstr ""
+msgstr "보기"
#: users/models.py:242
msgid "Permission to view items"
-msgstr ""
+msgstr "항목을 볼 권한"
#: users/models.py:246
msgid "Add"
-msgstr ""
+msgstr "추가"
#: users/models.py:246
msgid "Permission to add items"
-msgstr ""
+msgstr "항목을 추가할 권한"
#: users/models.py:250
msgid "Change"
-msgstr ""
+msgstr "변경"
#: users/models.py:252
msgid "Permissions to edit items"
-msgstr ""
+msgstr "항목을 수정할 권한"
#: users/models.py:256
msgid "Delete"
-msgstr ""
+msgstr "삭제"
#: users/models.py:258
msgid "Permission to delete items"
-msgstr ""
+msgstr "항목을 삭제할 권한"
#: users/models.py:495
msgid "Bot"
-msgstr ""
+msgstr "봇"
#: users/models.py:496
msgid "Internal"
-msgstr ""
+msgstr "내부"
#: users/models.py:498
msgid "Guest"
-msgstr ""
+msgstr "게스트"
#: users/models.py:507
msgid "Language"
-msgstr ""
+msgstr "언어"
#: users/models.py:508
msgid "Preferred language for the user"
-msgstr ""
+msgstr "사용자의 선호 언어"
#: users/models.py:513
msgid "Theme"
-msgstr ""
+msgstr "테마"
#: users/models.py:514
msgid "Settings for the web UI as JSON - do not edit manually!"
-msgstr ""
+msgstr "웹 UI 설정(JSON) - 수동으로 편집하지 마세요!"
#: users/models.py:519
msgid "Widgets"
-msgstr ""
+msgstr "위젯"
#: users/models.py:521
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
-msgstr ""
+msgstr "대시보드 위젯 설정(JSON) - 수동으로 편집하지 마세요!"
#: users/models.py:528
msgid "Display Name"
-msgstr ""
+msgstr "표시 이름"
#: users/models.py:529
msgid "Chosen display name for the user"
-msgstr ""
+msgstr "사용자가 선택한 표시 이름"
#: users/models.py:535
msgid "Position"
-msgstr ""
+msgstr "직책"
#: users/models.py:536
msgid "Main job title or position"
-msgstr ""
+msgstr "주요 직함 또는 직책"
#: users/models.py:543
msgid "User status message"
-msgstr ""
+msgstr "사용자 상태 메시지"
#: users/models.py:550
msgid "User location information"
-msgstr ""
+msgstr "사용자 위치 정보"
#: users/models.py:555
msgid "User is actively using the system"
-msgstr ""
+msgstr "사용자가 시스템을 사용 중입니다"
#: users/models.py:562
msgid "Preferred contact information for the user"
-msgstr ""
+msgstr "사용자가 선호하는 연락처 정보"
#: users/models.py:568
msgid "User Type"
-msgstr ""
+msgstr "사용자 유형"
#: users/models.py:569
msgid "Which type of user is this?"
-msgstr ""
+msgstr "어떤 유형의 사용자입니까?"
#: users/models.py:575
msgid "Organisation"
-msgstr ""
+msgstr "조직"
#: users/models.py:576
msgid "Users primary organisation/affiliation"
-msgstr ""
+msgstr "사용자의 기본 조직/소속"
#: users/models.py:584
msgid "Primary Group"
-msgstr ""
+msgstr "기본 그룹"
#: users/models.py:585
msgid "Primary group for the user"
-msgstr ""
+msgstr "사용자의 기본 그룹"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
-msgstr ""
+msgstr "관리자"
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr "구매 주문"
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr "판매 주문"
+
+#: users/ruleset.py:36
msgid "Return Orders"
-msgstr ""
+msgstr "반품 주문"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
-msgstr ""
+msgstr "사용자 이름"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
-msgstr ""
+msgstr "이름"
+
+#: users/serializers.py:189
+msgid "First name of the user"
+msgstr "사용자의 이름"
#: users/serializers.py:193
-msgid "First name of the user"
-msgstr ""
-
-#: users/serializers.py:197
msgid "Last Name"
-msgstr ""
+msgstr "성"
+
+#: users/serializers.py:193
+msgid "Last name of the user"
+msgstr "사용자의 성"
#: users/serializers.py:197
-msgid "Last name of the user"
-msgstr ""
-
-#: users/serializers.py:201
msgid "Email address of the user"
-msgstr ""
+msgstr "사용자의 이메일 주소"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
-msgstr ""
+msgstr "사용자가 인증되어야 합니다"
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
-msgstr ""
+msgstr "슈퍼유저만 다른 사용자의 토큰을 만들 수 있습니다"
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
-msgstr ""
+msgstr "관리자"
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
-msgstr ""
+msgstr "이 사용자에게 관리자 권한이 있습니까"
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
-msgstr ""
+msgstr "슈퍼유저"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
-msgstr ""
+msgstr "이 사용자는 슈퍼유저입니까"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
-msgstr ""
+msgstr "이 사용자 계정이 활성 상태입니까"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
-msgstr ""
-
-#: users/serializers.py:372
-msgid "Password"
-msgstr ""
-
-#: users/serializers.py:373
-msgid "Password for the user"
-msgstr ""
+msgstr "슈퍼유저만 이 필드를 조정할 수 있습니다"
#: users/serializers.py:379
-msgid "Override warning"
-msgstr ""
+msgid "Password"
+msgstr "비밀번호"
#: users/serializers.py:380
+msgid "Password for the user"
+msgstr "사용자의 비밀번호"
+
+#: users/serializers.py:386
+msgid "Override warning"
+msgstr "경고 무시"
+
+#: users/serializers.py:387
msgid "Override the warning about password rules"
-msgstr ""
+msgstr "비밀번호 규칙에 대한 경고를 무시합니다"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
-msgstr ""
+msgstr "스태프"
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "이 사용자에게 스태프 권한이 있습니까"
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
-msgstr ""
+msgstr "사용자를 생성할 권한이 없습니다"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
-msgstr ""
+msgstr "계정이 생성되었습니다."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
-msgstr ""
+msgstr "로그인하려면 비밀번호 재설정 기능을 사용하세요"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
-msgstr ""
+msgstr "InvenTree에 오신 것을 환영합니다"
diff --git a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po
index 7bd0e70d68..1578b0f5fe 100644
--- a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Language: lt_LT\n"
@@ -104,13 +104,13 @@ msgstr "Įveskite datą"
msgid "Invalid decimal value"
msgstr "Neteisinga dešimtainė reikšmė"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Pastabos"
@@ -215,7 +215,7 @@ msgstr "Nurodytas URL nėra tinkamas paveikslėlio failas"
msgid "Log in to the app"
msgstr "Prisijungti prie programos"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "El. paštas"
@@ -269,7 +269,7 @@ msgstr "Neteisingas pasirinkimas"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Serveris užfiksavo klaidą."
msgid "Image"
msgstr "Paveikslėlis"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Turi būti teisingas skaičius"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valiuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Pasirinkite valiutą iš galimų variantų"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Neteisinga reikšmė"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Nutolęs paveikslėlis"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "Nutolusio paveikslėlio failo URL"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Paveikslėlių atsisiuntimas iš nutolusio URL neįjungtas"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Nepavyko atsisiųsti paveikslėlio iš nutolusio URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Kinų (supaprastinta)"
msgid "Chinese (Traditional)"
msgstr "Kinų (tradicinė)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Užsakymo būsena"
msgid "Parent Build"
msgstr "Pirminė gamyba"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Įtraukti variantus"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Įtraukti variantus"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Įtraukti variantus"
msgid "Part"
msgstr "Detalė"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategorija"
@@ -665,89 +665,89 @@ msgstr "Maksimali data"
msgid "Exclude Tree"
msgstr "Neįtraukti medžio struktūros"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Prieš ištrinant gamybą, ji turi būti atšaukta"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Sunaudojama"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Pasirinktinai"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Surinkimas"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Sekama"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testuojama"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Liko neįvykdytų užsakymų"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Priskirta"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Prieinama"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Užsakyta"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Gamybos užsakymas"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Vieta"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Gamybos užsakymai"
@@ -783,9 +783,9 @@ msgstr "Tikslinė data turi būti po pradžios datos"
msgid "Build Order Reference"
msgstr "Gamybos užsakymo nuoroda"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Pardavimo užsakymo nuoroda"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Šaltinio vieta"
@@ -861,16 +861,16 @@ msgstr "Gamybos būsena"
msgid "Build status code"
msgstr "Gamybos būsenos kodas"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Partijos kodas"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Šios gamybos partijos kodas"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Sukūrimo data"
@@ -907,120 +907,120 @@ msgstr "Išdavė"
msgid "User who issued this build order"
msgstr "Vartotojas, kuris išdavė šį gamybos užsakymą"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Atsakingas"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Vartotojas ar grupė, atsakinga už šį gamybos užsakymą"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Išorinė nuoroda"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Nuoroda į išorinį URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Gamybos prioritetas"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Šio gamybos užsakymo prioritetas"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Projekto kodas"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Šio gamybos užsakymo projekto kodas"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Nepavyko perduoti užduoties, kad būtų atlikti gamybos paskirstymai"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Gamybos užsakymas {build} užbaigtas"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Gamybos užsakymas užbaigtas"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Sekamoms detalėms būtina nurodyti serijos numerius"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nepateiktas gamybos rezultatas"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Gamybos rezultatas jau užbaigtas"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Gamybos rezultatas neatitinka gamybos užsakymo"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Kiekis turi būti didesnis nei nulis"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Kiekis negali viršyti rezultato kiekio"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Gamybos rezultatas {serial} nepraėjo visų privalomų testų"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Gamybos užsakymo eilutės įrašas"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Gamybos objektas"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Gamybos objektas"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Kiekis"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Reikalingas kiekis gamybos užsakymui"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Gamybos elementas turi nurodyti rezultatą, nes pagrindinė detalė pažymėta kaip sekama"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Pasirinktas atsargų elementas neatitinka BOM eilutės"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Atsargoms su serijos numeriais kiekis turi būti 1"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Priskirtas kiekis ({q}) negali viršyti galimo atsargų kiekio ({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Atsargų elementas per daug paskirstytas"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Atsargų elementas"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Šaltinio atsargų elementas"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Atsargų kiekis, skirtas paskirstyti į gamybą"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Įdiegti į"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Paskirties atsargų elementas"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Gamybos lygis"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Detalės pavadinimas"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Gamybos rezultatas"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Gamybos rezultatas neatitinka pirminės gamybos"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Rezultato detalė neatitinka gamybos užsakymo detalės"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Šis gamybos rezultatas jau užbaigtas"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Šis gamybos rezultatas nėra visiškai paskirstytas"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Įveskite kiekį gamybos rezultatui"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Sekamoms detalėms reikalingas sveikasis kiekis"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Reikalingas sveikasis kiekis, nes komplektavimo žiniaraštyje yra sekamų detalių"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Serijos numeriai"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Įveskite serijos numerius gamybos rezultatams"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Atsargų vieta gamybos rezultatams"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Automatiškai priskirti serijos numerius"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatiškai priskirti reikalingas prekes su atitinkančiais serijos numeriais"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Šie serijos numeriai jau egzistuoja arba yra neteisingi"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Turi būti pateiktas gamybos rezultatų sąrašas"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Atsargų vieta brokuotiems rezultatams"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Atmesti priskyrimus"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Atmesti visus atsargų priskyrimus brokuotiems rezultatams"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Priežastis, dėl kurios gamybos rezultatas(-ai) buvo nurašytas(-i)"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Vieta, kur laikomi užbaigti gamybos rezultatai"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Priimti nepilną priskyrimą"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Užbaigti rezultatus, net jei atsargos dar nėra pilnai priskirtos"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Sunaudoti priskirtas atsargas"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Sunaudoti bet kokias šiai gamybai jau priskirtas atsargas"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Pašalinti nebaigtus rezultatus"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "Ištrinti visus nebaigtus gamybos rezultatus"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Neleidžiama"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Priimti kaip sunaudotą šio gamybos užsakymo metu"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Panaikinkite priskyrimus prieš užbaigiant šį gamybos užsakymą"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Per daug paskirstytos atsargos"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Kaip norite elgtis su papildomai šiam gamybos užsakymui priskirtomis atsargomis"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Kai kurios atsargos paskirstytos per daug"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Priimti nepriskirtą"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Priimti, kad atsargos nebuvo visiškai priskirtos šiam gamybos užsakymui"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Reikalingos atsargos nėra visiškai priskirtos"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Priimti nepilną"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Priimti, kad ne visi reikalingi gamybos rezultatai buvo užbaigti"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Reikalingas gamybos kiekis nebuvo užbaigtas"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Gamybos užsakymas turi nebaigtų antrinių gamybų"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Gamybos užsakymas turi būti gamybos būsenoje"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Gamybos užsakymas turi nebaigtų rezultatų"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Gamybos eilutė"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Gamybos rezultatas"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Gamybos rezultatas turi būti susietas su ta pačia gamyba"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Gamybos eilutės įrašas"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part turi būti ta pati detalė kaip ir gamybos užsakyme"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Prekė turi būti atsargose"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Viršytas prieinamas kiekis ({q})"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Sekamų detalių priskyrymui turi būti nurodytas gamybos rezultatas"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Negalima nurodyti gamybos rezultato nesekamoms detalėms"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Turi būti pateikti paskirstymo elementai"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Atsargų vieta, iš kurios bus imamos detalės (palikite tuščią, jei tinka bet kuri vieta)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Neįtraukti vietos"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Neįtraukti atsargų iš šios pasirinktos vietos"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Keičiamos atsargos"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Atsargos iš skirtingų vietų gali būti naudojamos pakaitomis"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Pakaitinės atsargos"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Leisti priskirti pakaitines detales"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Pasirenkami elementai"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Priskirti papildomus BOM elementus gamybos užsakymui"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "BOM nuoroda"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "BOM detalės ID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "BOM detalės pavadinimas"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Gamyba"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Tiekėjo detalė"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Priskirtas kiekis"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Gamybos nuoroda"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Detalės kategorijos pavadinimas"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Sekama"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Paveldėta"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Leisti variantus"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "BOM elementas"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Gamyboje"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Išorinės atsargos"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Prieinamos atsargos"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Prieinamos pakaitinės atsargos"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Prieinamos variantų atsargos"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "Sulaikyta"
msgid "Cancelled"
msgstr "Atšaukta"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Vėluojantis gamybos užsakymas"
msgid "Build order {bo} is now overdue"
msgstr "Gamybos užsakymas {bo} dabar vėluoja"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Yra nuoroda"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Yra failas"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Vartotojas neturi teisės ištrinti šių priedų"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Vartotojas neturi teisės ištrinti šio priedo"
@@ -1550,7 +1550,7 @@ msgstr "Nepateikta jokių galiojančių valiutos kodų"
msgid "No plugin"
msgstr "Nėra papildinio"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Projekto kodo etiketė"
@@ -1617,7 +1617,7 @@ msgstr "Raktas turi būti unikalus"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Vartotojas"
msgid "Price break quantity"
msgstr "Kiekio ribinis taškas kainai"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Kaina"
@@ -1652,7 +1652,7 @@ msgstr "Šio webhook'o pavadinimas"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktyvus"
@@ -1849,7 +1849,7 @@ msgstr "Failo dydis"
msgid "File size in bytes"
msgstr "Failo dydis baitais"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Netinkamas modelio tipas priedui"
@@ -2058,7 +2058,7 @@ msgstr "Žymimojo laukelio parametrai negali turėti matavimo vienetų"
msgid "Checkbox parameters cannot have choices"
msgstr "Žymimojo laukelio parametrai negali turėti pasirinkimų"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Pasirinkimai turi būti unikalūs"
@@ -2094,7 +2094,7 @@ msgstr "Žymimasis laukelis"
msgid "Is this parameter a checkbox?"
msgstr "Ar šis parametras yra žymimasis laukelis?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Pasirinkimai"
@@ -2106,7 +2106,7 @@ msgstr "Galimi pasirinkimai šiam parametrui (atskirti kableliais)"
msgid "Selection list for this parameter"
msgstr "Pasirinkimų sąrašas šiam parametrui"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Įjungta"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Neteisingas pasirinkimas parametro reikšmei"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Šablonas"
@@ -2148,7 +2148,7 @@ msgstr "Šablonas"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Data"
@@ -2156,18 +2156,18 @@ msgstr "Data"
msgid "Parameter Value"
msgstr "Parametro reikšmė"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Pastaba"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Neprivalomas pastabų laukas"
@@ -2391,85 +2391,85 @@ msgstr "Nurodo, ar nustatymą pakeičia aplinkos kintamasis"
msgid "Override"
msgstr "Nepaisyti"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Vykdoma"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Laukiančios užduotys"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Suplanuotos užduotys"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Nepavykusios užduotys"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Užduoties ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Unikalus užduoties ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Užraktas"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Užrakto laikas"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Užduoties pavadinimas"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funkcija"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Funkcijos pavadinimas"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumentai"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Užduoties argumentai"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Rakto argumentai"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Užduoties rakto argumentai"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Failo pavadinimas"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Modelio tipas"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Vartotojas neturi leidimo kurti ar redaguoti šio modelio priedų"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Pasirinkimų sąrašas yra užrakintas"
@@ -2859,8 +2859,8 @@ msgstr "Detalės pagal nutylėjimą yra šablonai"
msgid "Parts can be assembled from other components by default"
msgstr "Detalės pagal nutylėjimą gali būti surenkamos iš kitų komponentų"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponentas"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Gauti klaidų ataskaitas"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Gauti pranešimus apie sistemos klaidas"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Paskutiniai naudoti spausdintuvai"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Išsaugoti paskutinius naudotojo naudotus spausdintuvus"
@@ -3988,33 +3996,33 @@ msgstr "Detalė yra aktyvi"
msgid "Manufacturer is Active"
msgstr "Gamintojas yra aktyvus"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Tiekėjo detalė yra aktyvi"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Vidinė detalė yra aktyvi"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Tiekėjas yra aktyvus"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Gamintojas"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Įmonė"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Turi atsargų"
@@ -4195,7 +4203,7 @@ msgstr "Siuntimo pastabos vidiniam naudojimui"
msgid "Link to address information (external)"
msgstr "Nuoroda į adreso informaciją (išorinė)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Gamintojo detalė"
@@ -4213,12 +4221,12 @@ msgstr "Pasirinkite detalę"
msgid "Select manufacturer"
msgstr "Pasirinkite gamintoją"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Gamintojo detalės numeris (MPN)"
@@ -4242,8 +4250,8 @@ msgstr "Pakuotės vienetų kiekis turi būti didesnis už nulį"
msgid "Linked manufacturer part must reference the same base part"
msgstr "Susieta gamintojo detalė turi nurodyti tą pačią pagrindinę detalę"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Tiekėjas"
msgid "Select supplier"
msgstr "Pasirinkite tiekėją"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Tiekėjo sandėlio numeris (SKU)"
@@ -4282,16 +4290,16 @@ msgstr "Išorinės nuorodos į tiekėjo detalės URL"
msgid "Supplier part description"
msgstr "Tiekėjo detalės aprašymas"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "bazinė kaina"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimalus mokestis (pvz., sandėliavimo mokestis)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Pakuotė"
@@ -4307,7 +4315,7 @@ msgstr "Pakuotės kiekis"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Bendras kiekis vienoje pakuotėje. Palikite tuščią, jei prekė tiekiama po vieną."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "daugiklis"
@@ -4339,14 +4347,18 @@ msgstr "Numatytoji valiuta, naudojama šiam tiekėjui"
msgid "Company Name"
msgstr "Įmonės pavadinimas"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Sandėlyje"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Įvyko klaida eksportuojant duomenis"
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Šis stulpelis jau yra susietas su duomenų bazės lauku"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Šis laukas jau yra susietas su duomenų stulpeliu"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Stulpelių susiejimas turi būti susietas su galiojančia importavimo sesija"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Stulpelis neegzistuoja duomenų faile"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Laukas neegzistuoja tiksliniame modelyje"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Pasirinktas laukas yra tik skaitomas"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Importavimo sesija"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Laukas"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Stulpelis"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Eilutės indeksas"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Pradiniai eilutės duomenys"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Klaidos"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Galiojantis"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Užsakymas"
msgid "Order Complete"
msgstr "Užsakymas įvykdytas"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Vidinė detalė"
@@ -4918,7 +4930,7 @@ msgstr "Pradžios data"
msgid "Scheduled start date for this order"
msgstr "Numatyta pradžios data šiam užsakymui"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Tikslinė data"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Užsakymo nuoroda"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Būsena"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Gauta"
msgid "Number of items received"
msgstr "Gautų prekių kiekis"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Pirkimo kaina"
@@ -5211,8 +5223,8 @@ msgstr "Patikrino"
msgid "User who checked this shipment"
msgstr "Vartotojas, patikrinęs šią siuntą"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Siunta"
@@ -5277,7 +5289,7 @@ msgstr "Priskiriamas kiekis negali viršyti atsargų kiekio"
msgid "Allocation quantity must be greater than zero"
msgstr "Priskirtas kiekis turi būti didesnis nei nulis"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Kiekis turi būti 1, jei prekė turi serijos numerį"
@@ -5393,7 +5405,7 @@ msgstr "Kopijuoti papildomas eilutes"
msgid "Copy extra line items from the original order"
msgstr "Kopijuoti papildomas eilutes iš pradinio užsakymo"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopijuoti parametrus"
@@ -5412,216 +5424,216 @@ msgstr "Eilutės įrašai"
msgid "Completed Lines"
msgstr "Užbaigtos eilutės"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Dubliuoti užsakymą"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Nurodykite užsakymo dubliavimo parinktis"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Neteisingas užsakymo ID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Tiekėjo pavadinimas"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Užsakymo atšaukti negalima"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Leisti užbaigti užsakymą su neužbaigtais eilutės įrašais"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Užsakyme yra neužbaigtų eilutės įrašų"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Užsakymas nėra atidarytas"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Automatinis kainų nustatymas"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Automatiškai apskaičiuoti pirkimo kainą pagal tiekėjo detalės duomenis"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Pirkimo kainos valiuta"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Sujungti elementus"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Sujungti elementus su ta pačia detale, paskirtimi ir tiksline data į vieną eilutės įrašą"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Vidinis detalės numeris"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Vidinis detalės pavadinimas"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Turi būti nurodyta tiekėjo detalė"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Turi būti nurodytas pirkimo užsakymas"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Tiekėjas turi atitikti pirkimo užsakymą"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Pirkimo užsakymas turi atitikti tiekėją"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Eilutės įrašas"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Pasirinkite paskirties vietą gautiems elementams"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Įveskite partijos kodą gaunamoms atsargoms"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Galiojimo data"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Įveskite galiojimo datą gaunamoms atsargoms"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Įveskite gaunamų atsargų serijos numerius"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Pakeisti gaunamų atsargų pakavimo informaciją"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Papildoma pastaba gaunamoms atsargoms"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Brūkšninis kodas"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Nuskaitytas brūkšninis kodas"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Brūkšninis kodas jau naudojamas"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Turi būti pateikti eilutės įrašai"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Turi būti nurodyta paskirties vieta"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Pateiktos brūkšninių kodų reikšmės turi būti unikalios"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Siuntos"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Užbaigtos siuntos"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Pardavimo kainos valiuta"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Paskirstyti elementai"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Nepateikta siuntos informacija"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Eilutės įrašas nėra susijęs su šiuo užsakymu"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Kiekis turi būti teigiamas"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Įveskite priskiriamus serijos numerius"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Siunta jau išsiųsta"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Siunta nėra susieta su šiuo užsakymu"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Nerasta atitikmenų šiems serijos numeriams"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Šie serijos numeriai nepasiekiami"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Grąžinimo užsakymo eilutės įrašas"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Eilutės įrašas neatitinka grąžinimo užsakymo"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Eilutės įrašas jau gautas"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Elementai gali būti priimami tik pagal vykdomus užsakymus"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Grąžinamas kiekis"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Eilutės kainos valiuta"
@@ -5732,71 +5744,71 @@ msgstr "Neįtraukti sub-kategorijų po nurodyta kategorija"
msgid "Has Results"
msgstr "Turi rezultatų"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Yra variantas"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Yra versija"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Turi versijų"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "BOM galiojantis"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Surinkimo detalė gali būti testuojama"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Komponento detalė gali būti testuojama"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Naudoja"
@@ -5805,7 +5817,7 @@ msgstr "Naudoja"
msgid "Part Category"
msgstr "Detalių kategorija"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Detalių kategorijos"
@@ -5837,7 +5849,7 @@ msgstr "Numatytieji raktažodžiai detalėms šioje kategorijoje"
msgid "Icon"
msgstr "Piktograma"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Piktograma (neprivaloma)"
@@ -5858,7 +5870,7 @@ msgstr "Numatytoji reikšmė"
msgid "Default Parameter Value"
msgstr "Numatytoji parametro reikšmė"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Detalės"
@@ -5973,7 +5985,7 @@ msgstr "Detalės raktažodžiai, skirti pagerinti matomumą paieškos rezultatuo
msgid "Part category"
msgstr "Detalės kategorija"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6006,7 +6018,7 @@ msgstr "Numatytasis galiojimo laikas"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Šios detalės atsargų galiojimo laikas (dienomis)"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimalus atsargų kiekis"
@@ -6086,756 +6098,756 @@ msgstr "Sukūręs vartotojas"
msgid "Owner responsible for this part"
msgstr "Atsakingas vartotojas už šią detalę"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Parduodamas kiekis"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Valiuta, naudojama kainų skaičiavimams kaupti"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimali BOM kaina"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Minimali komponentų detalių kaina"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maksimali BOM kaina"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Maksimali komponentų detalių kaina"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimali pirkimo kaina"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Mažiausia istorinė pirkimo kaina"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maksimali pirkimo kaina"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Didžiausia istorinė pirkimo kaina"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimali vidinė kaina"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Mažiausia kaina pagal vidinius kainų intervalus"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maksimali vidinė kaina"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Didžiausia kaina pagal vidinius kainų intervalus"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Mažiausia tiekėjo kaina"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Mažiausia detalės kaina iš išorinių tiekėjų"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Didžiausia tiekėjo kaina"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Didžiausia detalės kaina iš išorinių tiekėjų"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Mažiausia varianto kaina"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Apskaičiuota minimali variantų detalių kaina"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Didžiausia varianto kaina"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Apskaičiuota didžiausia variantų detalių kaina"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimali kaina"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Nepaisyti minimalios kainos"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maksimali kaina"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Nepaisyti maksimalios kainos"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Apskaičiuota bendra minimali kaina"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Apskaičiuota bendra maksimali kaina"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimali pardavimo kaina"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Mažiausia pardavimo kaina pagal kainų intervalus"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Didžiausia pardavimo kaina"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Didžiausia pardavimo kaina pagal kainų intervalus"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Mažiausia pardavimo kaina"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Mažiausia istorinė pardavimo kaina"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Didžiausia pardavimo kaina"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Didžiausia istorinė pardavimo kaina"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Detalė inventorizacijai"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Vienetų skaičius"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Atsargų įrašų skaičius inventorizacijos metu"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Bendras prieinamas atsargų kiekis inventorizacijos metu"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Data"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Inventorizacijos atlikimo data"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimali atsargų kaina"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Apytikslė minimali turimų atsargų kaina"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maksimali atsargų kaina"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Apytikslė maksimali turimų atsargų kaina"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Detalės kainų intervalai pardavimui"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Detalės bandymų šablonas"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Netinkamas šablono pavadinimas - turi būti bent vienas raidinis ar skaitinis simbolis"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Bandymų šablonus galima kurti tik testuojamoms detalėms"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Detalė jau turi bandymų šabloną su tokiu pačiu raktu"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Bandymo pavadinimas"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Įveskite bandymo pavadinimą"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Bandymo raktas"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Supaprastintas bandymo raktas"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Bandymo aprašymas"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Įveskite šio bandymo aprašymą"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Ar šis bandymas įjungtas?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Privalomas"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Ar šį bandymą būtina išlaikyti?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Reikalauja reikšmės"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Ar šiam bandymui reikia įvesti reikšmę pridedant rezultatą?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Reikalauja priedo"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Ar šiam bandymui reikia pridėti failą su rezultatu?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Galimi pasirinkimai šiam bandymui (atskirti kableliais)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "BOM elemento keisti negalima - surinkimas užrakintas"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "BOM elemento keisti negalima - varianto surinkimas užrakintas"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Pasirinkite pirminę detalę"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Pavaldi detalė"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Pasirinkite detalę, naudojamą BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "BOM reikalingas šios detalės kiekis"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Šis BOM elementas yra pasirenkamas"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Šis BOM elementas yra sunaudojamas (nesekamas gamybos užsakymuose)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "BOM nuoroda"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "BOM pastabos"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Kontrolinė suma"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "BOM eilutės kontrolinė suma"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Patvirtinta"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Šis BOM elementas patvirtintas"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Paveldima"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Šį BOM elementą paveldi variantų sąrašai"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Šiam BOM elementui galima naudoti variantinių detalių atsargas"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Sekamoms detalėms kiekis turi būti sveikasis skaičius"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Turi būti nurodyta pavaldi detalė"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "BOM elemento pakaitalas"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Pakaitinė detalė negali būti tokia pati kaip pagrindinė detalė"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Pagrindinis BOM elementas"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Pakaitinė detalė"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Detalė 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Detalė 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Pasirinkite susijusią detalę"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Pastaba šiam ryšiui"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Detalių ryšio negalima sukurti tarp detalės ir jos pačios"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Toks ryšys jau egzistuoja"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Pagrindinė kategorija"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Pagrindinė detalių kategorija"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Subkategorijos"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Rezultatai"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Rezultatų skaičius, susietas su šiuo šablonu"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Šio atsargų elemento pirkimo valiuta"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Failas nėra paveikslėlis"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Pradinė detalė"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Pasirinkite pradinę detalę kopijavimui"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopijuoti paveikslėlį"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Kopijuoti paveikslėlį iš pradinės detalės"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Kopijuoti BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Kopijuoti komplektavimo žiniaraštį iš pradinės detalės"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Kopijuoti parametrų duomenis iš pradinės detalės"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Kopijuoti pastabas"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Kopijuoti pastabas iš pradinės detalės"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Pradinis atsargų kiekis"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Nurodykite pradinį atsargų kiekį šiai detalei. Jei kiekis nulis - atsargos nebus pridėtos."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Pradinė atsargų vieta"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Nurodykite pradinę atsargų vietą šiai detalei"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Pasirinkite tiekėją (arba palikite tuščią, jei nenorite nurodyti)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Pasirinkite gamintoją (arba palikite tuščią, jei nenorite nurodyti)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Gamintojo detalės numeris"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Pasirinkta įmonė nėra galiojantis tiekėjas"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Pasirinkta įmonė nėra galiojantis gamintojas"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Detalė su šiuo gamintojo numeriu (MPN) jau egzistuoja"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Tiekėjo detalė su šiuo SKU jau egzistuoja"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategorijos pavadinimas"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Surinkimas"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Atsargos"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Versijos"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Bendros atsargos"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Nepriskirtos atsargos"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Variantų atsargos"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Kopijuoti detalę"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Kopijuoti pradinius duomenis iš kitos detalės"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Pradinės atsargos"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Sukurti detalę su pradiniu atsargų kiekiu"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Tiekėjo informacija"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Pridėti pradinę tiekėjo informaciją šiai detalei"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kopijuoti kategorijos parametrus"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Kopijuoti parametrų šablonus iš pasirinktos detalių kategorijos"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Esamas paveikslėlis"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Esamos detalės paveikslėlio failo pavadinimas"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Paveikslėlio failas neegzistuoja"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Patvirtinti visą komplektavimo žiniaraštį"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Galima surinkti"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Mažiausia kaina"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Pakeisti apskaičiuotą mažiausią kainą"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Mažiausios kainos valiuta"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Didžiausia kaina"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Pakeisti apskaičiuotą didžiausią kainą"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Didžiausios kainos valiuta"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Atnaujinti"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Atnaujinti šios detalės kainodarą"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Nepavyko konvertuoti iš nurodytų valiutų į {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Mažiausia kaina negali būti didesnė už didžiausią kainą"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Didžiausia kaina negali būti mažesnė už mažiausią kainą"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Pasirinkite pirminį surinkimą"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Pasirinkite komponentinę detalę"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Pasirinkite detalę, iš kurios kopijuoti BOM"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Pašalinti esamus duomenis"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Pašalinti esamus BOM elementus prieš kopijuojant"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Įtraukti paveldėtus"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Įtraukti BOM elementus, paveldėtus iš šabloninių detalių"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Praleisti netinkamas eilutes"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Įjunkite šią parinktį, jei norite praleisti netinkamas eilutes"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Kopijuoti pakaitines detales"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopijuoti pakaitines detales, kai kopijuojami BOM elementai"
@@ -7758,7 +7770,7 @@ msgstr "Pakuotės įskiepis"
msgid "Plugin"
msgstr "Įskiepis"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Autorius nerastas"
@@ -8288,7 +8300,7 @@ msgstr "Atsargų elemento bandymo ataskaita"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Sumontuoti elementai"
@@ -8361,7 +8373,7 @@ msgstr "Filtruoti pagal aukščiausio lygio vietas"
msgid "Include sub-locations in filtered results"
msgstr "Įtraukti sub-vietas į filtravimo rezultatus"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Pirminė vieta"
@@ -8445,7 +8457,7 @@ msgstr "Galiojimo data iki"
msgid "Expiry date after"
msgstr "Galiojimo data po"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Pasenusi"
@@ -8530,7 +8542,7 @@ msgstr "Numatytoji piktograma visoms vietoms, kurioms nepaskirta piktograma (nep
msgid "Stock Location"
msgstr "Atsargų vieta"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Atsargų vietos"
@@ -8579,7 +8591,7 @@ msgstr "Turi būti nurodyta detalė"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Atsargos negali būti patalpintos į struktūrines atsargų vietas!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Atsargų elementas negali būti sukurtas virtualioms detalėms"
@@ -8624,7 +8636,7 @@ msgstr "Pasirinkite atitinkančią tiekėjo detalę šiam atsargų elementui"
msgid "Where is this stock item located?"
msgstr "Kur yra šis atsargų elementas?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Pakuotė, kurioje laikomas šis atsargų elementas"
@@ -8640,7 +8652,7 @@ msgstr "Ar šis elementas yra sumontuotas kitame elemente?"
msgid "Serial number for this item"
msgstr "Šio elemento serijos numeris"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Šio atsargų elemento partijos kodas"
@@ -8753,7 +8765,7 @@ msgstr "Atsargų elementas šiuo metu gaminamas"
msgid "Serialized stock cannot be merged"
msgstr "Su serijos numeriais pažymėtų atsargų sujungti negalima"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Pasikartojantys atsargų elementai"
@@ -8877,7 +8889,7 @@ msgstr "Pasirinkite detalę serijos numeriui sugeneruoti"
msgid "Quantity of serial numbers to generate"
msgstr "Kiekis serijos numerių, kuriuos reikia sugeneruoti"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Bandymo šablonas šiam rezultatui"
@@ -8901,222 +8913,222 @@ msgstr "Pirminis elementas"
msgid "Parent stock item"
msgstr "Pirminis atsargų elementas"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Naudoti pakuotės dydį pridedant: nurodytas kiekis yra pakuočių skaičius"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Įveskite serijos numerius naujiems elementams"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Tiekėjo detalės numeris"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Nebegaliojantis"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Antriniai elementai"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Sekami elementai"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Šio atsargų elemento pirkimo kaina, vienetui arba pakuotei"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Įveskite atsargų elementų, kuriuos reikia serializuoti, skaičių"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Kiekis negali viršyti galimų atsargų kiekio ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Paskirties atsargų vieta"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Šiai detalei negali būti priskirti serijos numeriai"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Serijos numeriai jau egzistuoja"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Pasirinkite atsargų elementą montavimui"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Montuojamas kiekis"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Įveskite montuojamų elementų kiekį"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Pridėkite operacijos pastabą (neprivaloma)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Montuojamas kiekis turi būti bent 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Atsargų elementas nepasiekiamas"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Pasirinktos detalės nėra komplektavimo žiniaraštyje"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Montuojamas kiekis negali viršyti turimo kiekio"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Paskirties vieta išmontuotam elementui"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Pasirinkite detalę, į kurią konvertuoti atsargų elementą"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Pasirinkta detalė netinkama konvertavimui"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Negalima konvertuoti atsargų elemento, kuriam priskirta tiekėjo detalė"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Atsargų elemento būsenos kodas"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Pasirinkite atsargų elementus būsenai pakeisti"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Nepasirinkti jokie atsargų elementai"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sub-vietos"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Pirminė atsargų vieta"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Detalė turi būti parduodama"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Elementas priskirtas pardavimo užsakymui"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Elementas priskirtas gamybos užsakymui"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Klientas, kuriam priskiriami atsargų elementai"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Pasirinkta įmonė nėra klientas"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Atsargų priskyrimo pastabos"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Turi būti pateiktas atsargų elementų sąrašas"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Atsargų sujungimo pastabos"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Leisti skirtingus tiekėjus"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Leisti sujungti atsargų elementus su skirtingomis tiekėjų detalėmis"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Leisti skirtingas būsenas"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Leisti sujungti atsargų elementus su skirtingais būsenos kodais"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Turi būti pateikti bent du atsargų elementai"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Be pakeitimų"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Atsargų elemento pirminio rakto reikšmė"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Atsargų elemento nėra sandėlyje"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Atsargų operacijos pastabos"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Kitas serijos numeris"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Ankstesnis serijos numeris"
@@ -9582,115 +9594,119 @@ msgstr "Pagrindinė grupė"
msgid "Primary group for the user"
msgstr "Pagrindinė vartotojo grupė"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Administratorius"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Pirkimo užsakymai"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Pardavimo užsakymai"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Grąžinimo užsakymai"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Vartotojo vardas"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Vardas"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Vartotojo vardas"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Pavardė"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Vartotojo pavardė"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Vartotojo el. pašto adresas"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Supervartotojas"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Ar šis vartotojas yra supervartotojas"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Ar ši vartotojo paskyra yra aktyvi"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Tik supervartotojas gali keisti šį lauką"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Neturite leidimo kurti vartotojų"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Jūsų paskyra sukurta."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Prisijungimui naudokite slaptažodžio atstatymo funkciją"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Sveiki atvykę į InvenTree"
diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po
index 73107e725c..8a81f92378 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Language: lv_LV\n"
@@ -104,13 +104,13 @@ msgstr "Ievadiet datumu"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Piezīmes"
@@ -215,7 +215,7 @@ msgstr "Norādītajā URL nav derīgs attēla fails"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr ""
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po
index e50f14380d..8ae4cbb31d 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -23,7 +23,7 @@ msgstr "API eindpunt niet gevonden"
#: InvenTree/api.py:438
msgid "List of items must be provided for bulk operation"
-msgstr ""
+msgstr "Lijst met items of filters moet worden opgegeven voor bulk bewerking"
#: InvenTree/api.py:445
msgid "Items must be provided as a list"
@@ -104,13 +104,13 @@ msgstr "Voer datum in"
msgid "Invalid decimal value"
msgstr "Ongeldige decimale waarde"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Opmerkingen"
@@ -165,19 +165,19 @@ msgstr "Gegevens bevatten verboden markdown inhoud"
#: InvenTree/helpers_model.py:109
msgid "Invalid URL: no hostname"
-msgstr ""
+msgstr "Ongeldige URL: geen hostnaam"
#: InvenTree/helpers_model.py:114
msgid "Invalid URL: hostname could not be resolved"
-msgstr ""
+msgstr "Ongeldige URL: hostnaam kon niet worden opgelost"
#: InvenTree/helpers_model.py:120
msgid "URL points to a private or reserved IP address"
-msgstr ""
+msgstr "URL-punten naar een privé of gereserveerd IP-adres"
#: InvenTree/helpers_model.py:195
msgid "Too many redirects"
-msgstr ""
+msgstr "Te veel doorverwijzingen"
#: InvenTree/helpers_model.py:200
msgid "Connection error"
@@ -215,7 +215,7 @@ msgstr "Opgegeven URL is geen geldig afbeeldingsbestand"
msgid "Log in to the app"
msgstr "Log in op de app"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-mail"
@@ -269,7 +269,7 @@ msgstr "Ongeldige keuze"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Er is een fout gelogd door de server."
msgid "Image"
msgstr "Afbeelding"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Selecteer valuta uit beschikbare opties"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Dit veld mag niet nul zijn."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Ongeldige waarde"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Externe afbeelding"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL van extern afbeeldingsbestand"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Fout bij het downloaden van afbeelding van externe URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Ongeldig inhoudstype"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Inhoudstype niet gevonden"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Content type komt niet overeen met de vereiste mixin klasse"
@@ -536,11 +536,11 @@ msgstr "Chinees (vereenvoudigd)"
msgid "Chinese (Traditional)"
msgstr "Chinees (traditioneel)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Update beschikbaar"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Een update voor Inventree is beschikbaar"
@@ -561,21 +561,21 @@ msgstr "Status van bestelling"
msgid "Parent Build"
msgstr "Bovenliggende Productie"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Inclusief varianten"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Inclusief varianten"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Inclusief varianten"
msgid "Part"
msgstr "Onderdeel"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categorie"
@@ -665,89 +665,89 @@ msgstr "Max. datum"
msgid "Exclude Tree"
msgstr "Boomstructuur uitsluiten"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Verbruiksartikelen"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Optioneel"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Samenstelling"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Gevolgd"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testbaar"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Openstaande order"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Toegewezen"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Verbruikt"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Beschikbaar"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "In bestelling"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
-msgstr ""
+msgstr "Build niet gevonden"
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Productieorder"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Locatie"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Uitvoer"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filter op uitvoer standaard item ID. Gebruik 'null' om niet geïnstalleerde build items te vinden."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Productieorders"
@@ -783,9 +783,9 @@ msgstr "Doeldatum moet na startdatum zijn"
msgid "Build Order Reference"
msgstr "Productieorderreferentie"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Verkooporder Referentie"
msgid "Sales Order to which this build is allocated"
msgstr "Productieopdracht waar dit productie aan is toegewezen"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Bronlocatie"
@@ -861,16 +861,16 @@ msgstr "Productiestatus"
msgid "Build status code"
msgstr "Productiestatuscode"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Batchcode"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Batchcode voor deze productieuitvoer"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Aanmaakdatum"
@@ -907,120 +907,120 @@ msgstr "Uitgegeven door"
msgid "User who issued this build order"
msgstr "Gebruiker die de productieorder heeft gegeven"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Bouw prioriteit"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioriteit van deze bouwopdracht"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Project code"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Project code voor deze build order"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Kan de bouwopdracht niet voltooien zolang onderliggende bouwopdrachten nog openstaan"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Kan de bouwopdracht niet voltooien zolang de output onvolledig is"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Verwijderen van taak om toewijzingen te voltooien mislukt"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Productieorder {build} is voltooid"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Een productieorder is voltooid"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Serienummers moeten worden opgegeven voor traceerbare onderdelen"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Geen productie uitvoer opgegeven"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Productie uitvoer is al voltooid"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Productuitvoer komt niet overeen met de Productieorder"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Hoeveelheid kan niet groter zijn dan aantal"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Build output heeft niet alle vereiste tests doorstaan"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Build output {serial} heeft niet alle vereiste tests doorstaan"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "Voorraadproducten zijn nog in productie"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Kan een build uitvoer niet gedeeltelijk voltooien met de toegewezen items"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Bouw order regel item"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Bouw object"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Bouw object"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Hoeveelheid"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Vereiste hoeveelheid voor bouwopdracht"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Aantal van verbruikte voorraad"
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "Toegewezen hoeveelheid moet groter zijn dan nul"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid toe te wijzen aan productie"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Bouw level"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Onderdeel naam"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Productieuitvoer"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Productieuitvoer komt niet overeen met de bovenliggende productie"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Uitvoeronderdeel komt niet overeen met productieorderonderdeel"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Deze productieuitvoer is al voltooid"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Deze productieuitvoer is niet volledig toegewezen"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor productie uitvoer"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Serienummers"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Voer serienummers in voor productieuitvoeren"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Voorraad locatie voor project uitvoer"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Serienummers automatisch toewijzen"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "De volgende serienummers bestaan al of zijn ongeldig"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Voorraadlocatie voor geannuleerde outputs"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Toewijzingen weggooien"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Verwijder alle voorraadtoewijzingen voor geannuleerde outputs"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Reden voor annulering van bouworder(s)"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Locatie van voltooide productieuitvoeren"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Incomplete Toewijzing Accepteren"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Toegewezen voorraad gebruiken"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Verbruik elke voorraad die al is toegewezen aan deze build"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Verwijder Incomplete Uitvoeren"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Niet toegestaan"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Accepteer zoals geconsumeerd onder deze bouwopdracht"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "De-alloceren voordat deze bouwopdracht voltooid wordt"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Overgealloceerde voorraad"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Sommige voorraadartikelen zijn overalloceerd"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Accepteer Niet-toegewezen"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Vereiste voorraad is niet volledig toegewezen"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Accepteer Onvolledig"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Vereiste productiehoeveelheid is voltooid"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Bouw opdracht heeft open sub bouw orders"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Bouwen moet in de productiestatus staan"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Productieorder heeft onvolledige uitvoeren"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Productielijn"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Productieuitvoer"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Productieuitvoer moet naar dezelfde productie wijzen"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Bouw lijn-item"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Artikel moet op voorraad zijn"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Beschikbare hoeveelheid ({q}) overschreden"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Allocaties voor artikelen moeten worden opgegeven"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Locatie uitsluiten"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Uitwisselbare voorraad"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Vervangende Voorraad"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Toewijzing van vervangende onderdelen toestaan"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Optionele Items"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Alloceer optionele BOM items om bestelling te bouwen"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "Alle artikelen"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr "Niet Gevolgde items"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr "Gevolgde Items"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "Item Type"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr "Selecteer item type om automatisch toe te wijzen"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "BOM referentie"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "BOM onderdeel ID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "BOM onderdeel naam"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "Instaleeren Op"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Bouwen"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Leveranciersonderdeel"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Toegewezen hoeveelheid"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Bouw referentie"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Naam categorie onderdeel"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Volgbaar"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Overgenomen"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Varianten toestaan"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Stuklijstartikel"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "In productie"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Gepland om te bouwen"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Externe voorraad"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Beschikbare Voorraad"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Beschikbare vervanging voorraad"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Beschikbare varianten voorraad"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Verbruikte hoeveelheid overschrijdt toegewezen hoeveelheid"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Optionele notities voor voorraadverbruik"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "Het bouwelement moet verwijzen naar de juiste bouwopdracht"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Dupliceer build item allocatie"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "Build line moet verwijzen naar de juiste bouwopdracht"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Dupliceer build line toewijzing"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Ten minste één item of regel moet worden opgegeven"
@@ -1494,7 +1494,7 @@ msgstr "In de wacht"
msgid "Cancelled"
msgstr "Geannuleerd"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Achterstallige Productieorder"
msgid "Build order {bo} is now overdue"
msgstr "Productieorder {bo} is nu achterstallig"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Is koppeling"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Is een bestand"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Gebruiker heeft geen toestemming om deze bijlagen te verwijderen"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Gebruiker heeft geen toestemming om deze bijlage te verwijderen."
@@ -1550,7 +1550,7 @@ msgstr "Geen geldige valuta codes opgegeven"
msgid "No plugin"
msgstr "Geen plug-in gevonden"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Projectcode label"
@@ -1617,7 +1617,7 @@ msgstr "Sleutelreeks moet uniek zijn"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Gebruiker"
msgid "Price break quantity"
msgstr "Prijs pauze hoeveelheid"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Prijs"
@@ -1652,7 +1652,7 @@ msgstr "Naam van deze webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Actief"
@@ -1849,7 +1849,7 @@ msgstr "Bestandsgrootte"
msgid "File size in bytes"
msgstr "Bestandsgrootte in bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Ongeldig modeltype opgegeven voor bijlage"
@@ -2058,7 +2058,7 @@ msgstr "Checkbox parameters kunnen geen eenheden bevatten"
msgid "Checkbox parameters cannot have choices"
msgstr "Checkbox parameters kunnen geen eenheden bevatten"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Keuzes moeten uniek zijn"
@@ -2094,7 +2094,7 @@ msgstr "Selectievakje"
msgid "Is this parameter a checkbox?"
msgstr "Is deze parameter een selectievak?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Keuzes"
@@ -2106,7 +2106,7 @@ msgstr "Geldige keuzes voor deze parameter (komma gescheiden)"
msgid "Selection list for this parameter"
msgstr "Lijst met selecties voor deze parameter"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Ingeschakeld"
@@ -2126,7 +2126,7 @@ msgstr "Parameters"
msgid "Invalid choice for parameter value"
msgstr "Ongeldige keuze voor parameter waarde"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Ongeldig modeltype opgegeven voor parameter"
@@ -2140,7 +2140,7 @@ msgstr "ID van het doelmodel voor deze parameter"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Sjabloon"
@@ -2148,7 +2148,7 @@ msgstr "Sjabloon"
msgid "Parameter template"
msgstr "Parameter sjabloon"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Gegevens"
@@ -2156,18 +2156,18 @@ msgstr "Gegevens"
msgid "Parameter Value"
msgstr "Parameterwaarde"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Opmerking"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Optioneel notities veld"
@@ -2391,85 +2391,85 @@ msgstr "Geeft aan of de instelling overschreven wordt door een omgevingsvariabel
msgid "Override"
msgstr "Overschrijven"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Is actief"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Openstaande taken"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Geplande taken"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Mislukte taken"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Taak ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Unieke taak ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Vergrendel"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Tijdstip van vergrendeling"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Naam van de taak"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Functie"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Functie naam"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumenten"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Taak argumenten"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Trefwoord argumenten"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Taak trefwoord argumenten"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Bestandsnaam"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Model type"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Gebruiker heeft geen toestemming om bijlagen voor dit model te maken of te bewerken"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "Gebruiker heeft geen toestemming om parameters voor dit model te maken of te bewerken"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lijst met selecties is vergrendeld"
@@ -2547,19 +2547,19 @@ msgstr "Toon de `over` modal alleen aan superusers"
#: common/setting/system.py:239
msgid "Show superuser banner"
-msgstr ""
+msgstr "Toon superuser banner"
#: common/setting/system.py:240
msgid "Show a warning banner in the UI when logged in as superuser"
-msgstr ""
+msgstr "Toon een waarschuwings-banner in de UI wanneer ingelogd als superuser"
#: common/setting/system.py:245
msgid "Show admin banner"
-msgstr ""
+msgstr "Toon admin banner"
#: common/setting/system.py:246
msgid "Show a warning banner in the UI when logged in as admin"
-msgstr ""
+msgstr "Toon een waarschuwings-banner in de UI wanneer ingelogd als admin"
#: common/setting/system.py:251 company/models.py:147 company/models.py:148
msgid "Company name"
@@ -2859,8 +2859,8 @@ msgstr "Onderdelen zijn standaard sjablonen"
msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Onderdeel"
@@ -3034,7 +3034,7 @@ msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijs
#: common/setting/system.py:654
msgid "Allow BOM Zero Quantity"
-msgstr ""
+msgstr "BOM Zero Quantity toestaan"
#: common/setting/system.py:656
msgid "Accept a zero quantity for BOM item for part. Enables using setup quantity to define a quantity required per build, independent of build quantity"
@@ -3601,7 +3601,7 @@ msgstr "Voorraadgegevens zal worden verwijderd na het opgegeven aantal dagen"
#: common/setting/system.py:1163
msgid "Delete Old Stock Tracking Entries"
-msgstr ""
+msgstr "Oude voorraadgegevens verwijderen"
#: common/setting/system.py:1165
msgid "Delete stock tracking entries older than the specified number of days"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Uitgeschakeld: Het volledige categorie pad wordt weergegeven als hover tooltip. Ingeschakeld: Het pad van de volledige categorie wordt weergegeven als platte tekst."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Foutrapportages ontvangen"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Meldingen ontvangen van systeemfouten"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Laatst gebruikte printer"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Sla de laatst gebruikte printer op voor een gebruiker"
@@ -3988,33 +3996,33 @@ msgstr "Onderdeel is actief"
msgid "Manufacturer is Active"
msgstr "Fabrikant is actief"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Leveranciersonderdelen is actief"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr "Primaire leverancierdeel"
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Intern onderdeel is actief"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Leverancier is actief"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Fabrikant"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Bedrijf"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Heeft voorraad"
@@ -4195,7 +4203,7 @@ msgstr "Verzend notities voor intern gebruik"
msgid "Link to address information (external)"
msgstr "Link naar adres gegevens (extern)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Fabrikant onderdeel"
@@ -4213,12 +4221,12 @@ msgstr "Onderdeel selecteren"
msgid "Select manufacturer"
msgstr "Fabrikant selecteren"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "Fabrikant artikel nummer"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Fabrikant artikel nummer (MPN)"
@@ -4242,8 +4250,8 @@ msgstr "Hoeveelheid moet groter zijn dan nul"
msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Leverancier"
msgid "Select supplier"
msgstr "Leverancier selecteren"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Voorraad beheers eenheid voor leveranciers"
@@ -4282,16 +4290,16 @@ msgstr "URL voor link externe leveranciers onderdeel"
msgid "Supplier part description"
msgstr "Omschrijving leveranciersdeel"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "basisprijs"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Verpakking"
@@ -4307,7 +4315,7 @@ msgstr "Pakket hoeveelheid"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Totale hoeveelheid geleverd in één pakket. Laat leeg voor enkele afzonderlijke items."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "meerdere"
@@ -4339,14 +4347,18 @@ msgstr "Standaardvaluta die gebruikt wordt voor deze leverancier"
msgid "Company Name"
msgstr "Bedrijfsnaam"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Op voorraad"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Prijsverschillen"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Fout opgetreden tijdens data export"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Bestaande database-identifier voor het record"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "De kolom is al toegewezen aan een database veld"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Het veld is al toegewezen aan een data-kolom"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Kolom toewijzing moet worden gekoppeld aan een geldige importsessie"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Kolom bestaat niet in het gegevensbestand"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Veld bestaat niet in het doel model"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Geselecteerde veld is alleen lezen"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Importeer sessie"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Veld"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Kolom"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Rij index"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Oorspronkelijke rij gegevens"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Fouten"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Geldig"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "ID is vereist voor het bijwerken van bestaande records."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Geen record gevonden met het opgegeven ID"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Ongeldig ID formaat opgegeven"
@@ -4821,7 +4833,7 @@ msgstr "Bestellen"
msgid "Order Complete"
msgstr "Bestelling voltooid"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Intern onderdeel"
@@ -4918,7 +4930,7 @@ msgstr "Start datum"
msgid "Scheduled start date for this order"
msgstr "Geplande startdatum voor deze bestelling"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Streefdatum"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Orderreferentie"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Ontvangen"
msgid "Number of items received"
msgstr "Aantal ontvangen artikelen"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Inkoopprijs"
@@ -5211,8 +5223,8 @@ msgstr "Gecontroleerd door"
msgid "User who checked this shipment"
msgstr "Gebruiker die deze zending gecontroleerd heeft"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Zending"
@@ -5277,7 +5289,7 @@ msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid"
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel"
@@ -5393,7 +5405,7 @@ msgstr "Extra regels kopiëren"
msgid "Copy extra line items from the original order"
msgstr "Extra regelitems van de oorspronkelijke bestelling kopiëren"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Parameters kopiëren"
@@ -5412,217 +5424,217 @@ msgstr "Artikelen"
msgid "Completed Lines"
msgstr "Afgeronde regel items"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Artikel dupliceren"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Specificeer opties voor het dupliceren van deze bestelling"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Ongeldige order ID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Leveranciers Naam"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Order kan niet worden geannuleerd"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Toestaan order te sluiten met onvolledige regelitems"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Bestelling heeft onvolledige regelitems"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Order is niet open"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Automatisch prijzen"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Koopprijs automatisch berekenen gebaseerd op leveranciers \n"
" onderdelen gegevens"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Valuta Inkoopprijs"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Items samenvoegen"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Items met hetzelfde onderdeel, bestemming en doeldatum samenvoegen in één regelitem"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Intern Onderdeelnummer"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Interne naam onderdeel"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Leveranciersonderdeel moet worden gespecificeerd"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Inkooporder moet worden gespecificeerd"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "De leverancier moet overeenkomen met de inkooporder"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Inkooporder moet overeenkomen met de leverancier"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Artikel"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Voer batch code in voor inkomende voorraad items"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Vervaldatum"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Voer vervaldatum in voor inkomende voorraad items"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Voer serienummers in voor inkomende voorraadartikelen"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Overschrijf verpakkingsinformatie voor binnenkomende voorraad"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Extra opmerking voor inkomende voorraad items"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Streepjescode"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Gescande streepjescode"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Streepjescode is al in gebruik"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Artikelen moeten worden opgegeven"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Bestemmingslocatie moet worden opgegeven"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Geleverde streepjescodewaarden moeten uniek zijn"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Verzendingen"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Voltooide Verzendingen"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr "Toegewezen lijnen"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Valuta verkoopprijs"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Toegewezen items"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Geen verzenddetails opgegeven"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Artikelregel is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Hoeveelheid moet positief zijn"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Voer serienummers in om toe te wijzen"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Verzending is al verzonden"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Zending is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Geen overeenkomst gevonden voor de volgende serienummers"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "De volgende serienummers zijn niet beschikbaar"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Retourneer regel item"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Artikelregel komt niet overeen met inkooporder"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Regel item is al ontvangen"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Artikelen kunnen alleen worden ontvangen tegen lopende bestellingen"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Hoeveelheid te retourneren"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Lijn prijs valuta"
@@ -5733,71 +5745,71 @@ msgstr "Subcategorieën uitsluiten in de opgegeven categorie"
msgid "Has Results"
msgstr "Heeft resultaten"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Is een variant"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Is revisie"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Heeft revisies"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "BOM Valid"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Cascade Categorieën"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Indien waar, inclusief items op de onderliggende categorieën van de opgegeven categorie"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filter op numerieke categorie-ID of de letterlijke 'null'"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr "Bouw onderdeel is actief"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr "Bouw onderdeel is te volgen"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Assemblage deel is testbaar"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr "Onderdeel is actief"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr "Onderdeel is trackable"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Component onderdeel is testbaar"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr "Onderdeel is nog te bouwen"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr "Onderdeel is virtueel"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr "Heeft beschikbare voorraad"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Gebruik"
@@ -5806,7 +5818,7 @@ msgstr "Gebruik"
msgid "Part Category"
msgstr "Onderdeel Categorie"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Onderdeel Categorieën"
@@ -5838,7 +5850,7 @@ msgstr "Standaard trefwoorden voor delen in deze categorie"
msgid "Icon"
msgstr "Pictogram"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Pictogram (optioneel)"
@@ -5859,7 +5871,7 @@ msgstr "Standaard waarde"
msgid "Default Parameter Value"
msgstr "Standaard Parameter Waarde"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Onderdelen"
@@ -5974,7 +5986,7 @@ msgstr "Deel sleutelwoorden om de zichtbaarheid van de zoekresultaten te verbete
msgid "Part category"
msgstr "Onderdeel Categorie"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6007,7 +6019,7 @@ msgstr "Standaard verval datum"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Verlooptijd (in dagen) voor voorraadartikelen van dit deel"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimum voorraad"
@@ -6087,756 +6099,756 @@ msgstr "Aanmaken gebruiker"
msgid "Owner responsible for this part"
msgstr "Eigenaar verantwoordelijk voor dit deel"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Verkopen van meerdere"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Valuta die gebruikt wordt voor de cache berekeningen"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimale BOM kosten"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Minimale kosten van onderdelen"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maximale BOM kosten"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Maximale kosten van onderdelen"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimale aankoop kosten"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Minimale historische aankoop kosten"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maximale aanschaf kosten"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Maximum historische aankoop kosten"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimale interne prijs"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Minimale kosten op basis van interne prijsschommelingen"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maximale interne prijs"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Maximale kosten gebaseerd op interne prijsvoordelen"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimale leverancier prijs"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Minimale prijs van onderdeel van externe leveranciers"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maximale leverancier prijs"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Maximale prijs van onderdeel van externe leveranciers"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimale variant kosten"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Berekende minimale kosten van variant onderdelen"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maximale variant kosten"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Berekende maximale kosten van variant onderdelen"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimale kostprijs"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Overschrijf minimale kosten"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maximale kosten"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Overschrijf maximale kosten"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Berekende minimale kosten"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Berekende totale maximale kosten"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimale verkoop prijs"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Minimale verkoopprijs gebaseerd op prijsschommelingen"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maximale verkoop prijs"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Maximale verkoopprijs gebaseerd op prijsschommelingen"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Minimale verkoop prijs"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Minimale historische verkoop prijs"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maximale verkoop prijs"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Maximale historische verkoop prijs"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Onderdeel voor voorraadcontrole"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Getelde items"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Aantal individuele voorraadvermeldingen op het moment van voorraadcontrole"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Totale voorraad op het moment van voorraadcontrole"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Datum"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Datum waarop voorraad werd uitgevoerd"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimale voorraadprijs"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Geschatte minimum kosten van de voorraad op de hand"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maximale voorraadkosten"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Geschatte maximale kosten van de hand van voorraad"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Periodieke verkoopprijs voor onderdelen"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Sjabloon test onderdeel"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Ongeldige sjabloonnaam - moet minstens één alfanumeriek teken bevatten"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Test sjablonen kunnen alleen worden gemaakt voor testbare onderdelen"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Test template met dezelfde sleutel bestaat al voor een deel"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Test naam"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Geef een naam op voor de test"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Test sleutel"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Vereenvoudigde sleutel voor de test"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Test beschrijving"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Voer beschrijving in voor deze test"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Is deze test ingeschakeld?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Vereist"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Is deze test nodig om te doorlopen?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Waarde vereist"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Heeft deze test een waarde nodig bij het toevoegen van een testresultaat?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Vereist bijlage"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Vereist deze test een bestandsbijlage bij het toevoegen van een testresultaat?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Geldige keuzes voor deze parameter (komma gescheiden)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "BOM item kan niet worden gewijzigd - assemblage is vergrendeld "
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "BOM item kan niet worden gewijzigd - assemblage is vergrendeld"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Selecteer boven liggend onderdeel"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sub onderdeel"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Selecteer onderdeel dat moet worden gebruikt in BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "BOM hoeveelheid voor dit BOM item"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Dit BOM item is optioneel"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Dit BOM item is verbruikbaar (het wordt niet bijgehouden in build orders)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Totale hoeveelheid"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "Extra benodigde hoeveelheid voor een build, rekening houdend met verliezen van de setup"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Attriatie"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Geschatte uitstraling voor een gebouw, uitgedrukt in percentage (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Afronden meerdere"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Afronden met omhoog vereiste productiehoeveelheid naar dichtstbijzijnde meerdere van deze waarde"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Artikelregel referentie"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "BOM item notities"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Controle som"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "BOM lijn controle som"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Goedgekeurd"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Dit BOM item is goedgekeurd"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Wordt overgenomen"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Dit BOM item wordt overgenomen door BOMs voor variant onderdelen"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Voorraaditems voor variant onderdelen kunnen worden gebruikt voor dit BOM artikel"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Hoeveelheid moet een geheel getal zijn voor trackable onderdelen"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Onderdeel moet gespecificeerd worden"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "BOM Item vervangingen bewerken"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Vervanging onderdeel kan niet hetzelfde zijn als het hoofddeel"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Bovenliggend BOM item"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Vervanging onderdeel"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Eerste deel"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Tweede deel"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Selecteer gerelateerd onderdeel"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Opmerking voor deze relatie"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Onderdeel relatie kan niet worden gecreëerd tussen een deel en zichzelf"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Dubbele relatie bestaat al"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Bovenliggende categorie"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Bovenliggende onderdeel categorie"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Subcategorieën"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Resultaten"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Aantal resultaten opgenomen ten opzichte van deze template"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Inkooporder voor dit voorraadartikel"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Bestand is geen afbeelding"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Oorspronkelijk onderdeel"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Selecteer origineel onderdeel om te dupliceren"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Afbeelding kopiëren"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Copy BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Kopieer materiaal van het oorspronkelijke deel"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Parameter data kopiëren van het originele onderdeel"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Notities kopiëren"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Kopieer notities van het originele deel"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Tests kopiëren"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Test sjablonen kopiëren van het originele deel"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Eerste voorraad hoeveelheid"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Specificeer de initiële voorraad hoeveelheid voor dit onderdeel. Als het aantal nul is, wordt er geen voorraad toegevoegd."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Eerste voorraad locatie"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Specificeer locatie van de eerste voorraad voor dit onderdeel"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecteer leverancier (of laat leeg om niets in te vullen)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecteer fabrikant (of laat leeg om niets in te vullen)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Fabrikant artikel nummer"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Geselecteerde onderneming is geen geldige leverancier"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Geselecteerde bedrijf is geen geldige fabrikant"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Fabrikant deel dat overeenkomt met deze MPN bestaat al"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Leveranciersdeel dat overeenkomt met deze SKU bestaat al"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Categorie naam"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Bouwen"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Hoeveelheid van dit deel dat momenteel in productie is"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Er zal een onuitputtelijke hoeveelheid van dit deel worden gebouwd"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Voorraadartikelen"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Revisies"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Totale Voorraad"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Niet toegewezen voorraad"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Variant voorraad"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Dupliceer onderdeel"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Kopieer eerste gegevens uit een ander onderdeel"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Eerste voorraad"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Maak onderdeel met eerste voorraad"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Leveranciersgegevens"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Aanvankelijke leveranciersinformatie voor dit deel toevoegen"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Categorie parameters kopiëren"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Parameter sjablonen kopiëren uit geselecteerde onderdeel categorie"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Bestaande afbeelding"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Bestandsnaam van een bestaande onderdeel afbeelding"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Afbeeldingsbestand bestaat niet"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Valideer de gehele materiaalbon"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Kan bouwen"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Vereist voor bouworders"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Toegewezen aan bouwen van orders"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Vereist voor verkooporders"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Toegewezen aan verkooporders"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr "IPN onderdeel"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr "Onderdeel omschrijving"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr "Rapport Maken"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minimale prijs"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Overschrijf berekende waarde voor minimale prijs"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Minimale prijs valuta"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Maximale prijs"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Overschrijf de berekende waarde voor de maximale prijs"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Maximale prijs valuta"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Bijwerken"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Prijzen voor dit onderdeel bijwerken"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Kan niet converteren van de verstrekte valuta naar {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimumprijs mag niet hoger zijn dan de maximale prijs"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Maximale prijs mag niet lager zijn dan de minimale prijs"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Selecteer de bovenliggende assemblage"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Selecteer het onderdeel"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Selecteer onderdeel om BOM van te kopiëren"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Bestaande gegevens verwijderen"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Verwijder bestaande BOM items voor het kopiëren"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Inclusief overgenomen"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inclusief stuklijst BOM items die worden overgenomen van getemplated onderdelen"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Ongeldige regels overslaan"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Schakel deze optie in om ongeldige rijen over te slaan"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Verwijder vervangend deel"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopieer vervangende onderdelen bij dubbele stuklijst BOM items"
@@ -7759,7 +7771,7 @@ msgstr "Pakket plug-in"
msgid "Plugin"
msgstr "Plug-in"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Geen auteur gevonden"
@@ -8289,7 +8301,7 @@ msgstr "Rapport voorraadcontrole"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Geïnstalleerde items"
@@ -8362,7 +8374,7 @@ msgstr "Filter op topniveau locaties"
msgid "Include sub-locations in filtered results"
msgstr "Inclusief sublocaties in gefilterde resultaten"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Bovenliggende locatie"
@@ -8446,7 +8458,7 @@ msgstr "Vervaldatum voor"
msgid "Expiry date after"
msgstr "Vervaldatum na"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Verouderd"
@@ -8531,7 +8543,7 @@ msgstr "Standaardpictogram voor alle locaties waarvoor geen pictogram is ingeste
msgid "Stock Location"
msgstr "Voorraadlocatie"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Voorraadlocaties"
@@ -8580,7 +8592,7 @@ msgstr "Onderdeel moet gespecificeerd worden"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Voorraaditems kunnen niet worden geplaatst in structurele voorraadlocaties!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Voorraadartikel kan niet worden aangemaakt voor virtuele onderdelen"
@@ -8625,7 +8637,7 @@ msgstr "Selecteer een leveranciersdeel voor dit voorraadartikel"
msgid "Where is this stock item located?"
msgstr "Waar bevindt zich dit voorraaditem?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Het verpakken van dit voorraaditem is opgeslagen in"
@@ -8641,7 +8653,7 @@ msgstr "Is dit item geïnstalleerd in een ander item?"
msgid "Serial number for this item"
msgstr "Serienummer van dit item"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Batch code voor dit voorraaditem"
@@ -8754,7 +8766,7 @@ msgstr "Voorraad item is momenteel in productie"
msgid "Serialized stock cannot be merged"
msgstr "Geserialiseerde voorraad kan niet worden samengevoegd"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Dupliceer voorraadartikelen"
@@ -8878,7 +8890,7 @@ msgstr "Selecteer onderdeel voor het genereren van het serienummer voor"
msgid "Quantity of serial numbers to generate"
msgstr "Aantal serienummers om te genereren"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Test template voor dit resultaat"
@@ -8902,222 +8914,222 @@ msgstr "Bovenliggend Item"
msgid "Parent stock item"
msgstr "Bovenliggende voorraad item"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Gebruik pakketgrootte bij het toevoegen: de hoeveelheid gedefinieerd is het aantal pakketten"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "Gebruik pakketgrootte"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Voer serienummers voor nieuwe items in"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Leverancier artikelnummer"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Verlopen"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Onderliggende items"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Items volgen"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Inkoopprijs van dit voorraadartikel, per eenheid of pakket"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Aantal voorraaditems om serienummers voor te maken"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "Geen voorraad item opgegeven"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Locatie van bestemming"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Serienummers kunnen niet worden toegewezen aan dit deel"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Serienummers bestaan al"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Selecteer voorraaditem om te installeren"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Te installeren hoeveelheid"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Voer de te installeren hoeveelheid items in"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Transactienotitie toevoegen (optioneel)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Te installeren hoeveelheid moet minimaal 1 zijn"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Voorraadartikel is niet beschikbaar"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Het geselecteerde deel zit niet in de materialen lijst"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "De te installeren hoeveelheid mag niet groter zijn dan de beschikbare hoeveelheid"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Bestemmingslocatie voor verwijderd item"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Selecteer onderdeel om voorraaditem om te zetten in"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Het geselecteerde deel is geen geldige optie voor de omzetting"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Kan voorraadartikel niet converteren met toegewezen leverancier deel"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Voorraad status code"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Selecteer voorraadartikelen om status te wijzigen"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Geen voorraaditems geselecteerd"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sublocaties"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Bovenliggende voorraad locatie"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Onderdeel moet verkoopbaar zijn"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Artikel is toegewezen aan een verkooporder"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Artikel is toegewezen aan een productieorder"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Klant om voorraadartikelen toe te wijzen"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Geselecteerde bedrijf is geen klant"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Voorraad toewijzing notities"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Een lijst met voorraad artikelen moet worden opgegeven"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Voorraad samenvoegen notities"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Niet overeen komende leveranciers toestaan"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Toestaan dat voorraadartikelen met verschillende leveranciers onderdelen worden samengevoegd"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Sta onjuiste status toe"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Toestaan dat voorraadartikelen met verschillende statuscodes worden samengevoegd"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Er moeten ten minste twee voorraadartikelen worden opgegeven"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Geen wijziging"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Voorraaditem primaire sleutel waarde"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Voorraad artikel is niet op voorraad"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "Voorraad artikel is al in voorraad"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "Hoeveelheid mag niet negatief zijn"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Voorraad transactie notities"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "Samenvoegen in bestaande voorraad"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "Voeg indien mogelijk geretourneerde items samen in bestaande voorraad"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Volgend serienummer"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Vorig serienummer"
@@ -9583,115 +9595,119 @@ msgstr "Primaire groep"
msgid "Primary group for the user"
msgstr "Primaire groep van de gebruiker"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Administrator"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Inkooporders"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Verkooporders"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Retour orders"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Gebruikersnaam"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Voornaam :"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Voornaam van de gebruiker"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Achternaam"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Achternaam van de gebruiker"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "E-mailadres van de gebruiker"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Administrator "
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Is deze gebruiker een administrator "
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Is dit gebruikersaccount actief"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Enkel een supergebruiker kan dit veld aanpassen"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Wachtwoord"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Wachtwoord voor de gebruiker"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Overschrijf waarschuwing"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Overschrijf de waarschuwing over wachtwoord regels"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "U hebt geen toestemming om gebruikers aan te maken"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Je account is aangemaakt."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Gebruik de wachtwoordreset functie om in te loggen"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Welkom bij InvenTree"
diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po
index d4101780da..0985597cb6 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -104,13 +104,13 @@ msgstr "Oppgi dato"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notater"
@@ -215,7 +215,7 @@ msgstr "Angitt URL er ikke en gyldig bildefil"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-post"
@@ -269,7 +269,7 @@ msgstr "Ugyldig valg"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "En feil har blitt logget av serveren."
msgid "Image"
msgstr "Bilde"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Må være et gyldig tall"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Velg valuta ut fra tilgjengelige alternativer"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Ugyldig verdi"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Eksternt bilde"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URLtil ekstern bildefil"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Kinesisk (forenklet)"
msgid "Chinese (Traditional)"
msgstr "Kinesisk (tradisjonell)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Ordrestatus"
msgid "Parent Build"
msgstr "Overordnet produksjon"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Del"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategori"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Produksjonen må avbrytes før den kan slettes"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Forbruksvare"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Valgfritt"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Sammenstilling"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Spores"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Tildelt"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tilgjengelig"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "I bestilling"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Produksjonsordre"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Plassering"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Produksjonsordrer"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Produksjonsordre-referanse"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Salgsordrereferanse"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Kildeplassering"
@@ -861,16 +861,16 @@ msgstr "Produksjonsstatus"
msgid "Build status code"
msgstr "Produksjonsstatuskode"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Batchkode"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Batchkode for denne produksjonsartikkelen"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Opprettelsesdato"
@@ -907,120 +907,120 @@ msgstr "Utstedt av"
msgid "User who issued this build order"
msgstr "Brukeren som utstedte denne produksjonsordren"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Ansvarlig"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Bruker eller gruppe ansvarlig for produksjonsordren"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Ekstern lenke"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Lenke til ekstern URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Produksjonsprioritet"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Produksjonsordrens prioritet"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Prosjektkode"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Prosjektkode for denne produksjonsordren"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Kunne ikke delegere bort oppgaven for å fullføre tildelinger"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Produksjonsordre {build} er fullført"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "En produksjonsordre er fullført"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Serienumre må angis for sporbare deler"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Ingen produksjonsartikkel spesifisert"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Produksjonsartikkelen er allerede fullført"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Kvantitet kan ikke være større enn utgangsantallet"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Produksjonsartikkel"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Produksjonsobjekt"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Produksjonsobjekt"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Antall"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Påkrevd antall for produksjonsordre"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Valgt lagervare samsvarer ikke med BOM-linjen"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Mengden må være 1 for serialisert lagervare"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Lagervaren er overtildelt"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Lagervare"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Kildelagervare"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Lagerantall å tildele til produksjonen"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Monteres i"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Lagervare for montering"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Delnavn"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Produksjonsartikkel"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Produksjonsartikkel samsvarer ikke med overordnet produksjon"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Resultatdel samsvarer ikke med produksjonsordredel"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Denne produksjonsartikkelen er allerede fullført"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Denne produksjonsartikkelen er ikke fullt tildelt"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Angi antall for produksjonsartikkel"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Heltallsverdi kreves for sporbare deler"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Serienummer"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Angi serienummer for produksjonsartikler"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Lagerplassering for produksjonsartikkel"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Automatisk tildeling av serienummer"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Følgende serienummer finnes allerede eller er ugyldige"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "En liste over produksjonsartikler må oppgis"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Lagerplassering for skrotede produksjonsartikler"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Forkast tildelinger"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Forkast tildelinger fra skrotede produksjonsartikler"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Grunn for skroting av produksjonsartikler"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Plassering for ferdige produksjonsartikler"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Godta ufullstendig tildeling"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Fullfør artikler dersom lagerbeholdning ikke er fullt tildelt"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Bruk tildelt lagerbeholdning"
-#: build/serializers.py:691
+#: 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:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Fjern ufullstendige artikler"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Ikke tillatt"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Godta som brukt av denne produksjonsordren"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Fjern tildeling før produksjonsordren fullføres"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Overtildelt lagerbeholdning"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Noen lagervarer har blitt overtildelt"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Godta ikke tildelt"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Nøvendig lagerbeholdning er ikke fullt tildelt"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Godta uferdig"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Nødvendig produksjonsmengde er ikke nådd"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Produksjonsordren har uferdige artikler"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Produksjonslinje"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Produksjonsartikkel"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Produksjonsartikkel må peke til samme produksjon"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Produksjonsartikkel"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Artikkelen må være på lager"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Tilgjengelig antall ({q}) overskredet"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Produksjonsartikkel kan ikke spesifiseres for tildeling av usporede deler"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Tildelingsartikler må oppgis"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Eksluderer plassering"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Ekskluder lagervarer fra denne valgte plasseringen"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Utskiftbar lagerbeholdning"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Lagervarer ved flere plasseringer kan brukes om hverandre"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Erstatning-lagerbeholdning"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Tilatt tildelling av erstatningsdeler"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Valgfrie artikler"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Tildel valgfrie BOM-artikler til produksjonsordre"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "BOM-referanse"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Leverandørdel"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Tildelt antall"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Produksjonsreferanse"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Delkategorinavn"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Sporbar"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Nedarvet"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Tillat Varianter"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "BOM-artikkel"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "I produksjon"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Ekstern lagerbeholdning"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Tilgjengelig lagerbeholdning"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Tilgjengelige erstatningsvarer"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Tilgjengelige variantvarer"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Kansellert"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Forfalt produksjonsordre"
msgid "Build order {bo} is now overdue"
msgstr "Produksjonsordre {bo} er nå forfalt"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Er lenke"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Er fil"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget"
@@ -1550,7 +1550,7 @@ msgstr "Ingen gyldige valutakoder angitt"
msgid "No plugin"
msgstr "Ingen programtillegg"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Etikett for prosjektkode"
@@ -1617,7 +1617,7 @@ msgstr "Nøkkelstreng må være unik"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Bruker"
msgid "Price break quantity"
msgstr "Antall for prisbrudd"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Pris"
@@ -1652,7 +1652,7 @@ msgstr "Navn for webhooken"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1849,7 +1849,7 @@ msgstr "Filstørrelse"
msgid "File size in bytes"
msgstr "Filstørrelse i byte"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Ugyldig modelltype spesifisert for vedlegg"
@@ -2058,7 +2058,7 @@ msgstr "Sjekkboksparameter kan ikke ha enheter"
msgid "Checkbox parameters cannot have choices"
msgstr "Sjekkboksparameter kan ikke ha valg"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Valg må være unike"
@@ -2094,7 +2094,7 @@ msgstr "Sjekkboks"
msgid "Is this parameter a checkbox?"
msgstr "Er dette parameteret en sjekkboks?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Valg"
@@ -2106,7 +2106,7 @@ msgstr "Gyldige valg for denne parameteren (kommaseparert)"
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Aktivert"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Ugyldig valg for parameterverdi"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Mal"
@@ -2148,7 +2148,7 @@ msgstr "Mal"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr "Parameterverdi"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Notat"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Valgfritt notatfelt"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Kjører"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Ventende oppgaver"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Planlagte oppgaver"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Mislykkede oppgaver"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Oppgave-ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Unik oppgave-ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Lås"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Låsetidspunkt"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Oppgavenavn"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funksjon"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Funksjonsnavn"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumenter"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Oppgaveargumenter"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Nøkkelordargumenter"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Nøkkelordargumenter for oppgave"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Filnavn"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Modelltype"
-#: common/serializers.py:790
+#: common/serializers.py:799
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"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr "Deler er maler som standard"
msgid "Parts can be assembled from other components by default"
msgstr "Deler kan settes sammen fra andre komponenter som standard"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponent"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Motta feilrapporter"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Motta varsler om systemfeil"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr ""
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr "Delen er aktiv"
msgid "Manufacturer is Active"
msgstr "Leverandør er aktiv"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Leverandørdel er aktiv"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Intern del er aktiv"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Leverandør er aktiv"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Produsent"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Firma"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr "Fraktnotater for internt bruk"
msgid "Link to address information (external)"
msgstr "Lenke til adresseinformasjon (ekstern)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Produsentdeler"
@@ -4213,12 +4221,12 @@ msgstr "Velg del"
msgid "Select manufacturer"
msgstr "Velg produsent"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Produsentens varenummer"
@@ -4242,8 +4250,8 @@ msgstr "Pakkeenhet må være mer enn null"
msgid "Linked manufacturer part must reference the same base part"
msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Leverandør"
msgid "Select supplier"
msgstr "Velg leverandør"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Leverandørens lagerbeholdningsenhet"
@@ -4282,16 +4290,16 @@ msgstr "URL for ekstern leverandørdel-lenke"
msgid "Supplier part description"
msgstr "Leverandørens delbeskrivelse"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "grunnkostnad"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimum betaling (f.eks. lageravgift)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Emballasje"
@@ -4307,7 +4315,7 @@ msgstr "Pakkeantall"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "flere"
@@ -4339,14 +4347,18 @@ msgstr "Standardvaluta brukt for denne leverandøren"
msgid "Company Name"
msgstr "Bedriftsnavn"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "På lager"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Gyldig"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Ordre"
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Intern del"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Måldato"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Ordrereferanse"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Mottatt"
msgid "Number of items received"
msgstr "Antall enheter mottatt"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Innkjøpspris"
@@ -5211,8 +5223,8 @@ msgstr "Sjekket Av"
msgid "User who checked this shipment"
msgstr "Brukeren som sjekket forsendelsen"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Forsendelse"
@@ -5277,7 +5289,7 @@ msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning"
msgid "Allocation quantity must be greater than zero"
msgstr "Tildelingsantall må være større enn null"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Antall må være 1 for serialisert lagervare"
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopier parametere"
@@ -5412,216 +5424,216 @@ msgstr "Linjeelementer"
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Leverandørnavn"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Ordren kan ikke kanselleres"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Tillat ordre å lukkes med ufullstendige linjeelementer"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Ordren har ufullstendige linjeelementer"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Ordren er ikke åpen"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Innkjøpsvaluta"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU-kode"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Internt delnummer"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Leverandørdel må angis"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Innkjøpsordre må angis"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Leverandør må samsvare med innkjøpsordre"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Innkjøpsordre må samsvare med leverandør"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Ordrelinje"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Velg lagerplassering for mottatte enheter"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Angi batchkode for innkommende lagervarer"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Utløpsdato"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Angi serienummer for innkommende lagervarer"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Strekkode"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Skannet strekkode"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Strekkode allerede i bruk"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Linjeelementer må være oppgitt"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Målplassering må angis"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Angitte strekkodeverdier må være unike"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Fullførte forsendelser"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Valuta for salgspris"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Ingen forsendelsesopplysninger oppgitt"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Linjeelement er ikke knyttet til denne ordren"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Mengden må være positiv"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Skriv inn serienummer for å tildele"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Forsendelsen er allerede sendt"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Forsendelsen er ikke knyttet til denne ordren"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Ingen treff funnet for følgende serienummer"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Returordrelinje"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Linjeelementet samsvarer ikke med returordre"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Linjeelementet er allerede mottatt"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Valuta for linje"
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Delkategori"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Delkategorier"
@@ -5837,7 +5849,7 @@ msgstr "Standard nøkkelord for deler i denne kategorien"
msgid "Icon"
msgstr "Ikon"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikon (valgfritt)"
@@ -5858,7 +5870,7 @@ msgstr "Standardverdi"
msgid "Default Parameter Value"
msgstr "Standard Parameterverdi"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Deler"
@@ -5973,7 +5985,7 @@ msgstr "Del-nøkkelord for å øke synligheten i søkeresultater"
msgid "Part category"
msgstr "Delkategori"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr "Standard utløp"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Utløpstid (i dager) for lagervarer av denne delen"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimal lagerbeholdning"
@@ -6086,756 +6098,756 @@ msgstr "Opprettingsbruker"
msgid "Owner responsible for this part"
msgstr "Eier ansvarlig for denne delen"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Selg flere"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Valuta som brukes til å bufre prisberegninger"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimal BOM-kostnad"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Minste kostnad for komponentdeler"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maksimal BOM-kostnad"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Maksimal kostnad for komponentdeler"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimal innkjøpskostnad"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Minimal historisk innkjøpskostnad"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maksimal innkjøpskostnad"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Maksimal historisk innkjøpskostnad"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimal intern pris"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Minimal kostnad basert på interne prisbrudd"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maksimal intern pris"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Maksimal kostnad basert på interne prisbrudd"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimal leverandørpris"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Minimumspris for del fra eksterne leverandører"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maksimal leverandørpris"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Maksimalpris for del fra eksterne leverandører"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimal Variantkostnad"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Beregnet minimal kostnad for variantdeler"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maksimal Variantkostnad"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Beregnet maksimal kostnad for variantdeler"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimal kostnad"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Overstyr minstekostnad"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maksimal kostnad"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Overstyr maksimal kostnad"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Beregnet samlet minimal kostnad"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Beregnet samlet maksimal kostnad"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimal salgspris"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Minimal salgspris basert på prisbrudd"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maksimal Salgspris"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Maksimal salgspris basert på prisbrudd"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Minimal Salgskostnad"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Minimal historisk salgspris"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maksimal Salgskostnad"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Maksimal historisk salgspris"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Del for varetelling"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Antall"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Dato"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Dato for utført lagertelling"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimal lagerkostnad"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Estimert minimal kostnad for lagerbeholdning"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maksimal lagerkostnad"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Estimert maksimal kostnad for lagerbeholdning"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Testnavn"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Angi et navn for testen"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Testbeskrivelse"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Legg inn beskrivelse for denne testen"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Påkrevd"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Er det påkrevd at denne testen bestås?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Krever verdi"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Krever vedlegg"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Velg overordnet del"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Underordnet del"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Velg del som skal brukes i BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "BOM-antall for denne BOM-artikkelen"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Denne BOM-artikkelen er valgfri"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "BOM-artikkelreferanse"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "BOM-artikkelnotater"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Kontrollsum"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "BOM-linje kontrollsum"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Godkjent"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Denne BOM-artikkelen er godkjent"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Arves"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler"
-#: part/models.py:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Antall må være heltallsverdi for sporbare deler"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Underordnet del må angis"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "BOM-artikkel erstatning"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Erstatningsdel kan ikke være samme som hoveddelen"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Overordnet BOM-artikkel"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Erstatningsdel"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Del 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Del 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Velg relatert del"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
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:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Duplikatforhold eksisterer allerede"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Underkategorier"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Innkjøpsvaluta for lagervaren"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Original Del"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Velg original del å duplisere"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopier Bilde"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Kopier bilde fra originaldel"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Kopier Stykkliste"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Kopier stykkliste fra original del"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Kopier parameterdata fra originaldel"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Kopier notater"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Kopier notater fra originaldel"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:448
+#: part/serializers.py:451
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:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Innledende lagerplassering"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Angi initiell lagerplasering for denne delen"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Velg leverandør (eller la stå tom for å hoppe over)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Velg produsent (eller la stå tom for å hoppe over)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Produsentens delenummer"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Valgt firma er ikke en gyldig leverandør"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Valgt firma er ikke en gyldig produsent"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Produsentdel som matcher dette MPN-et, finnes allerede"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategorinavn"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Produseres"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Lagervarer"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Total lagerbeholdning"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Dupliser del"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Kopier innledende data fra en annen del"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Lag en del med innledende lagermengde"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Leverandøropplysninger"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Legg til innledende leverandørinformasjon for denne delen"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kopier kategoriparametre"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Kopier parametermaler fra valgt delkategori"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Eksisterende bilde"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Filnavn for et eksisterende del-bilde"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Bildefilen finnes ikke"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Godkjenn hele Stykklisten"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Kan Produsere"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minstepris"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Overstyr beregnet verdi for minimumspris"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Valuta for minstepris"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Makspris"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Overstyr beregnet verdi for maksimal pris"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Valuta for maksimal pris"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Oppdater"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Oppdater priser for denne delen"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, 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:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Minsteprisen kan ikke være større enn maksimal pris"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimal pris kan ikke være mindre enn minstepris"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Velg del å kopiere BOM fra"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Fjern eksisterende data"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Fjern eksisterende BOM-artikler før kopiering"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Inkluder arvede"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inkluder BOM-artikler som er arvet fra maldeler"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Hopp over ugyldige rader"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Kopier erstatningsdeler"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres"
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Utvidelse"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Ingen forfatter funnet"
@@ -8288,7 +8300,7 @@ msgstr "Testrapport for lagervare"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Installerte artikler"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr "Utløpsdato før"
msgid "Expiry date after"
msgstr "Utløpsdato etter"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Foreldet"
@@ -8530,7 +8542,7 @@ msgstr "Standard ikom for alle plasseringer som ikke har satt et ikon (valgfritt
msgid "Stock Location"
msgstr "Lagerplassering"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Lagerplasseringer"
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Lagervarer kan ikke plasseres i strukturelle plasseringer!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Lagervare kan ikke opprettes for virtuelle deler"
@@ -8624,7 +8636,7 @@ msgstr "Velg en tilsvarende leverandørdel for denne lagervaren"
msgid "Where is this stock item located?"
msgstr "Hvor er denne lagervaren plassert?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Inpakningen denne lagervaren er lagret i"
@@ -8640,7 +8652,7 @@ msgstr "Er denne artikkelen montert i en annen artikkel?"
msgid "Serial number for this item"
msgstr "Serienummer for denne artikkelen"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Batchkode for denne lagervaren"
@@ -8753,7 +8765,7 @@ msgstr "Lagervare er for tiden i produksjon"
msgid "Serialized stock cannot be merged"
msgstr "Serialisert lagerbeholdning kan ikke slås sammen"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Duplisert lagervare"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Overodnet element"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
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:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Angi serienummer for nye artikler"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Leverandørens delnummer"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Utløpt"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Underordnede artikler"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Innkjøpspris for denne lagervaren, per enhet eller forpakning"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Angi antall lagervarer som skal serialiseres"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Til Lagerplassering"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Serienummer kan ikke tilordnes denne delen"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Seriernummer eksisterer allerede"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Velg lagervare å montere"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Antall å installere"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Angi antallet elementer som skal installeres"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Legg til transaksjonsnotat (valgfritt)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Antall å installere må være minst 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Lagervaren er utilgjengelig"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Valgt del er ikke i stykklisten"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Antall å installere må ikke overskride tilgjengelig antall"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Lagerplassering for den avinstallerte artikkelen"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Velg del å konvertere lagervare til"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Valgt del er ikke et gyldig alternativ for konvertering"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Kan ikke konvertere lagerprodukt med tildelt leverandørdel"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Lagervare statuskode"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Velg lagervarer for å endre status"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Ingen lagervarer valgt"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Underplasseringer"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Delen må være salgbar"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Artikkelen er tildelt en salgsordre"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Artikkelen er tildelt en produksjonsordre"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Kunde å tilordne lagervarer"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Valgt firma er ikke en kunde"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Lagervare-tildelignsnotater"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "En liste av lagervarer må oppgis"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Notater om lagersammenslåing"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Tillat forskjellige leverandører"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Tillat forskjellig status"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Minst to lagervarer må oppgis"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Lagervare primærnøkkel verdi"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Lager transaksjonsnotater"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Administrator"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Innkjøpsordrer"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Salgsordre"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Returordrer"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Brukernavn"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Fornavn"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Fornavn på brukeren"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Etternavn"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Etternavn på brukeren"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "E-postadressen til brukeren"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superbruker"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Er denne brukeren en superbruker"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Er denne brukerkontoen aktiv"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Din konto er opprettet."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Vennligst bruk funksjonen for å tilbakestille passord for å logge inn"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Velkommen til InvenTree"
diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po
index 73485a7b24..e582fe8544 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -104,13 +104,13 @@ msgstr "Wprowadź dane"
msgid "Invalid decimal value"
msgstr "Niepoprawna wartość dziesiętna"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Uwagi"
@@ -215,7 +215,7 @@ msgstr "Podany adres URL nie jest poprawnym plikiem obrazu"
msgid "Log in to the app"
msgstr "Logowanie do aplikacji"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Adres E-Mail"
@@ -269,7 +269,7 @@ msgstr "Błędny wybór"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Błąd został zapisany w logach serwera."
msgid "Image"
msgstr "Obraz"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Waluta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Wybierz walutę z dostępnych opcji"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Nieprawidłowa wartość"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Obrazek zewnętrzny"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "Adres URL zdalnego pliku obrazu"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Nie udało się pobrać obrazu ze zdalnego adresu URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "chiński (uproszczony)"
msgid "Chinese (Traditional)"
msgstr "chiński (tradycyjny)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Dostępna aktualizacja"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Dostępna jest aktualizacja dla InvenTree"
@@ -561,21 +561,21 @@ msgstr "Status zamówienia"
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Obejmuje warianty"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Obejmuje warianty"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Obejmuje warianty"
msgid "Part"
msgstr "Komponent"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategoria"
@@ -665,89 +665,89 @@ msgstr "Maksymalna data"
msgid "Exclude Tree"
msgstr "Wyklucz drzewo"
-#: build/api.py:400
+#: build/api.py:414
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:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Materiał eksploatacyjny"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opcjonalne"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Złożenie"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Śledzony"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testowalne"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Zaległe zamówienie"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Przydzielono"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Dostępne"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "W Zamówieniu"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Lokalizacja"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Wyjście"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Zlecenia budowy"
@@ -783,9 +783,9 @@ msgstr "Data docelowa musi być po dacie rozpoczęcia"
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Odwołanie do zamówienia sprzedaży"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Lokalizacja źródła"
@@ -861,16 +861,16 @@ msgstr "Status budowania"
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Data utworzenia"
@@ -907,120 +907,120 @@ msgstr "Wydany przez"
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Priorytet budowy"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Priorytet tego zamówienia produkcji"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Kod projektu"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Kod projektu dla tego zlecenia produkcji"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Nie udało się wyładować zadania, aby ukończyć alokację budowli"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Kolejność kompilacji {build} została zakończona"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Kolejność kompilacji została zakończona"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Należy podać numery seryjne dla lokalizowania części"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Ilość nie może być większa niż ilość wyjściowa"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Zbuduj obiekt"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Zbuduj obiekt"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Ilość"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Wymagana ilość dla zlecenia produkcji"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Element kompilacji musi określać dane wyjściowe kompilacji, ponieważ część główna jest oznaczona jako możliwa do śledzenia"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Ilość musi wynosić 1 dla serializowanych zasobów"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Pozycja magazynowa jest nadmiernie przydzielona"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Ilość zapasów do przydzielenia do produkcji"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Poziom budowania"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nazwa komponentu"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Numer seryjny"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Automatycznie przydzielaj numery seryjne"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatycznie przydzielaj wymagane elementy z pasującymi numerami seryjnymi"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Poniższe numery seryjne już istnieją lub są nieprawidłowe"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Odrzuć przydziały"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Zaakceptuj niekompletną alokację"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Niedozwolone"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Zaakceptuj jako zużyte przez zlecenie produkcji"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Nadmierny przydział zasobów"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Zaakceptuj nieprzydzielone"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Wymagany stan nie został w pełni przypisany"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Akceptuj niekompletne"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Towar musi znajdować się w magazynie"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Dostępna ilość ({q}) przekroczona"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Wyklucz lokalizację"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Magazyn wymienny"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Zastępczy magazyn"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Przedmiot opcjonalny"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Przydziel opcjonalne elementy BOM do zbudowania zamówienia"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Odniesienie BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID części BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nazwa części BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Wersja"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Część dostawcy"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Ilość zarezerwowana"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Możliwość śledzenia"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Element BOM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "W produkcji"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Zew. zasoby magazynowe"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Dostępna ilość"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Dostępny magazyn zastępczy"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "Wstrzymane"
msgid "Cancelled"
msgstr "Anulowano"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Jest plikiem"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr "Brak wtyczki"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr "Ciąg musi być unikatowy"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Użytkownik"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Cena"
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktywny"
@@ -1849,7 +1849,7 @@ msgstr "Rozmiar pliku"
msgid "File size in bytes"
msgstr "Rozmiar pliku w bajtach"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Aktywne"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Szablon"
@@ -2148,7 +2148,7 @@ msgstr "Szablon"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Dane"
@@ -2156,18 +2156,18 @@ msgstr "Dane"
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Uwaga"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr "Nadpisz"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Jest uruchomiony"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Oczekujce zadania"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Zaplanowane zadania"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Zadania zakończone błędem"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID zadania"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Unikalny identyfikator zadania"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Blokada"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Czas blokady"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nazwa zadania"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funkcja"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nazwa funkcji"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumenty"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumenty zadania"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nazwa pliku"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Typ modelu"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Użytkownik nie ma uprawnień do tworzenia lub edytowania załączników dla tego modelu"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lista wyboru jest zablokowana"
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponent"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr "Komponent jest aktywny"
msgid "Manufacturer is Active"
msgstr "Producent jest aktywny"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Producent"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Firma"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr "Notatki wysyłkowe do użytku wewnętrznego"
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Komponent producenta"
@@ -4213,12 +4221,12 @@ msgstr "Wybierz część"
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Numer producenta komponentu"
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Dostawca"
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Opakowanie"
@@ -4307,7 +4315,7 @@ msgstr "Ilość w opakowaniu"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "wielokrotność"
@@ -4339,14 +4347,18 @@ msgstr "Domyślna waluta używana dla tego dostawcy"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Na stanie"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Ważny"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Zamówienie"
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Komponent wewnętrzny"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data docelowa"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Odniesienie zamówienia"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Odebrane"
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -5211,8 +5223,8 @@ msgstr "Sprawdzone przez"
msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Przesyłka"
@@ -5277,7 +5289,7 @@ msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopiuj parametry"
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Zamówienie nie może zostać anulowane"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Zlecenie zakupu musi być określone"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Dostawca musi być zgodny ze zleceniem zakupu"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Zlecenie zakupu musi być zgodne z dostawcą"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Data ważności"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Kod kreskowy"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Kategoria komponentu"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Kategorie części"
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr "Wartość domyślna"
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Części"
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr "Domyślne wygasanie"
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
@@ -6086,756 +6098,756 @@ msgstr "Tworzenie użytkownika"
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Data"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Zatwierdzone"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Podkategorie"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Waluta zakupu tego towaru"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopiuj obraz"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Towary"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Duplikuj część"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Usuń istniejące dane"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Pomiń nieprawidłowe wiersze"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Wtyczka"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Nie znaleziono autora"
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Zainstalowane elementy"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Lokacje stanu magazynowego"
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr "Wybierz pasującą część dostawcy dla tego towaru"
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Element nadrzędny"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Termin minął"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Elementy podrzędne"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Podlokalizacje"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Część musi być dostępna do sprzedaży"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr "Zlecenia zakupu"
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr "Zlecenia zakupu"
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Czy to konto użytkownika jest aktywne"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Twoje konto zostało utworzone."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Zresetuj hasło"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Witamy w InvenTree"
diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po
index b32ef565ca..4cd778ed0e 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -104,13 +104,13 @@ msgstr "Insira uma Data"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Anotações"
@@ -215,7 +215,7 @@ msgstr "A URL fornecida não é um arquivo de imagem válido"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Email"
@@ -269,7 +269,7 @@ msgstr "Escolha inválida"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Log de erro salvo pelo servidor."
msgid "Image"
msgstr "Imagem"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Preicsa ser um numero valido"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Moeda"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Selecione a Moeda nas opções disponíveis"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Imagens Remota"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL do arquivo de imagem remoto"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Baixar imagens de URL remota não está habilitado"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Chinês (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chinês (Tradicional)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Situação do pedido"
msgid "Parent Build"
msgstr "Produção Progenitor"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Peça"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categoria"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Produção deve ser cancelada antes de ser deletada"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consumível"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Montagem"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Monitorado"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Alocado"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponível"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "No pedido"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordem de Produção"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Local"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Ordens de Produções"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Referência do pedido de produção"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referência do pedido de venda"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Local de Origem"
@@ -861,16 +861,16 @@ msgstr "Progresso da produção"
msgid "Build status code"
msgstr "Código de situação da produção"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Código de Lote"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Código do lote para esta saída de produção"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Criado em"
@@ -907,120 +907,120 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "Usuário que emitiu este pedido de produção"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsável"
-#: build/models.py:412
+#: build/models.py:420
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:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Link Externo"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link para URL externa"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Prioridade de Produção"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioridade deste pedido de produção"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Código do projeto"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Código do projeto para este pedido de produção"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Falha ao descarregar tarefa para concluir alocações de construção"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "O Pedido de produção {build} foi concluído!"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Um pedido de produção foi concluído"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nenhuma saída de produção especificada"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Saída de produção já completada"
-#: build/models.py:1022
+#: build/models.py:1030
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:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
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:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, 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:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Item da linha de Produção"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Objeto de produção"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Objeto de produção"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Quantidade"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Quantidade necessária para o pedido de produção"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Item estoque selecionado não coincide com linha da LDM"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Quantidade deve ser 1 para estoque serializado"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "O item do estoque está sobre-alocado"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Item de estoque"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Origem do item em estoque"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Quantidade do estoque para alocar à produção"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Instalar em"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Destino do Item do Estoque"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nome da Peça"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Saída da Produção"
-#: build/serializers.py:219
+#: build/serializers.py:227
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:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Esta saída de produção já foi concluída"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "A saída de produção não está completamente alocada"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Entre a quantidade da saída de produção"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Quantidade inteira necessária para peças rastreáveis"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Números de Série"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Digite os números de série para saídas de produção"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Local de estoque para a produção"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Alocar Números de Série Automaticamente"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Uma lista de saídas de produção deve ser fornecida"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Local de estoque para saídas recicladas"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Descartar alocações"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Descartar quaisquer alocações de estoque para saídas sucateadas"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Motivo para sucatear saída(s) de produção"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Local para saídas de produção concluídas"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Aceitar Alocação Incompleta"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Consumir Estoque Alocado"
-#: build/serializers.py:691
+#: 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:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Remover Saídas Incompletas"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Não permitido"
-#: build/serializers.py:726
+#: 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:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Desatribua antes de completar este pedido de produção"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Estoque sobrealocado"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Alguns itens de estoque foram sobrealocados"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Aceitar não alocados"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Estoque obrigatório não foi totalmente alocado"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Aceitar Incompleto"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Quantidade de produção requerida não foi concluída"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Pedido de produção tem saídas incompletas"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linha de produção"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Saída da Produção"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Saída de produção deve indicar a mesma produção"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Item da linha de produção"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Item deve estar em estoque"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantidade disponível ({q}) excedida"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Alocação do Item precisa ser fornecida"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Local não incluso"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Não incluir itens de estoque deste local"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Estoque permutável"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Substituir Estoque"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Permitir alocação de peças substitutas"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Itens opcionais"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Alocar itens LDM opcionais para o pedido de produção"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Fornecedor da Peça"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Quantidade Alocada"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Rastreável"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Permitir variações"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Item LDM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Em Produção"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Estoque Disponível"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Cancelado"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Pedido de produção vencido"
msgid "Build order {bo} is now overdue"
msgstr "Pedido de produção {bo} está atrasada"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "É uma Ligação"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "É um arquivo"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "O Utilizador não tem permissão para remover este anexo"
@@ -1550,7 +1550,7 @@ msgstr "Nenhum código de moeda válido foi fornecido"
msgid "No plugin"
msgstr "Sem extensão"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr "A frase senha deve ser diferenciada"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Usuario"
msgid "Price break quantity"
msgstr "Quantidade de Parcelamentos"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Preço"
@@ -1652,7 +1652,7 @@ msgstr "Nome para este webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Ativo"
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr "Parâmetros da caixa de seleção não podem ter unidades"
msgid "Checkbox parameters cannot have choices"
msgstr "Os parâmetros da caixa de seleção não podem ter escolhas"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Escolhas devem ser únicas"
@@ -2094,7 +2094,7 @@ msgstr "Caixa de seleção"
msgid "Is this parameter a checkbox?"
msgstr "Este parâmetro é uma caixa de seleção?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Escolhas"
@@ -2106,7 +2106,7 @@ msgstr "Opções válidas para este parâmetro (separadas por vírgulas)"
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Habilitado"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Escolha inválida para valor do parâmetro"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Modelo"
@@ -2148,7 +2148,7 @@ msgstr "Modelo"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Dados"
@@ -2156,18 +2156,18 @@ msgstr "Dados"
msgid "Parameter Value"
msgstr "Valor do Parâmetro"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Anotação"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Campo opcional de notas"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Executando"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Tarefas Pendentes"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Tarefas Agendadas"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Tarefas com Falhas"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID da Tarefa"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "ID Único da Tarefa"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Bloquear"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Tempo de bloqueio"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nome da tarefa"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Função"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nome da função"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumentos"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumentos da tarefa"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Argumentos de Palavra-chave"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Argumentos Palavra-chave da Tarefa"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nome do arquivo"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr "Peças são modelos por padrão"
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/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Componente"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Receber relatório de erros"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Receber notificações para erros do sistema"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Últimas máquinas de impressão utilizadas"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Salvar as últimas máquinas de impressão usadas para um usuário"
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Empresa"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr "Notas de envio para uso interno"
msgid "Link to address information (external)"
msgstr "Link para as informações do endereço (externo)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Peça do Fabricante"
@@ -4213,12 +4221,12 @@ msgstr "Selecionar peça"
msgid "Select manufacturer"
msgstr "Selecionar fabricante"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "NPF"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Número de Peça do Fabricante"
@@ -4242,8 +4250,8 @@ msgstr "Unidades de pacote deve ser maior do que zero"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Fornecedor"
msgid "Select supplier"
msgstr "Selecione o fornecedor"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Unidade de reserva de estoque fornecedor"
@@ -4282,16 +4290,16 @@ msgstr "URL do link externo da peça do fabricante"
msgid "Supplier part description"
msgstr "Descrição da peça fornecedor"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "preço base"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Taxa mínima (ex.: taxa de estoque)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Embalagem"
@@ -4307,7 +4315,7 @@ msgstr "Quantidade de embalagens"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "múltiplo"
@@ -4339,14 +4347,18 @@ msgstr "Moeda padrão utilizada para este fornecedor"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Em Estoque"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Válido"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Pedido"
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Peça Interna"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data alvo"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Referência do pedido"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Situação"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Recebido"
msgid "Number of items received"
msgstr "Número de itens recebidos"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Preço de Compra"
@@ -5211,8 +5223,8 @@ msgstr "Verificado por"
msgid "User who checked this shipment"
msgstr "Usuário que verificou esta remessa"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Remessa"
@@ -5277,7 +5289,7 @@ msgstr "A quantidade de alocação não pode exceder a quantidade em estoque"
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Quantidade deve ser 1 para item de estoque serializado"
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Copiar Parâmetros"
@@ -5412,216 +5424,216 @@ msgstr "Itens de linha"
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Nome do Fornecedor"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Pedido não pode ser cancelado"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
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:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "O pedido tem itens da linha incompletos"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "O pedido não está aberto"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Moeda de preço de compra"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Código (SKU)"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Numero interno do produto"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "A peça do fornecedor deve ser especificada"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "O pedido de compra deve ser especificado"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "O fornecedor deve corresponder o pedido de compra"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Pedido de compra deve corresponder ao fornecedor"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Itens de linha"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Selecione o local de destino para os itens recebidos"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Digite o código do lote para itens de estoque recebidos"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Data de validade"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Digite o número de série para itens de estoque recebidos"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Código de barras"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Código de barras lido"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Código de barras já em uso"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Itens de linha deve ser providenciados"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Loca de destino deve ser especificado"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Código de barras fornecido deve ser único"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Envios concluídos"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Moeda de preço de venda"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Nenhum detalhe da remessa fornecido"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Item de linha não está associado a este pedido"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Quantidade deve ser positiva"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Digite números de série para alocar"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "O pedido já foi enviado"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "O envio não está associado a este pedido"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
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:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Devolver item do pedido"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Item do pedido não bate com o pedido de devolução"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Item do pedido já foi recebido"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Tipo de moeda para o item do pedido"
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Categoria da Peça"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Categorias de Peça"
@@ -5837,7 +5849,7 @@ msgstr "Palavras-chave padrão para peças nesta categoria"
msgid "Icon"
msgstr "Ícone"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ícone (opcional)"
@@ -5858,7 +5870,7 @@ msgstr "Valor Padrão"
msgid "Default Parameter Value"
msgstr "Valor Padrão do Parâmetro"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Peças"
@@ -5973,7 +5985,7 @@ msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa"
msgid "Part category"
msgstr "Categoria da Peça"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr "Validade Padrão"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Estoque Mínimo"
@@ -6086,756 +6098,756 @@ msgstr "Criação de Usuário"
msgid "Owner responsible for this part"
msgstr "Proprietário responsável por esta peça"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Venda múltipla"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Moeda usada para armazenar os cálculos de preços"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Custo Mínimo da LDM"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Custo mínimo das peças componentes"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Custo Máximo da LDM"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Custo máximo das peças componentes"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Custo Mínimo de Compra"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Custo mínimo histórico de compra"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Custo Máximo de Compra"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Custo máximo histórico de compra"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Preço Interno Mínimo"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Custo mínimo baseado nos intervalos de preço internos"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Preço Interno Máximo"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Custo máximo baseado nos intervalos de preço internos"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Preço Mínimo do Fornecedor"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Preço mínimo da peça de fornecedores externos"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Preço Máximo do Fornecedor"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Preço máximo da peça de fornecedores externos"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Custo Mínimo variável"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Custo mínimo calculado das peças variáveis"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Custo Máximo Variável"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Custo máximo calculado das peças variáveis"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Custo Mínimo"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Sobrepor o custo mínimo"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Custo Máximo"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Sobrepor o custo máximo"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Custo total mínimo calculado"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Custo total máximo calculado"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Preço Mínimo de Venda"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Preço mínimo de venda baseado nos intervalos de preço"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Preço Máximo de Venda"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Preço máximo de venda baseado nos intervalos de preço"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Custo Mínimo de Venda"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Preço histórico mínimo de venda"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Custo Máximo de Venda"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Preço histórico máximo de venda"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Peça para Balanço"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Total de Itens"
-#: part/models.py:3468
+#: part/models.py:3477
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:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Estoque total disponível no momento do balanço"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Data"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Data de realização do balanço"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Custo Mínimo de Estoque"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Custo mínimo estimado de estoque disponível"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Custo Máximo de Estoque"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Custo máximo estimado de estoque disponível"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Nome de Teste"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Insira um nome para o teste"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Descrição do Teste"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Digite a descrição para este teste"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Este teste é obrigatório passar?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Requer Valor"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Anexo obrigatório"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Selecione a Peça Parental"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sub peça"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Selecionar peça a ser usada na LDM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Quantidade de LDM para este item LDM"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Este item LDM é opcional"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Referência do Item LDM"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Notas do Item LDM"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Soma de verificação"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Soma de Verificação da LDM da linha"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Validado"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "O item da LDM foi validado"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Obtém herdados"
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Quantidade deve ser valor inteiro para peças rastreáveis"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Sub peça deve ser especificada"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Substituir Item da LDM"
-#: part/models.py:4364
+#: part/models.py:4378
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:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Item LDM Parental"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Substituir peça"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Selecionar Peça Relacionada"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
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:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Relação duplicada já existe"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Categoria de peça pai"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Sub-categorias"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Moeda de compra deste item de estoque"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Peça Original"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Selecione a peça original para duplicar"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Copiar imagem"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Copiar LDM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Copiar lista de materiais da peça original"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Copiar dados do parâmetro da peça original"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Quantidade Inicial de Estoque"
-#: part/serializers.py:448
+#: part/serializers.py:451
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:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Local Inicial do Estoque"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Especifique o local do estoque inicial para esta Peça"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecione o fornecedor (ou deixe em branco para pular)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecione fabricante (ou deixe em branco para pular)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Número de Peça do Fabricante"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "A empresa selecionada não é um fornecedor válido"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "A empresa selecionada não é um fabricante válido"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "A peça do fabricante que corresponde a essa MPN já existe"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "A peça do fornecedor que corresponde a essa SKU já existe"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Nome da Categoria"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Produzindo"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Itens de Estoque"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Estoque Total"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Peça duplicada"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Copiar dados iniciais de outra peça"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Estoque inicial"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Criar peça com a quantidade inicial de estoque"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Informações do Fornecedor"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Adicionar informação inicial de fornecedor para esta peça"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Copiar Parâmetros da Categoria"
-#: part/serializers.py:966
+#: part/serializers.py:993
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:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Imagem Existente"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Nome de arquivo de uma imagem de peça existente"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "A imagem não existe"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Validar a Lista de Materiais completa"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Pode Produzir"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Preço Mínimo"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Sobrepor valor calculado para preço mínimo"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Moeda do preço mínimo"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Preço Máximo"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Sobrepor valor calculado para preço máximo"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Moeda do preço máximo"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Atualizar"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Atualizar preços desta peça"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, 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:1528
+#: part/serializers.py:1560
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:1531
+#: part/serializers.py:1563
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:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Selecionar peça para copiar a LDM"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Remover Dado Existente"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Remova itens LDM existentes antes de copiar"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Incluir Herdados"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
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:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Pular Linhas inválidas"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Habilitar esta opção para pular linhas inválidas"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Copiar Peças Substitutas"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copiar peças de substitutas quando duplicar itens de LDM"
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Extensões"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Nenhum autor encontrado"
@@ -8288,7 +8300,7 @@ msgstr "Relatório Teste do Item em Estoque"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Itens instalados"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr "Data de validade antes"
msgid "Expiry date after"
msgstr "Data de validade depois"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Inativo"
@@ -8530,7 +8542,7 @@ msgstr "Ícone padrão para todos os locais que não tem um ícone (opcional)"
msgid "Stock Location"
msgstr "Localização do estoque"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Locais de estoque"
@@ -8579,7 +8591,7 @@ msgstr ""
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:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Item de estoque não pode ser criado para peças virtuais"
@@ -8624,7 +8636,7 @@ msgstr "Selecione uma peça do fornecedor correspondente para este item de estoq
msgid "Where is this stock item located?"
msgstr "Onde está localizado este item de estoque?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Embalagem deste item de estoque está armazenado em"
@@ -8640,7 +8652,7 @@ msgstr "Este item está instalado em outro item?"
msgid "Serial number for this item"
msgstr "Número de série para este item"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Código do lote para este item de estoque"
@@ -8753,7 +8765,7 @@ msgstr "Item no estoque está em produção no momento"
msgid "Serialized stock cannot be merged"
msgstr "Itens de série não podem ser mesclados"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Item de estoque duplicado"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Item Primário"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
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:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Inserir número de série para novos itens"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Expirado"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Itens Filhos"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
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:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Insira o número de itens de estoque para serializar"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Local de destino do estoque"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
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:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Números de série já existem"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Selecione o item de estoque para instalar"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Quantidade a Instalar"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Insira a quantidade de itens a instalar"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Adicionar nota de transação (opcional)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "A quantidade para instalar deve ser pelo menos 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Item de estoque indisponível"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Peça selecionada não está na Lista de Materiais"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Quantidade a instalar não deve exceder a quantidade disponível"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Local de destino para o item desinstalado"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Selecione peça para converter o item de estoque em"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
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:972
+#: stock/serializers.py:986
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:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Código de estado do item estoque"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Selecionar itens de estoque para mudar estados"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Nenhum item de estoque selecionado"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Sub-locais"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Parte deve ser comercializável"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Item é alocado para um pedido de venda"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Item está alocado a um pedido de produção"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Cliente para atribuir itens de estoque"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "A empresa selecionada não é um cliente"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Nodas atribuídas a estoque"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Uma lista de item de estoque deve ser providenciada"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Notas de fusão de estoque"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Permitir fornecedores divergentes"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
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:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Permitir estado incompatível"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
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:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Ao menos dois itens de estoque devem ser providenciados"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Valor da chave primária do Item Estoque"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Notas da transação de estoque"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Administrador"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Pedidos de compra"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Pedidos de vendas"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Pedidos de Devolução"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nome de usuário"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Primeiro Nome"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Sobrenome"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Sua conta foi criada."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Por favor, use a função de redefinir senha para acessar"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Bem-vindo(a) ao InvenTree"
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 302ee4688c..5b474c1454 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -104,13 +104,13 @@ msgstr "Informe a data"
msgid "Invalid decimal value"
msgstr "Valor decimal inválido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Observações"
@@ -215,7 +215,7 @@ msgstr "A URL fornecida não é um arquivo de imagem válido"
msgid "Log in to the app"
msgstr "Entrar no aplicativo"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-mail"
@@ -269,7 +269,7 @@ msgstr "Escolha inválida"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Um erro foi registrado pelo servidor."
msgid "Image"
msgstr "Imagem"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Deve ser um número válido"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Moeda"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Selecione a moeda entre as opções disponíveis"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Este campo não pode ser nulo."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Imagem remota"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL do arquivo da imagem remota"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Baixar imagens de URL remota não está habilitado"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Falha ao baixar a imagem da URL remota"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Formato de conteúdo inválido"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Tipo de conteúdo não encontrado"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Chinês (simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chinês (tradicional)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Atualização disponível"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Uma atualização para o InvenTree está disponível"
@@ -561,21 +561,21 @@ msgstr "Situação de pedido"
msgid "Parent Build"
msgstr "Produção Progenitora"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Incluir Variáveis"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Incluir Variáveis"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Incluir Variáveis"
msgid "Part"
msgstr "Parte"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categoria"
@@ -665,89 +665,89 @@ msgstr "Data máxima"
msgid "Exclude Tree"
msgstr "Excluir árvore"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "A compilação deve ser cancelada antes de ser excluída"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consumível"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Montagem"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testável"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Pedido pendente"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Alocado"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponível"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Em pedido"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordem da compilação"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Local"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Saída"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Ordens de Produções"
@@ -783,9 +783,9 @@ msgstr "A data limite deve ser posterior à data inicial"
msgid "Build Order Reference"
msgstr "Referência do pedido de produção"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referência do pedido de venda"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Local de Origem"
@@ -861,16 +861,16 @@ msgstr "Progresso da produção"
msgid "Build status code"
msgstr "Código de situação da produção"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Código do lote"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Código do lote para esta saída de produção"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Criado em"
@@ -907,120 +907,120 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "Usuário que emitiu esta ordem de produção"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsável"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Usuário ou grupo responsável para esta ordem de produção"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Link Externo"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link para URL externa"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Prioridade de Produção"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioridade desta ordem de compilação"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Código do Projeto"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Código do projeto para esta ordem de compilação"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Não é possível concluir o pedido de produção com pedidos secundários abertos"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Não é possível concluir o pedido com saídas incompletas"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Falha ao descarregar tarefa para concluir alocações de compilação"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "O Pedido de produção {build} foi concluído"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Um pedido de produção foi concluído"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nenhuma saída de produção especificada"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Saída da produção já está concluída"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Saída da produção não corresponde à Ordem de Produção"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "A quantidade não pode ser maior que a quantidade de saída"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "A saída da produção não passou em todos os testes necessários"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "A saída da produção {serial} não passou em todos os testes necessários"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Item da ordem de produção"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Compilar objeto"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Compilar objeto"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Quantidade"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Quantidade necessária para o pedido de produção"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "O item de estoque selecionado não coincide com linha da BOM"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Quantidade deve ser 1 para estoque serializado"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "O item do estoque está sobre-alocado"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Item de Estoque"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Origem do item em estoque"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Quantidade do estoque para alocar à produção"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Instalar em"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Destino do Item do Estoque"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Nível de produção"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Nome da Peça"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Saída da Produção"
-#: build/serializers.py:219
+#: build/serializers.py:227
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:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Esta saída de produção já foi concluída"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Esta saída de produção não está totalmente alocada"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Insira a quantidade para construir a saída de produção"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Quantidade inteira necessária para peças rastreáveis"
-#: build/serializers.py:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Números de Série"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Digite os números de série para saídas de produção"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Local de estoque para saídas de produção"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Alocar Números de Série Automaticamente"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Uma lista de saídas de produção deve ser fornecida"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Local de estoque para saídas eliminadas"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Descartar alocações"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Descartar quaisquer alocações de estoque para saídas eliminadas"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Motivo para eliminar saída(s) de produção"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Local para saídas de produção concluídas"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Aceitar Alocação Incompleta"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Consumir Estoque Alocado"
-#: build/serializers.py:691
+#: 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:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Remover Saídas Incompletas"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Não permitido"
-#: build/serializers.py:726
+#: 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:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Desatribua antes de completar esta ordem de produção"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Alguns itens de estoque foram sobrecarregados"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Aceitar não alocados"
-#: build/serializers.py:775
+#: 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 encomenda"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Estoque obrigatório não foi totalmente alocado"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Aceitar Incompleto"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Quantidade de produção requerida não foi concluída"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "A ordem de produção tem ordens de produção secundárias abertas"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Ordem de produção deve estar no estado de produção"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Ordem de produção tem saídas incompletas"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linha de Produção"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Saída da Produção"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Saída de produção deve indicar a mesma produção"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Item da linha de produção"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part deve apontar para a mesma parte que a ordem de produção"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "O item deve estar em estoque"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantidade disponível ({q}) excedida"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Saída de produção não pode ser definida para alocação de peças não rastreadas"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Alocação de itens precisam ser fornecidos"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Localização do estoque onde as peças devem ser originadas (deixe em branco a partir de qualquer local)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Excluir Local"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Excluir itens de estoque desta localização selecionada"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Estoque Intercambiável"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Itens de estoque em múltiplos locais podem ser intercambiáveis"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Estoque Substituto"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Permitir alocação de peças substitutas"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Itens opcionais"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Alocar itens BOM opcionais para ordem de produção"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Referência do BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID da parte BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nome da peça BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Produção"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Fornecedor da Peça"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Quantidade Alocada"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Referência da produção"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Nome da Categoria"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Rastreável"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Herdado"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Item BOM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Em Produção"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Agendado para produção"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Estoque Externo"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Estoque Disponível"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Estoque Substituto Disponível"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Estoque de Variantes Disponível"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "Em Espera"
msgid "Cancelled"
msgstr "Cancelado"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Ordem de produção vencido"
msgid "Build order {bo} is now overdue"
msgstr "Ordem de produção {bo} está atrasada"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "É um link"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "É um arquivo"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "O usuário não tem permissão para deletar esses anexos"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "O usuário não tem permissão para deletar esse anexo"
@@ -1550,7 +1550,7 @@ msgstr "Nenhum código de moeda válido fornecido"
msgid "No plugin"
msgstr "Sem extensão"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Rótulo de código do projeto"
@@ -1617,7 +1617,7 @@ msgstr "A frase senha deve ser diferenciada"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Usuário"
msgid "Price break quantity"
msgstr "Quantidade de Parcelamentos"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Preço"
@@ -1652,7 +1652,7 @@ msgstr "Nome para este webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Ativo"
@@ -1849,7 +1849,7 @@ msgstr "Tamanho do arquivo"
msgid "File size in bytes"
msgstr "Tamanho do arquivo em bytes"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Categoria de modelo especificado inválido para anexo"
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr "Caixa de seleção"
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Habilitado"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Modelo"
@@ -2148,7 +2148,7 @@ msgstr "Modelo"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Dados"
@@ -2156,18 +2156,18 @@ msgstr "Dados"
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Anotação"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Campo opcional de notas"
@@ -2391,85 +2391,85 @@ msgstr "É indicado se a configuração é substituída por uma variável de amb
msgid "Override"
msgstr "Substituir"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Está em execução"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Tarefas Pendentes"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Tarefas Agendadas"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Tarefas com Falhas"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID da Tarefa"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "ID Único da Tarefa"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Bloquear"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Congelar tempo"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Nome da tarefa"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Função"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nome da função"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumentos"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumentos da tarefa"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Argumentos de Palavra-chave"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Argumentos Palavra-chave da Tarefa"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nome do arquivo"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Categoria de Modelo"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Usuário não tem permissão para criar ou editar anexos para este modelo"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lista de seleção bloqueada"
@@ -2859,8 +2859,8 @@ msgstr "Peças são modelos por padrão"
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/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Componente"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Desativado: O caminho completo da categoria é exibido como uma dica do mouse. Habilitado: O caminho completo da categoria é exibido como texto sem formatação."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Receber relatório de erros"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Receber notificações para erros do sistema"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Últimas máquinas de impressão utilizadas"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Salvar as últimas máquinas de impressão usadas para um usuário"
@@ -3988,33 +3996,33 @@ msgstr "A peça está ativa"
msgid "Manufacturer is Active"
msgstr "Fabricante está ativo"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "A peça do Fornecedor está ativa"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "A peça interna está ativa"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "O fornecedor está Ativo"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Empresa"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Tem estoque"
@@ -4195,7 +4203,7 @@ msgstr "Notas de envio para uso interno"
msgid "Link to address information (external)"
msgstr "Link para as informações do endereço (externo)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Fabricante da peça"
@@ -4213,12 +4221,12 @@ msgstr "Selecionar peça"
msgid "Select manufacturer"
msgstr "Selecionar fabricante"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "NPF"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Número de Peça do Fabricante"
@@ -4242,8 +4250,8 @@ msgstr "Unidades de pacote devem ser maior que zero"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Fornecedor"
msgid "Select supplier"
msgstr "Selecione o fornecedor"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Unidade de reserva de estoque fornecedor"
@@ -4282,16 +4290,16 @@ msgstr "URL do link externo da peça do fabricante"
msgid "Supplier part description"
msgstr "Descrição da peça fornecedor"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "preço base"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Taxa mínima (ex.: taxa de estoque)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Embalagem"
@@ -4307,7 +4315,7 @@ msgstr "Quantidade de embalagens"
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 individuais."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "múltiplo"
@@ -4339,14 +4347,18 @@ msgstr "Moeda padrão utilizada para este fornecedor"
msgid "Company Name"
msgstr "Nome da Empresa"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Em Estoque"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Ocorreu um erro ao exportar os dados"
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "A coluna já está mapeada a um campo de banco de dados"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "O campo já está mapeado para uma coluna de dados"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Mapeamento de coluna deve ser ligado a uma sessão de importação válida"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "A coluna não existe no arquivo de dados"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "O campo não existe no modelo de destino"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "O campo selecionado é somente leitura"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Importar Sessão"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Campo"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Coluna"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Índice de fileira"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Dados da linha original"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Erros"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Válido"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Pedido"
msgid "Order Complete"
msgstr "Pedido Completo"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Peça Interna"
@@ -4918,7 +4930,7 @@ msgstr "Data inicial"
msgid "Scheduled start date for this order"
msgstr "Data de início programada para esta encomenda"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data Prevista"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Referência do pedido"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Situação"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Recebido"
msgid "Number of items received"
msgstr "Número de itens recebidos"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Preço de Compra"
@@ -5211,8 +5223,8 @@ msgstr "Verificado por"
msgid "User who checked this shipment"
msgstr "Usuário que verificou este envio"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envio"
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Duplicar Pedido"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "ID do pedido inválido"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "O pedido não pode ser cancelado"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Mesclar Itens"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Código (SKU)"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Número Interno da Peça"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Nome Interno da Peça"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Código de barras"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Código de barras lido"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Código de barras já está em uso"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Itens Alocados"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Os seguintes números de série não estão disponíveis"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Categoria da Peça"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Categorias de Peça"
@@ -5837,7 +5849,7 @@ msgstr "Palavras-chave padrão para peças nesta categoria"
msgid "Icon"
msgstr "Ícone"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ícone (opcional)"
@@ -5858,7 +5870,7 @@ msgstr "Valor Padrão"
msgid "Default Parameter Value"
msgstr "Valor Padrão do Parâmetro"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Peças"
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr "Categoria da Peça"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr "Validade Padrão"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Estoque Mínimo"
@@ -6086,756 +6098,756 @@ msgstr "Criação de Usuário"
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Data"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Modelos de teste só podem ser criados para partes testáveis"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Obrigatório"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sub peça"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Itens de Estoque"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Estoque Total"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Estoque Inicial"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Atualizar"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Ignorar Linhas Inválidas"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Habilite essa opção para ignorar linhas inválidas"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Admin"
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nome de usuário"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Primeiro Nome"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Primeiro nome do usuário"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Sobrenome"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Sobrenome do usuário"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Endereço de e-mail do usuário"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superusuário"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Somente um superusuário pode ajustar este campo"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Senha"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Senha do usuário"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Você não tem permissão para criar usuários"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Sua conta foi criada."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Bem-vindo(a) ao InvenTree"
diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po
index 1b2875155d..125a9f46aa 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -104,13 +104,13 @@ msgstr "Enter Date"
msgid "Invalid decimal value"
msgstr "Valoare zecimală nevalidă"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notițe"
@@ -215,7 +215,7 @@ msgstr "URL-ul furnizat nu este un fișier imagine valid"
msgid "Log in to the app"
msgstr "Conectați-vă la aplicație"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-mail"
@@ -269,7 +269,7 @@ msgstr "Alegere invalidă"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "A fost înregistrată o eroare de către server."
msgid "Image"
msgstr "Imagine"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Trebuie sa fie un număr valid"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Monedă"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Selectați moneda din opțiunile disponibile"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Acest câmp nu poate fi null."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Valoare invalidă"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Imagini de la distanţă"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL-ul imaginii la distanţă"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Descărcarea imaginilor din URL-ul de la distanţă nu este activată"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Descărcarea imaginii din URL-ul de la distanță a eșuat"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Format de tip de conținut nevalid"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Tipul de conținut nu a fost găsit"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Tipul de conținut nu se potrivește cu mixin necesar clasei"
@@ -536,11 +536,11 @@ msgstr "Chineză (simplificată)"
msgid "Chinese (Traditional)"
msgstr "Chineză (tradițională)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Actualizare disponibilă"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "O actualizare pentru InvenTree este disponibilă"
@@ -561,21 +561,21 @@ msgstr "Starea comenzii"
msgid "Parent Build"
msgstr "Construcție părinte"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "İnclude variante"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "İnclude variante"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "İnclude variante"
msgid "Part"
msgstr "Piesă"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Categorie"
@@ -665,89 +665,89 @@ msgstr "Dată maximă"
msgid "Exclude Tree"
msgstr "Exclude arbore"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Construcția trebuie anulată înainte de a putea fi ștearsă"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Consumabile"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opţional"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Asamblate"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Urmarit"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testabilă"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Comandă restantă"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Alocate"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Consumat"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponibil"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Pe comandă"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Comenzi de Producție"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Locatie"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Ieșire"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrează după ID-ul elementelor de ieșire din stoc. Utilizați \"null\" pentru a găsi elemente de construcție dezinstalate."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Comenzi de Producție"
@@ -783,9 +783,9 @@ msgstr "Data țintă trebuie să fie după data de început"
msgid "Build Order Reference"
msgstr "Referință comandă producție"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referință comandă de vânzare"
msgid "Sales Order to which this build is allocated"
msgstr "Comanda de vânzare pentru care această construcție este alocată"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Locație sursă"
@@ -861,16 +861,16 @@ msgstr "Stare producției"
msgid "Build status code"
msgstr "Cod status producție"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Cod lot"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Cod de lot pentru această producție"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Data creării"
@@ -907,120 +907,120 @@ msgstr "Emis de"
msgid "User who issued this build order"
msgstr "Utilizatorul care a emis această comandă de producție"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Responsabil"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Utilizatorul sau grupul responsabil pentru această comandă de producție"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Link extern"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link către URL-ul extern"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Prioritate de construire"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioritatea acestei comenzi de producție"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Cod proiect"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Cod de proiect pentru această comandă de construcție"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Nu se poate finaliza construcția comenzii cu versiuni deschise"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Nu se poate completa comanda de producție cu rezultate incomplete"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Nu s-a putut descărca sarcina pentru a finaliza alocarea construcției"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "A fost finalizată o comandă de producție {build}"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "A fost finalizată o comandă de producție"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Numerele de serie trebuie furnizate pentru piesele urmăribile"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nu este specificată nicio ieșire de producție"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Construcția este deja finalizată"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Construcția nu se potrivește cu Comanda de producție"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Cantitatea trebuie să fie mai mare decât zero"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Cantitatea nu poate fi mai mare decât cantitatea de ieşire"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Construcția nu a trecut toate testele necesare"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Construcția {serial} nu a trecut toate testele necesare"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "Stocurile alocate sunt încă în producţie"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Nu se poate finaliza parțial o construcție cu elemente alocate"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Element linie comandă de producție"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Construiește obiectul"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Construiește obiectul"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Cantitate"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Cantitatea necesară pentru comanda de producție"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Cantitatea de stoc consumată"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Articolul contruit trebuie să specifice o ieșire de construcție, deoarece piesa principală este marcată ca urmăribilă."
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Articolul din stoc selectat nu se potrivește cu linia BOM"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "Cantitatea alocată trebuie să fie mai mare decât zero"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Cantitatea trebuie sa fie 1 pentru stoc serializat"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantitate alocata ({q}) nu trebuie sa depaseasca cantitatea disponibila de stoc ({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Articolul din stoc este supra alocat"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Articol Stoc"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Locație articol stoc"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Cantitatea de stoc alocată pentru construcție"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Instalează în"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Destinație articol in stoc"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Nivel de construcție"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Numele Piesei"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Rezultat de construcție"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Producția nu corespunde cu producția-mamă"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Componenta de ieșire nu corespunde componentei din comanda de producție"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Această producție este deja finalizată"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Această producție nu este alocată integral"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Introduceți cantitatea pentru producția de ieșire"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Număr de serie"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Nu este permisă"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Acceptați nealocat"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Acceptați Incomplet"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Linie de construcție"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Rezultatul construirii"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Locația stocului de unde vor fi procurate piesele (lăsați necompletat pentru a prelua piesele din orice locație)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Nume piesă BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Producție"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Nume Categorie Piesă"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "În Producţie"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Stoc extern"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Stoc disponibil"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Stoc de înlocuire disponibil"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "Suspendat"
msgid "Cancelled"
msgstr "Anulat"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Comandă de producție restantă"
msgid "Build order {bo} is now overdue"
msgstr "Comanda de producție {bo} este în întârziere"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Etichetă Cod Proiect"
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Utilizator"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Preț"
@@ -1652,7 +1652,7 @@ msgstr "Nume pentru acest webhook"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Activ"
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Numele acțiunii"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Nume funcție"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Nume fișier"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr "Descrierea piesei furnizorului"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Introduceți codul lotului pentru articolele din stoc primite"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Este versiune"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Are Versiuni"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr "Responsabil pentru acest capitol"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Descriere test"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Introduceți descrierea pentru acest test"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Este necesar acest test pentru a trece?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Versiunea"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr "Descrierea piesei"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Codul lotului pentru acest element din stoc"
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Nume utilizator"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Prenumele"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Prenumele utilizatorului"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Parolă"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Parolă pentru utilizator"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Suprascrie avertismentul cu privire la regulile parolei"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Vă rugăm să utilizați funcția de resetare a parolei pentru a vă autentifica"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po
index 01bae25974..7626cc3fdd 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -104,13 +104,13 @@ msgstr "Введите дату"
msgid "Invalid decimal value"
msgstr "Не верное десятичное значение"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Заметки"
@@ -215,7 +215,7 @@ msgstr "Предоставленный URL не является допусти
msgid "Log in to the app"
msgstr "Войти в приложение"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Электронная почта"
@@ -269,7 +269,7 @@ msgstr "Неверный выбор"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Сервер зарегистрировал ошибку."
msgid "Image"
msgstr "Изображение"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Валюта"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Выберите валюту из доступных вариантов"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Это поле не может быть пустым."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Неверное значение"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Удаленное изображение"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "ССЫЛКА файла изображения на удаленном сервере"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Загрузка изображений с удаленного URL-адреса не включена"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Не удалось загрузить изображение из URL адреса"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Неверный формат типа содержимого"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "Тип содержимого не найден"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "Тип содержимого не соответствует требуемому классу миксина"
@@ -536,11 +536,11 @@ msgstr "Китайский (Упрощенный)"
msgid "Chinese (Traditional)"
msgstr "Китайский (Традиционный)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Доступно обновление"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Доступно обновление для InvenTree"
@@ -561,21 +561,21 @@ msgstr "Статус заказа"
msgid "Parent Build"
msgstr "Родительский заказ на производство"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Включая варианты"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Включая варианты"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Включая варианты"
msgid "Part"
msgstr "Деталь"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Категория"
@@ -665,89 +665,89 @@ msgstr "Максимальная дата"
msgid "Exclude Tree"
msgstr "Исключить дерево"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Заказ на производство должен быть отменен перед удалением"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Расходник"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Необязательно"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Сборная деталь"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Отслеживается"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Тестируемая"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Невыполненные заказы"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Зарезервировано"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Потреблено"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Доступно"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "В заказе"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Заказ на производство"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Расположение"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Выход"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Фильтрация по идентификатору исходящей складской позиции. Используйте 'null', чтобы найти несмонтированные элементы сборки."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Заказы на производство"
@@ -783,9 +783,9 @@ msgstr "Целевая дата должна быть после даты нач
msgid "Build Order Reference"
msgstr "Ссылка на заказ на производство"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Ссылка на заказ"
msgid "Sales Order to which this build is allocated"
msgstr "Заказ на продажу, которому принадлежит этот заказ на производство"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Место хранения комплектующих"
@@ -861,16 +861,16 @@ msgstr "Статус заказа на производство"
msgid "Build status code"
msgstr "Код статуса заказа на производство"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Код партии"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Код партии для продукции"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Дата создания"
@@ -907,120 +907,120 @@ msgstr "Создано"
msgid "User who issued this build order"
msgstr "Пользователь, создавший этот заказ на производство"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Пользователь, ответственный за этот заказ на производство"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Приоритет производства"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Приоритет этого заказа на производство"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Код проекта"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Код проекта для этого заказа на производство"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Невозможно завершить заказ на сборку при наличии открытых дочерних сборок"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Невозможно завершить заказ на сборку при незавершенных выходах"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Не удалось выгрузить задачу для распределения на сборку"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Заказ на производство {build} был завершен"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Заказ на производство был завершен"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Для отслеживаемых деталей должны быть указаны серийные номера"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Продукция не указана"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Продукция уже произведена"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Продукция не совпадает с заказом на производство"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Количество не может быть больше количества продукции"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Выход сборки не прошёл все необходимые тесты"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Сборка {serial} не прошла все необходимые тесты"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "Выделенные на складе товары все еще находятся в производстве"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Невозможно частично завершить выход сборки с распределёнными элементами"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Номер позиции для производства"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Объект производства"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Объект производства"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Количество"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Требуемое количество для заказа на производство"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Количество израсходованного запаса"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Элемент производства должен указать продукцию, как главную деталь помеченную как отслеживаемая"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Выбранная складская позиция не соответствует позиции в BOM"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "Резервируемое количество должно быть больше нуля"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Количество должно быть 1 для сериализованных запасов"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Складская позиция перераспределена"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Складская позиция"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Исходная складская позиция"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Количество на складе для производства"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Установить в"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Целевая складская позиция"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Уровень сборки"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Наименование детали"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Выход Продукции"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Продукция не совпадает с родительским заказом на производство"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Продукция не соответствует детали заказа на производство"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Эта продукция уже помечена как завершенная"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Сырье для этой продукции не полностью зарезервировано"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Введите количество продукции"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Требуется целое количество, так как материал содержит отслеживаемые детали"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Серийные номера"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Введите серийные номера для продукции"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Местоположение склада для результата сборки"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Автоматически выделить серийные номера"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Автоматически зарезервировать необходимые элементы с соответствующими серийными номерами"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Следующие серийные номера уже существуют или недействительны"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Необходимо представить список выхода деталей"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Место хранения для списанной продукции"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Отменить резервирование"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Отменить все резервы запасов для списанной продукции"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Причина списания продукции"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Место хранения для завершенной продукции"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Разрешить неполное резервирование"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Завершить продукцию, даже если остатки не были полностью зарезервированы"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Израсходовать зарезервированные остатки"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Израсходовать складские позиции, которые были зарезервированы для этой продукции"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Удалить незавершенную продукцию"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "Удалить всю незавершенную продукцию"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Запрещено"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Принять как поглощенный этим заказом на производство"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Отменить резерв, до завершения заказа на производство"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Перераспределенные запасы"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Как вы хотите обработать дополнительные складские позиции, назначенные для заказа на производство"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Некоторые складские позиции были перераспределены"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Разрешить не полное резервирование"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Подтвердите, что складские позиции не были полностью зарезервированы для этого заказа на производство"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Необходимые запасы не были полностью зарезервированы"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Разрешить незавершенные производимые детали"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Допустить, что требуемое кол-во продукции не завершено"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Требуемое количество деталей не было произведено"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Производственный заказ имеет незавершённые дочерние заказы"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Заказ на производство должен быть в стадии выполнения"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Заказ на производство имеет незавершенную продукцию"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Позиция для производства"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Выход продукции"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Продукция должна указывать на тот же производство"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Позиция для производства"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part должна указывать на ту же часть, что и заказ на производство"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Элемент должен быть в наличии"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Превышено доступное количество ({q})"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Продукция должна быть указан для резервирования отслеживаемых частей"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Продукция не может быть указана для резервирования не отслеживаемых частей"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Необходимо указать резервируемые элементы"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Место хранения, где будут зарезервированы детали (оставьте пустым, чтобы забрать их из любого места)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Исключить место хранения"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Исключить складские позиции из этого выбранного места хранения"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Обменный остаток"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Складские позиции в нескольких местах могут использоваться на взаимозаменяемой основе"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Заменить остатки"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Разрешить резервирование замещающих деталей"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Необязательные элементы"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Зарезервировать необязательные позиции BOM для заказа на производство"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Ссылка на спецификацию (BOM)"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID детали в спецификации (BOM)"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Название детали в спецификации (BOM)"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "Установить в"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Сборка"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Деталь поставщика"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Зарезервированное количество"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Ссылка на сборку"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Название категории детали"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Отслеживание"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Унаследованные"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Есть варианты"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Позиция BOM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "В производстве"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Запланировано к сборке"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Внешний склад"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Доступный запас"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Доступный запас заменителей"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Доступный запас вариантов"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Потреблённое количество превышает выделенное количество"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Дополнительные примечания по расходу запаса"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "Элемент сборки должен ссылаться на правильный заказ на сборку"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Дублирование выделения элемента сборки"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "Строка сборки должна ссылаться на правильный заказ на сборку"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Дублирование выделения строки сборки"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "Должен быть указан хотя бы один элемент или строка"
@@ -1494,7 +1494,7 @@ msgstr "Отложен"
msgid "Cancelled"
msgstr "Отменён"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Просроченный заказ сборки"
msgid "Build order {bo} is now overdue"
msgstr "Заказ на производство {bo} просрочен"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Ссылка"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Файл"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "У пользователя нет прав для удаления этих вложений"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "У пользователя нет прав на удаление этого вложения"
@@ -1550,7 +1550,7 @@ msgstr "Не указаны действительные коды валют"
msgid "No plugin"
msgstr "Нет плагина"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Название кода проекта"
@@ -1617,7 +1617,7 @@ msgstr "Строка ключа должна быть уникальной"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Пользователь"
msgid "Price break quantity"
msgstr "Скидка распространяется на заданное количество"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Цена"
@@ -1652,7 +1652,7 @@ msgstr "Имя для этого веб-хука"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Активный"
@@ -1849,7 +1849,7 @@ msgstr "Размер файла"
msgid "File size in bytes"
msgstr "Размер файла в байтах"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Указан недопустимый тип модели для вложения"
@@ -2058,7 +2058,7 @@ msgstr "У параметров-переключателей не может б
msgid "Checkbox parameters cannot have choices"
msgstr "У параметров-переключателей не может быть вариантов"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Варианты должны быть уникальными"
@@ -2094,7 +2094,7 @@ msgstr "Переключатель"
msgid "Is this parameter a checkbox?"
msgstr "Этот параметр является переключателем?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Варианты"
@@ -2106,7 +2106,7 @@ msgstr "Возможные варианты этого параметра (ра
msgid "Selection list for this parameter"
msgstr "Список выбора для этого параметра"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Включено"
@@ -2126,7 +2126,7 @@ msgstr "Параметры"
msgid "Invalid choice for parameter value"
msgstr "Недопустимое значение параметра"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Указан неверный тип модели для параметра"
@@ -2140,7 +2140,7 @@ msgstr "ID целевой модели для этого параметра"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Шаблон"
@@ -2148,7 +2148,7 @@ msgstr "Шаблон"
msgid "Parameter template"
msgstr "Шаблон параметра"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Данные"
@@ -2156,18 +2156,18 @@ msgstr "Данные"
msgid "Parameter Value"
msgstr "Значение параметра"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Заметка"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Опциональное поле записей"
@@ -2391,85 +2391,85 @@ msgstr "Указывает, переопределена ли настройка
msgid "Override"
msgstr "Переопределить"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Запущен"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Ожидающие задачи"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Запланированные задания"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Невыполненные Задачи"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Код задачи"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Уникальный ID задачи"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Заблокировать"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Время блокировки"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Название задачи"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Функция"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Имя функции"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Аргументы"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Аргументы задачи"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Именованные аргументы"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Именованные аргументы задачи"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Имя файла"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Тип модели"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Пользователь не имеет разрешения создавать или редактировать вложения для этой модели"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "У пользователя нет разрешения на создание или редактирование параметров для этой модели"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Список выбора заблокирован"
@@ -2859,8 +2859,8 @@ msgstr "По умолчанию детали являются шаблонами
msgid "Parts can be assembled from other components by default"
msgstr "По умолчанию детали могут быть собраны из других компонентов"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Компонент"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Выключено: полный путь категории отображается во всплывающей подсказке. Включено: полный путь категории отображается как обычный текст."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Получать отчёты об ошибках"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Получать уведомления о системных ошибках"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Последние использованные печатающие машины"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Сохранять последние использованные печатающие машины для пользователя"
@@ -3988,33 +3996,33 @@ msgstr "Деталь активна"
msgid "Manufacturer is Active"
msgstr "Производитель активен"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Поставляемая деталь активна"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Внутренняя деталь активна"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Поставщик активен"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Производитель"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Компания"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Есть запас"
@@ -4195,7 +4203,7 @@ msgstr "Записи отправления для внутреннего пол
msgid "Link to address information (external)"
msgstr "Ссылка на адресную информацию (внешняя)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Производитель детали"
@@ -4213,12 +4221,12 @@ msgstr "Выберите деталь"
msgid "Select manufacturer"
msgstr "Выберите производителя"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "Артикул производителя"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Артикул производителя"
@@ -4242,8 +4250,8 @@ msgstr "Единицы упаковки должны быть больше ну
msgid "Linked manufacturer part must reference the same base part"
msgstr "Связанная деталь производителя должна ссылаться на ту же базовую деталь"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Поставщик"
msgid "Select supplier"
msgstr "Выберите поставщика"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Артикул поставщика"
@@ -4282,16 +4290,16 @@ msgstr "Ссылка на сайт поставщика"
msgid "Supplier part description"
msgstr "Описание детали поставщика"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "базовая стоимость"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Минимальная плата (например, складская)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Упаковка"
@@ -4307,7 +4315,7 @@ msgstr "Количество в упаковке"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Общее количество, поставляемое в одной упаковке. Оставьте пустым для отдельных элементов."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "множественные"
@@ -4339,14 +4347,18 @@ msgstr "Валюта по умолчанию для этого поставщи
msgid "Company Name"
msgstr "Название компании"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "На складе"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Ценовые пороги"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Произошла ошибка при экспорте данных"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Существующий идентификатор записи в базе данных"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Колонка уже сопоставлена с полем базы данных"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Поле уже сопоставлено с колонкой данных"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Сопоставление столбцов должно быть связано с корректным сеансом импорта"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Колонка не существует в файле данных"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Поле не существует в целевой модели"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Выбранное поле доступно только для чтения"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Сессия импорта"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Поле"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Колонка"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Номер строки"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Исходные данные строки"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Ошибки"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Корректный"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "Для обновления существующих записей требуется ID."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Запись с указанным ID не найдена"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Указан недействительный формат ID"
@@ -4821,7 +4833,7 @@ msgstr "Заказ"
msgid "Order Complete"
msgstr "Заказ выполнен"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Внутренняя деталь"
@@ -4918,7 +4930,7 @@ msgstr "Начальная дата"
msgid "Scheduled start date for this order"
msgstr "Запланированная начальная дата этого заказа"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Целевая дата"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Ссылка на заказ"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Статус"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Получено"
msgid "Number of items received"
msgstr "Количество полученных предметов"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Закупочная цена"
@@ -5211,8 +5223,8 @@ msgstr "Проверн"
msgid "User who checked this shipment"
msgstr "Пользователь, проверивший эту отгрузку"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Отправление"
@@ -5277,7 +5289,7 @@ msgstr "Количество распределения не может прев
msgid "Allocation quantity must be greater than zero"
msgstr "Резервируемое количество должно быть больше нуля"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Количество должно быть 1 для сериализированных складских позиций"
@@ -5393,7 +5405,7 @@ msgstr "Копировать дополнительные позиции"
msgid "Copy extra line items from the original order"
msgstr "Копировать дополнительные позиции из исходного заказа"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Скопировать параметры"
@@ -5412,216 +5424,216 @@ msgstr "Позиции"
msgid "Completed Lines"
msgstr "Завершённые позиции"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Дублировать заказ"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Указать параметры для дублирования этого заказа"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Недействительный ID заказа"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Имя поставщика"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Заказ не может быть отменён"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Разрешить закрывать заказ с незавершёнными позициями"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "В заказе есть незавершённые позиции"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Заказ не открыт"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Автоматическая цена"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Автоматически рассчитывать закупочную цену на основе данных детали поставщика"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Валюта заказа на закупку"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Объединять элементы"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Объединять в одну позицию элементы, у которых одинаковая деталь, место хранения и целевая дата"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Артикул"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Внутренний артикул детали"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Внутреннее название детали"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Необходимо указать поставляемую деталь"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Необходимо указать заказ на закупку"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Поставщик должен соответствовать заказу на закупку"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Заказ на закупку должен соответствовать поставщику"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Позиция"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Выберите место назначения для полученных элементов"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Введите код партии для поступающих складских позиций"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Истекает"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Введите дату истечения срока годности для поступающих складских единиц"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Введите серийные номера для входящих складских позиций"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Переопределить информацию об упаковке для поступающих складских единиц"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Дополнительная заметка для поступающих складских единиц"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Штрих-код"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Сканированный штрих-код"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Штрихкод уже используется"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Необходимо предоставить позиции"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Необходимо указать место назначения"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Предоставленные значения штрихкодов должны быть уникальными"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Отгрузки"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Выполненные отгрузки"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr "Зарезервированные позиции"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Валюта цены продажи"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Выделенные элементы"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Информация об отгрузке не предоставлена"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Позиция не связана с этим заказом"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Количество должно быть положительным"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Введите серийные номера для резервирования"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Отгрузка уже отправлена"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Отгрузка не связана с этим заказом"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Совпадений для следующих серийных номеров не найдено"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Следующие серийные номера недоступны"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Позиция заказа на возврат"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Позиция не соответствует заказу на возврат"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Позиция уже получена"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Предметы могут быть получены только по заказам, которые находятся в процессе выполнения"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Количество для возврата"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Валюта цены позиции"
@@ -5732,71 +5744,71 @@ msgstr "Исключить подкатегории указанной кате
msgid "Has Results"
msgstr "Есть результаты"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Является вариантом"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Является ревизией"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Есть ревизии"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "Спецификация валидна"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Каскадные категории"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Если включено, включать элементы в дочерних категориях указанной категории"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Фильтровать по числовому идентификатору категории или литералу 'null'"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr "Сборочная деталь активна"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr "Отслеживаемая сборочная деталь"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Сборная деталь тестируется"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr "Деталь компонента активна"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr "Отслеживаемая деталь компонента"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Компонент тестируется"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr "Сборочная деталь компонента"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr "Виртуальная деталь компонента"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr "На складе"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Использования"
@@ -5805,7 +5817,7 @@ msgstr "Использования"
msgid "Part Category"
msgstr "Категория детали"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Категория детали"
@@ -5837,7 +5849,7 @@ msgstr "Ключевые слова по умолчанию для детале
msgid "Icon"
msgstr "Значок"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Значок (необязательно)"
@@ -5858,7 +5870,7 @@ msgstr "Значение по умолчанию"
msgid "Default Parameter Value"
msgstr "Значение параметра по умолчанию"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Детали"
@@ -5973,7 +5985,7 @@ msgstr "Ключевые слова для улучшения видимости
msgid "Part category"
msgstr "Категория"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "Внутренний артикул"
@@ -6006,7 +6018,7 @@ msgstr "Срок действия по умолчанию"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Срок годности (в днях) для складских позиций этой детали"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Минимальный запас"
@@ -6086,756 +6098,756 @@ msgstr "Создатель"
msgid "Owner responsible for this part"
msgstr "Ответственный владелец этой детали"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Продать несколько"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Валюта, используемая для кэширования расчётов цен"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Минимальная Стоимость BOM"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Минимальная стоимость компонентных деталей"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Максимальная Стоимость BOM"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Максимальная стоимость компонентных деталей"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Минимальная стоимость закупки"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Минимальная историческая стоимость закупки"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Максимальная стоимость закупки"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Максимальная историческая стоимость закупки"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Минимальная внутренняя цена"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Минимальная стоимость на основе внутренних ценовых уровней"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Максимальная внутренняя цена"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Максимальная стоимость на основе внутренних ценовых уровней"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Минимальная цена поставщика"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Минимальная цена детали от внешних поставщиков"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Максимальная цена поставщика"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Максимальная цена детали от внешних поставщиков"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Минимальная стоимость варианта"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Расчётная минимальная стоимость вариантов деталей"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Максимальная стоимость варианта"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Расчётная максимальная стоимость вариантов деталей"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Минимальная Стоимость"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Переопределить минимальную стоимость"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Максимальная Стоимость"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Переопределить максимальную стоимость"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Расчётная общая минимальная стоимость"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Расчётная общая максимальная стоимость"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Минимальная цена продажи"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Минимальная цена продажи на основе ценовых уровней"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Максимальная цена продажи"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Максимальная цена продажи на основе ценовых уровней"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Минимальная стоимость продажи"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Минимальная историческая цена продажи"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Максимальная стоимость продажи"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Максимальная историческая цена продажи"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Деталь для инвентаризации"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Количество элементов"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Количество отдельных складских позиций на момент инвентаризации"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Общий доступный запас на момент инвентаризации"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Дата"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Дата проведения инвентаризации"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Минимальная стоимость запасов"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Оценочная минимальная стоимость имеющихся запасов"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Максимальная стоимость запасов"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Оценочная максимальная стоимость имеющихся запасов"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Цена продажи детали по порогу"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Шаблон теста детали"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Недопустимое имя шаблона — должно содержать хотя бы один буквенно-цифровой символ"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Шаблоны тестов можно создавать только для тестируемых деталей"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Шаблон теста с тем же ключом уже существует для детали"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Название теста"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Введите имя для теста"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Ключ теста"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Упрощённый ключ для теста"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Описание теста"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Введите описание для этого теста"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Активен ли данный тест?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Необходим"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Необходимо ли пройти этот тест?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Требуется значение"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Требуется ли значение для этого теста при добавлении результата?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Требуются вложения"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Требуется ли прикреплять вложение в виде файла при добавлении результатов теста?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Допустимые варианты данного теста(через запятую)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "Пункт спецификации нельзя изменить — сборка заблокирована"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "Пункт спецификации нельзя изменить — вариант сборки заблокирован"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Суб-деталь"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Количество элементов в спецификации"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Эта позиция спецификации необязательна"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Эта позиция - расходник (она не отслеживается в заказах на производство)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Количество для подготовки"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "Дополнительное требуемое количество для сборки, учитывающее потери при подготовке"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Потери"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Оценочные потери для сборки, выраженные в процентах (0–100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Округление до кратности"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Округлять требуемое производственное количество до ближайшего кратного этого значения"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Ссылка на позицию спецификации"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Заметка о позиции в спецификации"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Контрольная сумма"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Контрольная сумма строки спецификации"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Проверен"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Этот пункт спецификации подтверждён"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Наследуется"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Позиция спецификации наследуется разновидностями детали"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Эту позицию можно заменять деталями, которые находятся на складе"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Необходимо указать поддеталь"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Замена пункта спецификации"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Деталь для замены не может быть такой же, как основная деталь"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Позиция BOM-родителя"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Замена детали"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Деталь 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Деталь 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Выберите связанную деталь"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Заметка для данной связи"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Нельзя создать отношение детали с самой собой"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Дублирующее отношение уже существует"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Родительская категория"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Родительская категория деталей"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Подкатегории"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Результаты"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Количество результатов, зарегистрированных по этому шаблону"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Валюта закупки складской позиции"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Файл не является изображением"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Оригинальная деталь"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Выберите исходную деталь для копирования"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Копировать Изображение"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Копировать изображение из исходной детали"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Скопировать BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Копировать спецификацию из исходной детали"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Копировать данные параметров из исходной детали"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Копировать Записи"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Скопировать записи из оригинальной детали"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Копировать тесты"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Копировать шаблоны тестов из исходной детали"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Начальное количество на складе"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Задайте начальное количество этой детали на складе. Если количество равно 0, складская позиция не будет добавлена."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Начальное местоположение запаса"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Укажите начальное местоположение запаса для этой детали"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Артикул производителя"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Выбранная компания не является допустимым поставщиком"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Выбранная компания не является допустимым производителем"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Деталь производителя с данным артикулом уже существует"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Деталь поставщика с данным артикулом уже существует"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Название категории"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Производится"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Количество этой детали, находящееся в производстве"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Оставшееся количество этой детали, запланированное к сборке"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Складские позиции"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Ревизии"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Общий запас"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Нераспределённый запас"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Запас вариантов"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Дублировать деталь"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Копировать начальные данные из другой детали"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Начальный запас"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Создавать деталь с начальным количеством на складе"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Информация о поставщике"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Добавить начальную информацию о поставщике для этой детали"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Копировать параметры категории"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Копировать шаблоны параметров из выбранной категории деталей"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Существующее изображение"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Имя файла существующего изображения детали"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Файл изображения не существует"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Проверить всю спецификацию"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Можно произвести"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Требуется для заказов на сборку"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Выделено для заказов на сборку"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Требуется для заказов на продажу"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Выделено для заказов на продажу"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr "Внутренний артикул детали"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr "Описание детали"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Выберите деталь (и любые её варианты) для которой сгенерировать информацию об инвентаризации"
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Выберите категорию (и любые её подкатегории) для которой сгенерировать информацию об инвентаризации"
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Выберите склад, чтобы включить все детали в наличии в указанном складе (включая подразделы)"
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr "Создать записи инвентаризации"
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr "Сохранить записи инвентаризации для выбранных деталей"
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr "Создать отчет"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr "Создать отчёт инвентаризации для выбранных деталей"
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Минимальная цена"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Переопределить рассчитанное значение минимальной цены"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Валюта минимальной цены"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Максимальная цена"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Переопределить рассчитанное значение максимальной цены"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Валюта максимальной цены"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Обновить"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Обновить цены для этой детали"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Не удалось конвертировать из предоставленных валют в {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Минимальная цена не должна превышать максимальную цену"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Максимальная цена не должна быть меньше минимальной"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Выберите родительскую сборку"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Выберите деталь, которая является компонентом"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Выберите деталь, из которой копировать спецификацию"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Удалить существующие данные"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Удалить существующие пункты спецификации перед копированием"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Включая наследуемые"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Включать пункты спецификации, унаследованные от шаблонных деталей"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Пропустить некорректные строки"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Включите эту опцию, чтобы пропускать недопустимые строки"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Копировать детали-заменители"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Копировать детали-заменители при дублировании пунктов спецификации"
@@ -7758,7 +7770,7 @@ msgstr "Пакетный плагин"
msgid "Plugin"
msgstr "Плагин"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Автор не найден"
@@ -8288,7 +8300,7 @@ msgstr "Отчет тестирования складской позиции"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Установленные элементы"
@@ -8361,7 +8373,7 @@ msgstr "Фильтровать по местоположениям верхне
msgid "Include sub-locations in filtered results"
msgstr "Включать подместоположения в отфильтрованные результаты"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Основной склад"
@@ -8445,7 +8457,7 @@ msgstr "Дата истечения до"
msgid "Expiry date after"
msgstr "Дата истечения после"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Залежалый"
@@ -8530,7 +8542,7 @@ msgstr "Значок по умолчанию для мест хранения с
msgid "Stock Location"
msgstr "Место хранения"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Места хранения"
@@ -8579,7 +8591,7 @@ msgstr "Необходимо указать деталь"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Складские позиции не могут находиться в структурных местах хранения!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Складская позиция не может быть создана для виртуальных деталей"
@@ -8624,7 +8636,7 @@ msgstr "Выберите соответствующего поставщика
msgid "Where is this stock item located?"
msgstr "Где находится эта складская позиция?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Упаковка этой складской позиции хранится в"
@@ -8640,7 +8652,7 @@ msgstr "Установлен ли этот элемент в другой эле
msgid "Serial number for this item"
msgstr "Серийный номер для этого элемента"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Код партии для этой складской позиции"
@@ -8753,7 +8765,7 @@ msgstr "Складская позиция в производстве"
msgid "Serialized stock cannot be merged"
msgstr "Серийные запасы нельзя объединить"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Дублирующие складские элементы"
@@ -8877,7 +8889,7 @@ msgstr "Выберите деталь для генерации серийног
msgid "Quantity of serial numbers to generate"
msgstr "Количество серийных номеров для генерации"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Шаблон теста для этого результата"
@@ -8901,222 +8913,222 @@ msgstr "Родительский элемент"
msgid "Parent stock item"
msgstr "Родительский складской элемент"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Использовать размер упаковки при добавлении: заданное количество — это количество упаковок"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "Использовать размер упаковки"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Введите серийные номера для новых элементов"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Номер детали поставщика"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Просрочен"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Дочерние элементы"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Отслеживание элементов"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Закупочная цена для этой складской позиции, за единицу или за упаковку"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Введите количество складских позиций для сериализации"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "Складской элемент не предоставлен"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Количество не должно превышать доступный запас ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Целевое место хранения"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Серийные номера не могут присваиваться данной детали"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Серийные номера уже существуют"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Выберите складскую позицию для установки"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Количество для установки"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Введите количество элементов для установки"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Добавить запись к транзакции (необязательно)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Количество для установки должно быть не менее 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Складская позиция недоступна"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Выбранная деталь отсутствует в спецификации"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Количество для установки не должно превышать доступное количество"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Место назначения для демонтированного элемента"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Выберите деталь в которую будет преобразована складская позиция"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Выбранная деталь не является допустимым вариантом для преобразования"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Невозможно преобразовать складскую позицию с назначенной деталью поставщика"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Статус складской позиции"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Выберите складские позиции для изменения статуса"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Не выбрано ни одной складской позиции"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Места хранения"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Родительское местоположение запаса"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Деталь должна быть продаваемой"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Элемент распределён в заказ на продажу"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Элемент зарезервирован для заказа на производство"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Покупатель для назначения складских позиций"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Выбранная компания не является покупателем"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Записи о назначенных запасах"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Необходимо предоставить список складских позиций"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Заметки об объединении складских позиций"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Разрешить несоответствие поставщиков"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Разрешить объединение складских позиций с различными поставщиками"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Разрешить несоответствие статусов"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Разрешить объединение складских позиций с различными статусами"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Необходимо предоставить как минимум 2 складские позиции"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Нет изменений"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Первичный ключ складского элемента"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Складской элемент отсутствует на складе"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "Складской элемент уже на складе"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "Количество не должно быть отрицательным"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Заметки об изменении склада"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "Объединить с существующим запасом"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "Объединять возвращённые элементы с существующими складскими элементами, если возможно"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Следующий серийный номер"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Предыдущий серийный номер"
@@ -9582,115 +9594,119 @@ msgstr "Основная группа"
msgid "Primary group for the user"
msgstr "Основная группа для пользователя"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Админ"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Заказы на закупку"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Заказы на продажу"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Заказы на возврат"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Логин"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Имя"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Имя пользователя"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Фамилия"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Фамилия пользователя"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Адрес электронной почты пользователя"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Суперпользователь"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Это пользователь является суперпользователем"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Активна эта учетная запись"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Только суперпользователь может изменить это поле"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Пароль"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Пароль пользователя"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Игнорировать предупреждение"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Игнорировать предупреждение о правилах пароля"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "У вас нет разрешения на создание пользователей"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Ваша учётная запись была успешно создана."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Пожалуйста, используйте функцию сброса пароля для входа"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Добро пожаловать в InvenTree"
diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po
index 7434729026..405e3ff31d 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Language: sk_SK\n"
@@ -104,13 +104,13 @@ msgstr ""
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr ""
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po
index 00b3c3b084..c32d5b5e6e 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -104,13 +104,13 @@ msgstr "Vnesi datum"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Zapiski"
@@ -215,7 +215,7 @@ msgstr "Podani URL ni veljavna slikovna datoteka"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-pošta"
@@ -269,7 +269,7 @@ msgstr "Nedovoljena izbira"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Zaznana napaka na strežniku."
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Mora biti veljavna številka"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Izberite valuto med razpoložljivimi možnostmi"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Neveljavna vrednost"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Oddaljena slika"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "Povezava do oddaljene slike"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Prenos slik iz oddaljene povezave ni omogočen"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Kitajščina (poenostavljena)"
msgid "Chinese (Traditional)"
msgstr "Kitajščina (tradicionalno)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr "Nadrejena izgradnja"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Del"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Neobvezno"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Montaža"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Sledi"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testno"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Dodeljeno"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Na voljo"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Nalog izgradnje"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr ""
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Nalogi izgradnje"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Referenca naloga izgradnje"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referenca dobavnica"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Lokacija vira"
@@ -861,16 +861,16 @@ msgstr "Status izgradnje"
msgid "Build status code"
msgstr "Koda statusa izgradnje"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Številka serije"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Številka serije za to izgradnjo"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Datum ustvarjenja"
@@ -907,120 +907,120 @@ msgstr "Izdal"
msgid "User who issued this build order"
msgstr "Uporabnik, ki je izdal nalog za izgradnjo"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Odgovoren"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Odgovorni uporabnik ali skupina za to naročilo"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Zunanja povezava"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Zunanja povezava"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Nalog izgradnje {build} je dokončan"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Nalog izgradnej dokončan"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Ni določena izgradnja"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Igradnja je že dokončana"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Izgradnja se ne ujema s nalogom izdelave"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Količina"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Količina za zalogo s serijsko številko mora biti 1"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Preveč zaloge je prestavljene"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Postavka zaloge"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Izvorna postavka zaloge"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Količina zaloge za prestavljanje za izgradnjo"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Inštaliraj v"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Destinacija postavke zaloge"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Izgradnja"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Izgradnja se ne ujema z nadrejeno izgradnjo"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Izhodni del se ne ujema s naročilom sestava"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Ta sestava je že zaključena"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Preklicano"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Uporabnik"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktivno"
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Ime datoteke"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr "Prestavljena količina mora biti večja od 0"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr ""
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Uporabniško ime"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Ime"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Ime uporabnika"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Priimek"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Priimek uporabnika"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Email uporabnika"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superuporabnik"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Ali je ta uporabnik superuporabnik"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Ali je ta račun aktiven"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Vaš račun je bil ustvarjen."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Za prijavo uporabite funkcijo ponastavitve gesla"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Dobrodošli v InvenTree"
diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po
index d2b1ffc79e..82ce13a63f 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"Language: sr_CS\n"
@@ -104,13 +104,13 @@ msgstr "Unesite datum"
msgid "Invalid decimal value"
msgstr "Neispravna decimalna vrednost"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Napomene"
@@ -215,7 +215,7 @@ msgstr "Navedeni URL nije važeća slikovna datoteka"
msgid "Log in to the app"
msgstr "Prijavljivanje na aplikaciju"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-Pošta"
@@ -269,7 +269,7 @@ msgstr "Nevažeći izvor"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Server je zabležio grešku."
msgid "Image"
msgstr "Slika"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Mora biti važeći broj"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Odaberite valutu među dostupnim opcijama"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Nevažeća vrednost"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Udaljena slika"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL udaljene slike"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Neuspešno preuzimanje slike sa udaljene URL"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Kineski (Uprošćeni)"
msgid "Chinese (Traditional)"
msgstr "Kineski (Tradicionalni)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Status naloga"
msgid "Parent Build"
msgstr "Roditeljski proizvod"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Uključi varijante"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Uključi varijante"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Uključi varijante"
msgid "Part"
msgstr "Deo"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategorija"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr "Ne uključuj stablo"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Proizvod mora biti poništen pre nego što se izbriše"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Potrošni materijal"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Opciono"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Sklapanje"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Praćeno"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Proverljivo"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Neizmirena narudžbina"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Alocirano"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Dostupno"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Po narudžbini"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Nalog za izradu"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Lokacija"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Nalozi za izradu"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Reference naloga za pravljenje"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Referenca naloga za prodaju"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Lokacija izvora"
@@ -861,16 +861,16 @@ msgstr "Status izgradnje"
msgid "Build status code"
msgstr "Kod statusa izgradnje"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Kod serije"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Kod izgradnje za ovaj izlaz"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "datum kreiranja"
@@ -907,120 +907,120 @@ msgstr "izdato od"
msgid "User who issued this build order"
msgstr "Korisnik koji je izdao nalog za izgradnju"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Odgovoran"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Korisnik ili grupa koja je odgovorna za ovaj nalog za izgradnju"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Spoljašnja konekcija"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Link za eksterni URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Prioritet izgradnje"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Prioritet ovog naloga za izgradnju"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Kod projekta"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Kod projekta za ovaj nalog za izgradnju"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Nije uspelo preuzimanje zadataka da bi se dovršila alokacija izgradnje"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Nalog za izgradnju {build} je kompletiran"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Nalog za izgradnju je kompletiran"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "Za delove koji mogu da se prate moraju se dostaviri serijski brojevi"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Nije određen izlaz izgradnje"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Izlaz izgradnje je već kompletiran"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Izlaz izgradnje se ne slaže sa Nalogom za izgradnju"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Količina mora biti veća od nule"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Količina ne sme da bude veća od izlazne količine"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Izlaz izgradnje {serial} nije zadovoljio zahtevane testove"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Stavka porudžbine naloga za izgradnju"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Objekat izgradnje"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Objekat izgradnje"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Količina"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Potrebna količina za nalog za izgradnju"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Stavka izgradnje mora imati izlaz izgradnje, jer je nadređeni deo markiran da može da se prati"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Izabrana stavka zaliha se ne slaže sa porudžbinom sa spiska materijala"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Količina mora da bude 1 za zalihe koje su serijalizovane"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Alocirana količina ({q}) ne sme da bude veća od količine dostupnih zaliha ({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Stavka zaliha je prealocirana"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Stavka zaliha"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Izvor stavke zaliha"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Količina zaliha za alociranje za izgradnju"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Ugradi u"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Stavka zaliha odredišta"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Nivo izgradnje"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Ime dela"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Izlaz izgradnje"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Izlaz izgradnje se ne slaže sa nadređenom izgradnjom"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Izlazni deo se ne slaže sa delom Naloga za Izgradnju"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Ovaj izlaz izgradnje je već kompletiran"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Ovaj izlaz izgradnje nije u potpunosti alociran"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Unesi količinu za izlaz izgradnje"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "Brojčana količina potrebna za delove koji mogu da se prate"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Potrebna je brojčana količina, jer opis materijala sadrži delove koji se mogu pratiti"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Serijski brojevi"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Unesi serijske brojeve za izlaz izgradnje"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Lokacija zaliha za izlaz izgradnje"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Automatski alociraj serijske brojeve"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatski alociraj tražene stavke sa odgovarajućim serijskim brojevima"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Sledeći serijski brojevi već postoje ili su neispravni"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Lista izlaza izgradnje se mora obezbediti"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Lokacija zaliha za otpisane izlaze"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Odbaci alokacije"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Odbaci bilo kojiu alokaciju zaliha za otpisane izlaze"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Razlog za otpisane izlaz(e) izgradnje"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Lokacija za završene izlaze izgradnje"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Prihvati nekompletirane Alokacije"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "kompletiraj izlaze ako zalihe nisu u potpunosti alocirane"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Troši alocirane zalihe"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Troši bilo koje zalihe koje su već alocirane za ovu izgradnju"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Ukloni nekompletirane izlaze"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "Izbriši svei izlaze izgradnje koji nisu kompletirani"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Nije dozvoljeno"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Prihvati kao potrošeno od strane ovog naloga za izgradnju"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Izmesti bre završetka ovog naloga za izgradnju"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Sveukupne izdvojene zalihe"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Šta želite da radite sa viškom stavki u zalihama koje su dodeljene nalogu za izgradnju?"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Neke stavke zaliha su prealocirane"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Prihvati nealocirano"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Prihvati da stavke zaliha nisu u potpunosti alocirane za ovaj nalog za izgradnju"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Tražene zalihe nisu u potpunosti alocirane"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Prihvati nekompletirano"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Prihvati da je traženi broj izlaza izgradnje nekompletan"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Traženi broj izgradnji nije kompletan"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Nalog za izgradnju ima otvoren potčinjene naloge za izgradnju"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Nalog za izgradnju mora biti u stanju produkcije"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Nalog za izgradnju ima nekompletne izlaze"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Porudžbina izgradnje"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Izlaz izgradnje"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Izlaz izgradnje mora da referencira istu izgradnju"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Stavka porudžbine za izradu"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part mora da se referencira istom delu kao u nalogu za izgradnju"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Stavka mora da bude u zalihama"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Dostupna količina ({q}) premašena"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Izlaz izgradnje mora da određen za alokaciju praćenih delova"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Izlaz izgradnje ne može biti određen za alokaciju nepraćenih delova"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Stavke alociranja se moraju odrediti"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Lokacija zaliha koje će da budu izvor delova (ostavi prazno ukoliko uzimate sa bilo koje lokacije)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Isključi lokaciju"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Isključi stavke zaliha za ovu selektovanu lokaciju"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Zamenljive zalihe"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Stavke zaliha koje su na različitim lokacijama se mogu međusobno menjati"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Zamenske zalihe"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Dozvoli alociranje delova koji su zamenski"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Opcionalne stavke"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "Alociraj opcione BOM stavke na nalog za izgradnju"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "Referenca BOM"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "BOM ID dela"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "BOM ime dela"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Deo dobavljača"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Alocirana količina"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Referenca izgradnje"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Ime kategorije dela"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Može da se prati"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Nasleđen"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Dozvoli varijante"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "BOM stavka"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "U proizvodnji"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Spoljašnje zalihe"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Dostupne zalihe"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Dostupne zamenske zalihe"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Dostupne varijante zaliha"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "Na čekanju"
msgid "Cancelled"
msgstr "Otkazano"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Prekoračeni nalog za izgradnju"
msgid "Build order {bo} is now overdue"
msgstr "Nalog za izgradnju {bo} je sada prekoračen"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "je link"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "je datoteka"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Korisnik nema potrebne dozvole da bi izbrisao ove atačmente"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Korisnik nema dozvolu da izbriše ovaj atačment"
@@ -1550,7 +1550,7 @@ msgstr "Nisu obezbeđeni ispravni kodovi valuta"
msgid "No plugin"
msgstr "Nema dodataka"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Naziv koda projekta"
@@ -1617,7 +1617,7 @@ msgstr "Tekstualni ključ mora da bude jedinstven"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Korisnik"
msgid "Price break quantity"
msgstr "Prelomna količina cene"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Cena"
@@ -1652,7 +1652,7 @@ msgstr "Ime ovog zahteva za izmenu stranice"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktivan"
@@ -1849,7 +1849,7 @@ msgstr "Veličina datoteke"
msgid "File size in bytes"
msgstr "Veličina datoteke u bajtovima"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Određen je neispravan tip modela za prilog"
@@ -2058,7 +2058,7 @@ msgstr "Checkbox parametri ne mogu imati jedinice"
msgid "Checkbox parameters cannot have choices"
msgstr "Checkbox parametri ne mogu imati izbore"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Izbori moraju biti jedinstveni"
@@ -2094,7 +2094,7 @@ msgstr "Polje za potvrdu"
msgid "Is this parameter a checkbox?"
msgstr "Da li je ovaj parametar checkbox?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Izbori"
@@ -2106,7 +2106,7 @@ msgstr "Validni izbori za ovaj parametar (razdvojeni zapetom)"
msgid "Selection list for this parameter"
msgstr "Lista izbora za ovaj parametar"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Omogućen"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Nije validan izbor za vrednost parametra"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Šablon"
@@ -2148,7 +2148,7 @@ msgstr "Šablon"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Podaci"
@@ -2156,18 +2156,18 @@ msgstr "Podaci"
msgid "Parameter Value"
msgstr "Vrednost parametra"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Beleška"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Opciona beleška"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Pokrenuto je"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Čekaju se zadaci"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Planirani zadaci"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Propali zadaci"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID zadatka"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Jedinstveni ID zadatka"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Zaključaj"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Vreme zaključavanja"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Naziv zadatka"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funkcija"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Ime funkcije"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argumenti"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Argumenti zadatka"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Ključne reči argumenata"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Ključne reči argumenata zadatka"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Ime datoteke"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Tip modela"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Korisnik nema dozvolu da napravi ili izmeni priloge za ovaj model"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Lista odabira je zaključana"
@@ -2859,8 +2859,8 @@ msgstr "Podrazumevano je da su delovi šabloni"
msgid "Parts can be assembled from other components by default"
msgstr "Podrazumevano je da se delovi mogu sastavljati od drugih komponenti"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponenta"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Primaj izveštaje o greškama"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Primaj notifikacije za sistemske greške"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Poslednje korišćene mašine za štampanje"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Sačuvaj poslednju korišćenu mašinu za štampanje za korisnika"
@@ -3988,33 +3996,33 @@ msgstr "Deo je aktivan"
msgid "Manufacturer is Active"
msgstr "Proizvođač je aktivan"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Deo dobavljača je aktivan"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Interni deo je aktivan"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Dobavljač je aktivan"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Proizvođač"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Kompanija"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Ima zalihe"
@@ -4195,7 +4203,7 @@ msgstr "Beleške o isporuci za internu upotrebu"
msgid "Link to address information (external)"
msgstr "Link za adresne informacije (eksterni)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Deo proizvođača"
@@ -4213,12 +4221,12 @@ msgstr "Izaberi deo"
msgid "Select manufacturer"
msgstr "Izaberi proizvođača"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "Broj dela proizvođača"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Broj dela proizvođača"
@@ -4242,8 +4250,8 @@ msgstr "Jedinice pakovanja moraju biti veće od nule"
msgid "Linked manufacturer part must reference the same base part"
msgstr "Povezani delovi dobavljača moraju referencirati isti osnovni deo"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Dobavljač"
msgid "Select supplier"
msgstr "Izaberi dobavljača"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Jedinica za držanje dobavljačevih zaliha"
@@ -4282,16 +4290,16 @@ msgstr "URL za link dela eksternog dobavljača"
msgid "Supplier part description"
msgstr "Opis dela dobavljača"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "osnovni trošak"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimalna naplata (npr. taksa za slaganje)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Pakovanje"
@@ -4307,7 +4315,7 @@ msgstr "Količina pakovanja"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Ukupna količina dostavljena u jednom pakovanju. Ostaviti prazno za pojedinačne stavke."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "više"
@@ -4339,14 +4347,18 @@ msgstr "Podrazumevana valuta koja se koristi za ovog dobavljača"
msgid "Company Name"
msgstr "Naziv kompanije"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Na zalihama"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Kolona je već mapirana u polje u bazi podataka"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Polje je već mapirano u kolonu sa podacima"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Mapiranje kolona mora biti linkovano da bi se uvezla važeća sesija"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Kolona ne postoji u fajlu sa podacima"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Polje ne postoji u ciljnom modelu"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Izabrano polje je samo za čitanje"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Uvezi sesiju"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Polje"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Kolona"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Indeks vrsta"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Originalni podaci vrste"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Greške"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Važeće"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Nalog"
msgid "Order Complete"
msgstr "Nalog završen"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Interni deo"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Ciljani datum"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Referenca naloga"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Primljeno"
msgid "Number of items received"
msgstr "Broj primljenih stavki"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Kupovna cena"
@@ -5211,8 +5223,8 @@ msgstr "Provereno od strane"
msgid "User who checked this shipment"
msgstr "Korisnik koji je proverio ovu isporuku"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Isporuka"
@@ -5277,7 +5289,7 @@ msgstr "Alocirana količina ne sme da pređe količinu zaliha"
msgid "Allocation quantity must be greater than zero"
msgstr "Količina alokacije mora da bude veća od nule"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Količina mora biti 1 za serijalizovane stavke sa zaliha"
@@ -5393,7 +5405,7 @@ msgstr "Kopiraj dodatne porudžbine"
msgid "Copy extra line items from the original order"
msgstr "Kopiraj dodatne stavke porudžbine sa originalnog naloga"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopiraj parametre"
@@ -5412,216 +5424,216 @@ msgstr "Stavke porudbžine"
msgid "Completed Lines"
msgstr "Završene porudbžine"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Dupliraj nalog"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Odredi opcije za dupliranje ovog naloga"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Nevažeći ID naloga"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Naziv dobavljača"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Nalog ne može biti otkazan"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Dozvoli da nalog bude zatvoren sa nepotpunim porudžbinama"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Nalog ima nepotpune stavke porudžbine"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Nalog nije otvoren"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Automatske cene"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Automatski izračunaj kupovnu cenu na osnovu podataka o delovima dobavljača"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Valuta kupovne cene"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Spoj stavke"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Spoj stavke sa istim delom, odredištem i ciljanim datumom u jednu stavku porudžbine"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "Jedinica za praćenje zaliha"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Interni broj dela"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Interni naziv dela"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Deo dobavljača mora biti određen"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Nalog za kupovinu mora biti određen"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Dobavljač mora da se poklapa sa nalogom za kupovinu"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Nalog za kupovinu mora da se poklapa sa dobavljačem"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Stavka porudbžine"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Izaberi odredišnu lokaciju za primljene stavke"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Unesi šifru ture za nadolazeće stavke sa zaliha"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Datum isteka"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Unesi serijske brojeve za nadolazeće stavke sa zaliha"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Promeni informacije o pakovanju za nadolazeće stavke sa zaliha"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Dodatne beleške za nadolazeće stavke sa zaliha"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Bar kod"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Skeniran bar kod"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Bar kod je već u upotrebi"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Stavke porudžbine moraju biti dostavljene"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Odredišna lokacija mora biti određena"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Pružene vrednosti bar kodova moraju biti jedinstvene"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Isporuke"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Završene isporuke"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Valuta prodajne cene"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Alocirane stavke"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Nisu dostavljeni detalji isporuke"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Stavka porudžbine nije asocirana sa ovim nalogom"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Količina mora biti pozitivna"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Unesi serijske brojeve za alokaciju"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Isporuka je već isporučena"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Isporuka nije povezana sa ovim nalogom"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Nema pronađenih poklapanja za sledeće serijske brojeve"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Sledeći serijski brojevi su nedostupni"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Stavka porudžbine naloga za vraćanje"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Stavka porudžbine se ne poklapa sa nalogom za vraćanje"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Stavka porudžbine je već primljena"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Stavke se mogu primiti samo na osnovu naloga koji su u toku"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "Količina za vraćanje"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Valuta cene porudžbine"
@@ -5732,71 +5744,71 @@ msgstr "Ne uključuj pod-kategorije pod specifičnom kategorijom"
msgid "Has Results"
msgstr "Ima rezultate"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Je revizija"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Ima revizije"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "Spisak materijala validan"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Deo sklopa se može testirati"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Deo komponente se može testirati"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Koristi"
@@ -5805,7 +5817,7 @@ msgstr "Koristi"
msgid "Part Category"
msgstr "Kategorija dela"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Kategorije delova"
@@ -5837,7 +5849,7 @@ msgstr "Podrazumevane ključne reči za delove ove kategorije"
msgid "Icon"
msgstr "Ikonica"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikonica (opciono)"
@@ -5858,7 +5870,7 @@ msgstr "Podrazumevana vrednost"
msgid "Default Parameter Value"
msgstr "Podrazumevana vrednost parametra"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Delovi"
@@ -5973,7 +5985,7 @@ msgstr "Ključne reči dela da bi se poboljšala vidljivost u rezultatima pretra
msgid "Part category"
msgstr "Kategorija dela"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "Interni broj dela"
@@ -6006,7 +6018,7 @@ msgstr "Podrazumevani istek"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Vreme isteka (u danima) za stavke sa zaliha ovog dela"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimalne zalihe"
@@ -6086,756 +6098,756 @@ msgstr "Korisnik koji je kreirao"
msgid "Owner responsible for this part"
msgstr "Vlasnik odgovoran za ovaj deo"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Prodaj više"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Valuta korišćena za vršenje proračuna o cenama"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimalna vrednost spiska materijala"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Minimalna vrednost komponenti delova"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maksimalna vrednost spiska materijala"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Maksimalna vrednost komponenti delova"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimalna kupovna vrednost"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Minimalna istorijska kupovna vrednost"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maksimalna kupovna vrednost"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Maksimalna istorijska kupovna vrednost"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimalna interna cena"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Minimalna cena bazirana na internim sniženjima cena"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maksimalna interna cena"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Maksimalna vrednost bazirana na internim sniženjima cena"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimalna cena dobavljača"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Minimalna cena dela od eksternih dobavljača"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maksimalna cena dobavljača"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Maksimalna cena dela od eksternih dobavljača"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimalna vrednost varijanti"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Izračunata minimalna vrednost varijanti delova"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maksimalna vrednost varijanti"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Izračunata maksimalna vrednost varijanti delova"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimalna vrednost"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Promeni minimalnu vrednost"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maksimalna vrednost"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Promeni maksimalnu vrednost"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Ukupna izračunata minimalna vrednost"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Ukupna izračunata maksimalna vrednost"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimalna prodajna cena"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Minimalna prodajna cena bazirana na osnovu sniženja cena"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maksimalna prodajna cena"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Maksimalna prodajna cena bazirana na osnovu sniženja cena"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Minimalna prodajna vrednost"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Minimalna istorijska prodajna cena"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maksimalna prodajna vrednost"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Maksimalna istorijska prodajna cena"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Deo za popis"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Broj stavki"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Broj individualnih unosa zaliha u vreme popisa"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Ukupne dostupne zalihe za vreme popisa"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Datum"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Datum kada je izvršen popis"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimalna vrednost zaliha"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Procenjena minimalna vrednost trenutnih zaliha"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maksimalna vrednost zaliha"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Procenjena maksimalna vrednost trenutnih zaliha"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Smanjenje prodajne cene dela"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Šablon testa dela"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Nevažeći naziv šablona - mora da uključuje bar jedan alfanumerički karakter"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Test šabloni mogu biti kreirani samo za delove koje je moguće testirati"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Test šablon sa istim ključem već postoji za ovaj deo"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Naziv testa"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Unesi naziv za ovaj test"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Test ključ"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Pojednostavljen ključ za test"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Opis testa"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Unesi opis za ovaj test"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Da li je ovaj test omogućen?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Neophodno"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Da li je neophodno da ovaj test prođe?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Zahteva vrednost"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Da li ovaj test zahteva vrednost prilikom dodavanja rezultata testa?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Zahteva prilog"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Da li ovaj test zahteva fajl kao prilog prilikom dodavanja rezultata testa?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Validni izbori za ovaj test (razdvojeni zapetom)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "Stavke sa spiska materijala se ne mogu modifikovati - sklapanje je zaključano"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "Stavke sa spiska materijala se ne mogu modifikovati - sklapanje varijanti je zaključano"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Izaberi nadređeni deo"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Pod-deo"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Izaberi deo koji će biti korišćen u spisku materijala"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Količina spiskova materijala za ovu stavku sa spiska materijala"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Ova stavka sa spiska materijala je opciona"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Ova stavka sa spiska materijala se može potrošiti (nije praćena u nalozima za izradu)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Referenca stavke sa spiska materijala"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Beleške stavki sa spiska materijala"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Suma"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Suma spiska materijala"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Validirano"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Ova stavka sa spiska materijala je validirana"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Biva nasleđeno"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Ova stavka sa spiska materijala je nasleđivana od spiska materijala za varijante delova"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Stavke sa zaliha za varijante delova se mogu koristiti za ovu stavku sa spiska materijala"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "Količina mora biti ceo broj za delove koji se mogu pratiti"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Zamenski deo mora biti određen"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Zamenska stavka sa spiska materijala"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Zamenski deo ne može biti isti kao glavni deo"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Nadređena stavka sa spiska materijala"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Zamenski deo"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Deo 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Deo 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Izaberi povezan deo"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Beleška za ovu relaciju"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Relacija između delova ne može biti kreirana između jednog istog dela"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Identična veza već postoji"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Nadređena kategorija"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Nadređena kategorija dela"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Podkategorije"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Rezultati"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Broj rezultata napravljenih na osnovu ovog šablona"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Valuta kupovine za ovu stavku sa zaliha"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Originalni deo"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Izaberi originalni deo za duplikaciju"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopiraj sliku"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Kopiraj sliku sa originalnog dela"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Kopiraj spisak materijala"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Kopiraj spisak materijala sa originalnog dela"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Kopiraj parametarske podatke sa originalnog dela"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Kopiraj beleške"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Kopiraj beleške sa originalnog dela"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Inicijalna količina zaliha"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Odredi inicijalnu količinu zaliha za ovaj deo. Ukoliko je količina nula, neće biti dodate zalihe."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Inicijalna lokacija zaliha"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Odredi inicijalnu lokaciju zaliha za ovaj deo"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Izaberi dobavljača (ostavi prazno za preskakanje)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Izaberi proizvođača (ostavi prazno za preskakanje)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Broj dela proizvođača"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Izabrana kompanija nije validan dobavljač"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Izabrana kompanija nije validan proizvođač"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Deo proizvođača koji se poklapa sa ovim brojem dela proizvođača već postoji"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Deo dobavljača koji se opklapa sa ovim brojem dela dobavljača već postoji"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Naziv kategorije"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Izrađivanje"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Stavke sa zaliha"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Revizije"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Ukupne zalihe"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Nealocirane zalihe"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Varijante zaliha"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Dupliraj deo"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Kopiraj inicijalne podatke od drugog dela"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Početne zalihe"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Kreiraj deo sa početnom količinom zaliha"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Informacije o dobavljaču"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Dodaj inicijalne informacije o dobavljaču za ovaj deo"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kopiraj parametre kategorije"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Kopiraj parametarske šablone sa izabrane kategorije dela"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Postojeća slika"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Ime fajla postojeće slike dela"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Fajl sa slikom ne postoji"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Validiraj ceo spisak materijala"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Može se izgraditi"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minimalna cena"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Izmeni izračunatu vrednost za minimalnu cenu"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Minimalna valuta cene"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Maksimalna cena"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Izmeni izračunatu vrednost maksimalne cene"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Maksimalna valuta cene"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Ažuriraj"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Ažuriraj cene za ovaj deo"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Nija moguća konverzija iz dostavljen valute u {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimalna cena ne sme biti veća od maksimalne cene"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimalna cena ne sme biti manja od minimalne cene"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Izaberi nadređeni sklop"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Izaberi komponentu dela"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "Izaberi deo sa kog će se kopirati spisak materijala"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Ukloni postojeće podatke"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Ukloni postojeće stavke sa spiska materijala pre kopiranja"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Uključi nasleđeno"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Uključi stavke sa spiska materijala koje su nasleđene od šablonskih delova"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Preskoči nevažeće vrste"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Omogući ovu opciju za preskakanje nevažećih vrsta"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Kopiraj zamenske delove"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopiraj zamenske delove prilikom duplikacije stavki sa spiska materijala"
@@ -7758,7 +7770,7 @@ msgstr "Paket plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Nije pronađen autor"
@@ -8288,7 +8300,7 @@ msgstr "Izveštaj sa testa za stavku sa zaliha"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Instalirane stavke"
@@ -8361,7 +8373,7 @@ msgstr "Filtriraj po nadređenim lokacijama"
msgid "Include sub-locations in filtered results"
msgstr "Uključi podlokacije u filtriranim rezultatima"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Nadređena lokacija"
@@ -8445,7 +8457,7 @@ msgstr "Datum isteka pre"
msgid "Expiry date after"
msgstr "Datum isteka nakon"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Zastarelo"
@@ -8530,7 +8542,7 @@ msgstr "Podrazumevana ikonica za sve lokacije koje nemaju podešenu ikonicu (opc
msgid "Stock Location"
msgstr "Lokacija zaliha"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Lokacija zaliha"
@@ -8579,7 +8591,7 @@ msgstr "Deo mora biti određen"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Stavka sa zaliha ne može biti locirana u strukturnim lokacijama zaliha!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Stavka sa zaliha ne može biti kreirana za virtuelne delove"
@@ -8624,7 +8636,7 @@ msgstr "Izaberi odgovarajući deo dobavljača za ovu stavku sa zaliha"
msgid "Where is this stock item located?"
msgstr "Gde je locirana ova stavka sa zaliha?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Pakovanje u kom je ova stavka sa zaliha"
@@ -8640,7 +8652,7 @@ msgstr "Da li je ova stavka instalirana u drugu stavku?"
msgid "Serial number for this item"
msgstr "Serijski broj za ovu stavku"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Šifra ture za ovu stavku sa zaliha"
@@ -8753,7 +8765,7 @@ msgstr "Stavka sa zaliha je trenutno u produkciji"
msgid "Serialized stock cannot be merged"
msgstr "Serijalizovane zalihe se ne mogu spojiti"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Dupliraj stavke sa zaliha"
@@ -8877,7 +8889,7 @@ msgstr "Izaberi deo za koji će se generisati serijski broj"
msgid "Quantity of serial numbers to generate"
msgstr "Količina serijskih brojeva koji će se generisati"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "Test šablon za ovaj rezultat"
@@ -8901,222 +8913,222 @@ msgstr "Nadređena stavka"
msgid "Parent stock item"
msgstr "Nadređena stavka sa zaliha"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Koristi pakovanja prilikom dodavanja: količina je definisana brojem pakovanja"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Unesi serijske brojeve za nove stavke"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Dobavljački broj dela"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Isteklo"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Podređene stavke"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "Stavke za praćenje"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Nabavna cena ove stavke, po jedinici ili pakovanju"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "Unesi broj stavka sa zaliha za serijalizaciju"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Količina ne sme da pređe dostupnu količinu zaliha ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Odredišna lokacija zaliha"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Serijski brojevi ne mogu biti dodeljeni ovom delu"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Serijski broj već postoji"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Izaberi stavku za instaliranje"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Količina za instaliranje"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Izaberi količinu stavki za instaliranje"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Dodaj beleške transakcija (opciono)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Količina za instaliranje mora biti najmanje 1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Stavka je nedostupna"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Izabrani deo nije na spisku materijala"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Količina za instaliranje ne sme preći dostupnu količinu"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Odredišna lokacija za deinstalirane stavke"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Izaberi deo u koji će se konvertovati stavka"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Izabrani deo nije validna opcija za konverziju"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Ne može se konvertovati stavka sa dodeljenim delom dobavljača"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Statusni kod stavke sa zaliha"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Izaberi stavke kojoj će se promeniti status"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Nije izabrana stavka"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Podlokacije"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Lokacija nadređenih zaliha"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Deo mora biti za prodaju"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Stavka je alocirana nalogu za prodaju"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Stavka je alocirana nalogu za izradu"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Mušterija kojoj će se dodeliti stavke sa zaliha"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Izabrana kompanija nije mušterija"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Beleške dodeljivanja zaliha"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Lista stavki mora biti dostavljena"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Beleške spajanja zaliha"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Dozvoli neslagajuće dobavljače"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Dozvoli spajanje stavki sa različitim delovima dobavljača"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Dozvoli neslagajući status"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Dozvoli spajanje stavki sa različitim statusnim kodovima"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "Bar dve stavke moraju biti dostavljene"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Nema promena"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Vrednost primarnog ključa stavke"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Stavka nije na zalihama"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Beleške transakcija zaliha"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Admin"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Nalozi za kupovinu"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Nalozi za prodaju"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Nalozi za vraćanje"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Korisničko ime"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Ime"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Ime korisnika"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Prezime"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Prezime korisnika"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Adresa E-pošte korisnika"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Super korisnik"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Da li je ovaj korisnik Super korisnik?"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Da li je nalog ovog korisnika aktivan?"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Vaš nalog je kreiran"
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Molimo vas koristite opciju resetovanja lozinke da biste se prijavili"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Dobrodošli u InvenTree"
diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po
index 4f7b647b34..8c251d42cb 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -104,13 +104,13 @@ msgstr "Ange datum"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Anteckningar"
@@ -215,7 +215,7 @@ msgstr "Angiven URL är inte en giltig bildfil"
msgid "Log in to the app"
msgstr "Logga in på appen"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-postadress"
@@ -269,7 +269,7 @@ msgstr "Ogiltigt val"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Ett fel har loggats av servern."
msgid "Image"
msgstr "Bild"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Välj valuta från tillgängliga alternativ"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Ogiltigt värde"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Fjärransluten bild"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL för fjärrbildsfil"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Kinesiska (Förenklad)"
msgid "Chinese (Traditional)"
msgstr "Kinesiska (Traditionell)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Orderstatus"
msgid "Parent Build"
msgstr "Föregående tillverkning"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Inkludera varianter"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Inkludera varianter"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Inkludera varianter"
msgid "Part"
msgstr "Del"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategori"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Tillverkningen måste avbrytas innan den kan tas bort"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Valfri"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Spårad"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Testbar"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Allokerad"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Konsumerad"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tillgänglig"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Byggorder"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Plats"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Byggordrar"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Tillverknings order referens"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Försäljningsorderreferens"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Källa Plats"
@@ -861,16 +861,16 @@ msgstr "Tillverknings status"
msgid "Build status code"
msgstr "Tillverkning statuskod"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Batchkod"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Batch-kod för denna byggutdata"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Skapad"
@@ -907,120 +907,120 @@ msgstr "Utfärdad av"
msgid "User who issued this build order"
msgstr "Användare som utfärdade denna tillverknings order"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Ansvarig"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Extern länk"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Länk till extern URL"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Projektkod"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Tillverknings order {build} har slutförts"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "En tillverknings order har slutförts"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Ingen byggutgång angiven"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Byggutgång är redan slutförd"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Byggutgång matchar inte bygg order"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Bygg objekt"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Bygg objekt"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Antal"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Antal måste vara 1 för serialiserat lager"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Lagerposten är överallokerad"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Artikel i lager"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Källa lagervara"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Lagersaldo att allokera för att bygga"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Installera till"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Destination lagervara"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Delnamn"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Bygg utdata"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Byggutdata matchar inte överordnad version"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Serienummer"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Ange serienummer för att tillverkade produkter"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "En lista över tillverkade produkter måste anges"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Lagerplats för skrotade produkter"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Ignorera alla lagerallokeringar för skrotade produkter"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Plats för färdiga produkter"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Slutför utfall om lager inte har tilldelats fullt ut"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Ta bort ofullständiga produkter"
-#: build/serializers.py:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Acceptera ofullständig"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Tillverknings ordern är ofullständig"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Spårbar"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Ärvd"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Tillåt varianter"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "Avbruten"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Är länk"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Är fil"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Användare"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Pris"
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1849,7 +1849,7 @@ msgstr "Filstorlek"
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr "Kryssruta"
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Val"
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Aktiverad"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Mall"
@@ -2148,7 +2148,7 @@ msgstr "Mall"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Data"
@@ -2156,18 +2156,18 @@ msgstr "Data"
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Väntande uppgifter"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Schemalagda uppgifter"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Misslyckade uppgifter"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Uppgifts-ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Lås"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Uppgiftsnamn"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Funktion"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Funktionsnamn"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argument"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Filnamn"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Modelltyp"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Komponent"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Tillverkare"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Företag"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr "Välj del"
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "MPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Leverantör"
msgid "Select supplier"
msgstr "Välj leverantör"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr "Företagsnamn"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "I lager"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Fält"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Kolumn"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Radindex"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Fel"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Giltig"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Intern del"
@@ -4918,7 +4930,7 @@ msgstr "Startdatum"
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Måldatum"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Status"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr "Kontrollerad av"
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr "Allokeringsmängden måste vara större än noll"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Kopiera parametrar"
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Leverantörsnamn"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Streckkod"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr "Har resultat"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Är variant"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Använder"
@@ -5805,7 +5817,7 @@ msgstr "Använder"
msgid "Part Category"
msgstr "Delkategori"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr "Ikon"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikon (valfritt)"
@@ -5858,7 +5870,7 @@ msgstr "Standardvärde"
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Artiklar"
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr "Delkategori"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Datum"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Validerad"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Del 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Del 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Underkategorier"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Resultat"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Originaldel"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Kopiera bild"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Kopiera test"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategorinamn"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Revisioner"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Uppdatera"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Hoppa över ogiltiga rader"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Ingen förändring"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr "Primär grupp"
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Admin"
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Användarnamn"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Förnamn"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Förnamn på användaren"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Efternamn"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Efternamn på användaren"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Avsändarens E-postadress"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superanvändare"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Är den här användaren en superanvändare"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Är detta användarkonto aktivt"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Lösenord"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Ditt konto har skapats."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Använd funktionen för lösenordsåterställning för att logga in"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Välkommen till InvenTree"
diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po
index f546f6c0c8..1fe5cc8972 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -104,13 +104,13 @@ msgstr "ป้อนวันที่"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "หมายเหตุ"
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "อีเมล"
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr ""
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "ต้องเป็นตัวเลข"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "สกุลเงิน"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr ""
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr ""
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr ""
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "สถานที่"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr "ออกโดย"
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "จำนวนต้องมีค่ามากกว่า 0"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr ""
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr ""
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr ""
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr "ยกเลิกแล้ว"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "ผู้ใช้งาน"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr ""
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr ""
@@ -2148,7 +2148,7 @@ msgstr ""
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr ""
@@ -2156,18 +2156,18 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr ""
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "ชื่อไฟล์"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr ""
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr ""
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr ""
@@ -4213,12 +4221,12 @@ msgstr ""
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr ""
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr ""
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr ""
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr ""
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "สถานะ"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "ชิ้นส่วน"
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr ""
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr ""
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr ""
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr ""
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr ""
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr ""
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "ยินดีต้อนรับเข้าสู่ Inventree"
diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po
index 34261b0039..51b87a5749 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -104,13 +104,13 @@ msgstr "Tarih giriniz"
msgid "Invalid decimal value"
msgstr "Geçersiz ondalık değer"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Notlar"
@@ -215,7 +215,7 @@ msgstr "Sağlanan URL geçerli bir görsel dosyası değil"
msgid "Log in to the app"
msgstr "Uygulamaya giriş yapın"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-posta"
@@ -269,7 +269,7 @@ msgstr "Geçersiz seçim"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Bir hafta sunucu tarafından kayıt edildi."
msgid "Image"
msgstr "Görsel"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Para birimi"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Mevcut seçeneklerden para birimini seçin"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "Bu alan boş olamaz."
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Geçersiz değer"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Uzak Görsel"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "Uzak görselin dosya URL'si"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "Uzak URL'den görsel indirme etkin değil"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "Uzak URL'den görsel indirilemedi"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "Geçersiz içerik türü biçimi"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "İçerik türü bulunamadı"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "İçerik türü gerekli mixin sınıfı ile eşleşmemektedir"
@@ -536,11 +536,11 @@ msgstr "Çince (Basitleştirilmiş)"
msgid "Chinese (Traditional)"
msgstr "Çince (Geleneksel)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Güncelleme mevcut"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree için güncelleme mevcut"
@@ -561,21 +561,21 @@ msgstr "Sipariş Durumu"
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "Varyantları Dahil Et"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "Varyantları Dahil Et"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "Varyantları Dahil Et"
msgid "Part"
msgstr "Parça"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Kategori"
@@ -665,89 +665,89 @@ msgstr "Maksimum Tarih"
msgid "Exclude Tree"
msgstr "Ağacı Hariç Tut"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "Üretim silinemeden önce iptal edilmelidir"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Sarf Malzemesi"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "İsteğe Bağlı"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Montaj"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "İzlenen"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Test Edilebilir"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "Sipariş Açık"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Tahsis Edildi"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Tüketildi"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Mevcut"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Siparişte"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Üretim Emri"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Konum"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "Çıktı"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Çıktı stok kalemi ID'sine göre filtrele. Takılmamış üretim kalemlerini bulmak için ‘null’ kullan."
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Üretim Emirleri"
@@ -783,9 +783,9 @@ msgstr "Hedef tarih başlangıç tarihinden sonra olmalıdır"
msgid "Build Order Reference"
msgstr "Üretim Emri Referansı"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Satış Emri Referansı"
msgid "Sales Order to which this build is allocated"
msgstr "Bu üretimin tahsis edildiği satış siparişi"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Kaynak Konum"
@@ -861,16 +861,16 @@ msgstr "Üretim Durumu"
msgid "Build status code"
msgstr "Üretim durum kodu"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Bu üretim çıktısının parti kodu"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
@@ -907,120 +907,120 @@ msgstr "Düzenleyen"
msgid "User who issued this build order"
msgstr "Bu üretim emrini düzenleyen kullanıcı"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "Bu üretim emrinden sorumlu kullanıcı veya grup"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Üretim Önceliği"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Bu üretim emrinin önceliği"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Proje Kodu"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Bu üretim emri için proje kodu"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "Açık alt üretim işlemleri varken üretim emri tamamlanamaz"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "Eksik çıktılar varken üretim emri tamamlanamaz"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Üretim tahsisatını tamamlamak için boşaltma görevi başarısız oldu"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "{build} üretim emri tamamlandı"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Bir üretim emri tamamlandı"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "İzlenebilir parçalar için seri numaraları sağlanmalıdır"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Hiçbir üretim çıktısı belirtilmedi"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Üretim çıktısı zaten tamamlanmış"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "Üretim çıktısı, üretim emri ile eşleşmiyor"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "Miktar çıktı miktarından büyük olamaz"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "Üretim çıktısı tüm gerekli testleri geçmedi"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "{serial} üretim çıktısı gerekli testleri geçmedi"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "Tahsis edilen stok kalemleri hâlâ üretimde"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "Tahsisli kalemler içeren bir üretim çıktısı kısmi olarak tamamlanamaz"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Üretim Emri Satırı"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Üretim nesnesi"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Üretim nesnesi"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Miktar"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Üretim emri için gereken miktar"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "Tüketilen Stok Miktarı"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Ana parça izlenebilir olarak işaretlendiğinden, üretim kalemi bir üretim çıktısı belirtmelidir"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "Seçilen stok kalemi BOM satırı ile eşleşmiyor"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tahsis edilen miktar ({q}) mevcut stok miktarını ({a}) aşmamalıdır"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "Üretime tahsis edilecek stok miktarı"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Kur"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Üretim Seviyesi"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Parça Adı"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Üretim Çıktısı"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "Üretim çıktısı üst üretim ile eşleşmiyor"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "Çıktı parçası üretim emri parçası ile eşleşmiyor"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "Bu üretim çıktısı zaten tamamlandı"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "Bu üretim çıktısı tam tahsis edilmedi"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "Üretim çıktısının miktarını girin"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "İzlenebilir parçalar için tamsayı miktar gerekir"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Ürün ağacı izlenebilir parçalar içerdiğinden tamsayı miktar gereklidir"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Seri Numaraları"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "Üretim çıktıları için seri numaraları girin"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Üretim çıktısı için stok konumu"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Seri Numaralarını Otomatik Tahsis Et"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Eşleşen seri numaralı gerekli kalemleri otomatik tahsis et"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "Şu seri numaraları zaten varlar veya geçersizler"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "Bir üretim çıktıları listesi sağlanmalıdır"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Hurdaya ayrılan çıktılar için stok konumu"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Ayırmaları İptal Et"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok ayırmalarını iptal et"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Üretim çıktı(larını) hurdaya ayırma nedeni"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Tamamlanan üretim çıktıları içi konum"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Tamamlanmamış Ayırmayı Onayla"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Stok henüz tamamen tahsis edilmemşse çıktıları tamamla"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Tahsis Edilen Stoku Tüket"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "Bu üretim için zaten tahsis edilmiş olan tüm stokları tüket"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "Tamamlanmamış Çıktıları Kaldır"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "Henüz tamamlanmamış tüm üretim çıktılarını sil"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "İzin verilmedi"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "Bu üretim emri tarafından tüketildi olarak kabul et"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "Bu üretim emrini tamamlamadan önce tahsisi kaldır"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Aşırı Tahsis Edilmiş Stok"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Üretim emrine atanan ek stok kalemlerini nasıl işlemek istersiniz"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "Bazı stok kalemleri aşırı tahsis edilmiştir"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Tahsis Edilmeyeni Kabul Et"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Stok kalemlerinin bu üretim emrine tamamen tahsis edilmediğini kabul et"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "Gerekli stok tamamen tahsis edilemedi"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Tamamlanmamış Kabul et"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Gereken miktarda üretim çıktısının tamamlanmadığını kabul et"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "Gereken üretim miktarı tamamlanmadı"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Üretim emrinin açık alt üretim emirleri var"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Üretim emri üretim durumunda olmalıdır"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "Üretim emrinde eksik çıktılar var"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Üretim Satırı"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Üretim çıktısı"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "Üretim çıktısı aynı üretimi göstermelidir"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Üretim Satırı"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part üretim emri ile aynı parçayı göstermelidir"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Kalem stokta olmalıdır"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Mevcut miktar ({q}) aşıldı"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "İzlenen parçaların tahsisi için üretim çıktısı belirtilmelidir"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "İzlenmeyen parçaların tahsisi için üretim çıktısı belirtilemez"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Ayrılma ögeleri sağlanmalıdır"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Parçaların alınacağı stok konumu (herhangi bir konumdan almak için boş bırakın)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Konumu Hariç Tut"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "Bu seçilen konumdan stok kalemlerini hariç tut"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Birbirinin Yerine Kullanılabilir Stok"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Birden fazla konumdaki stok kalemleri birbirinin yerine kullanılabilir"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Yedek Stok"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Yedek parçaların ayrılmasına izin ver"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "İsteğe Bağlı Ögeler"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "İsteğe bağlı BOM kalemlerini üretim emrine tahsis et"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "Tüm Ögeler"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr "Takip edilmeyen kalemler"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr "Takipli Kalemler"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "Kalem Türü"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr "Otomatik tahsis edilecek ürün tipini seçin"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "ML Referansı"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "BOM Parça ID"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "ML Parça Adı"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "Kur"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "Yap"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Tahsis Edilen Miktar"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Üretim Referansı"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Parça Kategorisi Adı"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Takip Edilebilir"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Devralınmış"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Varyantlara İzin Ver"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "ML Ögesi"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Üretimde"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "Üretim için Planlandı"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Harici Stok"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Mevcut Stok"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Mevcut Yedek Stok"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Mevcut Varyant Stok"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "Tüketilen miktar tahsis edilen miktarı aşıyor"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "Stok tüketimi için isteğe bağlı notlar"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "Üretim kalemi doğru üretim emrini göstermelidir"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "Üretim kalemi tahsisini yinele"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "Üretim satırı doğru üretim emrini göstermelidir"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "Üretim satırı tahsisini yinele"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "En az bir kalem veya satır sağlanmalıdır"
@@ -1494,7 +1494,7 @@ msgstr "Beklemede"
msgid "Cancelled"
msgstr "İptal edildi"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Geciken Üretim Emri"
msgid "Build order {bo} is now overdue"
msgstr "{bo} üretim emri şimdi gecikti"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Link Olanlar"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "Dosya Olanlar"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Kullanıcının bu ekleri silmek için izni yok"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Kullanıcının bu eki silmek için izni yok"
@@ -1550,7 +1550,7 @@ msgstr "Geçerli bir para birimi kodu sağlanmamış"
msgid "No plugin"
msgstr "Eklenti yok"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Proje Kodu Etiketi"
@@ -1617,7 +1617,7 @@ msgstr "Anahtar dizesi benzersiz olmalı"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Kullanıcı"
msgid "Price break quantity"
msgstr "Fiyat kademesi miktarı"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Fiyat"
@@ -1652,7 +1652,7 @@ msgstr "Bu web kancası için ad"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktif"
@@ -1849,7 +1849,7 @@ msgstr "Dosya Boyutu"
msgid "File size in bytes"
msgstr "Bayt cinsinden dosya boyutu"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "Ek için belirtilen model türü geçersiz"
@@ -2058,7 +2058,7 @@ msgstr "Onay kutusu parametrelerinin birimleri olamaz"
msgid "Checkbox parameters cannot have choices"
msgstr "Onay kutusu parametrelerinin seçenekleri olamaz"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Seçenekler eşsiz olmalıdır"
@@ -2094,7 +2094,7 @@ msgstr "Onay kutusu"
msgid "Is this parameter a checkbox?"
msgstr "Bu parametre bir onay kutusu mu?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Seçenekler"
@@ -2106,7 +2106,7 @@ msgstr "Bu parametre için geçerli seçenekler (virgül ile ayrılmış)"
msgid "Selection list for this parameter"
msgstr "Bu parametre için seçim listesi"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Etkin"
@@ -2126,7 +2126,7 @@ msgstr "Parametreler"
msgid "Invalid choice for parameter value"
msgstr "Parametre değeri için geçersiz seçim"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "Parametre için belirtilen model türü geçersiz"
@@ -2140,7 +2140,7 @@ msgstr "Bu parametre için hedef modelin ID'si"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Şablon"
@@ -2148,7 +2148,7 @@ msgstr "Şablon"
msgid "Parameter template"
msgstr "Parametre şablonu"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Veri"
@@ -2156,18 +2156,18 @@ msgstr "Veri"
msgid "Parameter Value"
msgstr "Parametre Değeri"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Not"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "İsteğe bağlı not alanı"
@@ -2391,85 +2391,85 @@ msgstr "Ayarın bir ortam değişkeni tarafından üstüne yazılıp yazılmadı
msgid "Override"
msgstr "Üstüne Yaz"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Çalışıyor"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Bekleyen Görevler"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Planlanan Görevler"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Başarısız Görevler"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "Görev ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "Benzersiz Görev ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Kilit"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Kilit Zamanı"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Görev Adı"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Fonksiyon"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Fonksiyon Adı"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Argümanlar"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Görev Argümanları"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Anahtar Argümanlar"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Anahtar görev argümanları"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Dosya adı"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "Model Tipi"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Kullanıcının bu model için ek oluşturma veya düzenleme izni yok"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "Kullanıcı bu model için parametre oluşturma veya düzenleme iznine sahip değil"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "Seçim listesi kilitli"
@@ -2859,8 +2859,8 @@ msgstr "Parçaları varsayılan olan şablondur"
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Bileşen"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "Devre dışı: Tam kategori yolu fareyle üzerine gelindiğinde bir araç ipucu olarak görüntülenir. Etkin: Tam kategori yolu düz metin olarak görüntülenir."
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Hata raporları alın"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Sistem hataları için bildirim alın"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "Son kullanılan yazdırma makineleri"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "Son kullanılan yazdırma makinelerini bir kullanıcı için kaydet"
@@ -3988,33 +3996,33 @@ msgstr "Parça Aktif"
msgid "Manufacturer is Active"
msgstr "Üretici Aktif"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Tedarikçi Parçası Aktif"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr "Ana Tedarikçi Parçası"
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Dahili Parça Aktif"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "Tedarikçi Aktif"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Üretici"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Şirket"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "Stoku Var"
@@ -4195,7 +4203,7 @@ msgstr "Dahili kullanım için sevkiyat notları"
msgid "Link to address information (external)"
msgstr "Adres bilgisine bağlantı (harici)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Üretici Parçası"
@@ -4213,12 +4221,12 @@ msgstr "Parça seçin"
msgid "Select manufacturer"
msgstr "Üretici seçin"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
@@ -4242,8 +4250,8 @@ msgstr "Paket birimleri sıfırdan büyük olmalıdır"
msgid "Linked manufacturer part must reference the same base part"
msgstr "Bağlantılı üretici parçası aynı temel parçayı referans almalıdır"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Tedarikçi"
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Tedarikçi stok kodu"
@@ -4282,16 +4290,16 @@ msgstr "Harici tedarikçi parçası bağlantısı için URL"
msgid "Supplier part description"
msgstr "Tedarikçi parçası açıklaması"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimum ücret (örneğin stoklama ücreti)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Paketleme"
@@ -4307,7 +4315,7 @@ msgstr "Paket Miktarı"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Tek bir pakette tedarik edilen toplam miktar. Tekli ürünler için boş bırakın."
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "çoklu"
@@ -4339,14 +4347,18 @@ msgstr "Bu tedarikçi için kullanılan varsayılan para birimi"
msgid "Company Name"
msgstr "Şirket Adı"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Stokta"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "Fiyat Kademeleri"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "Veri dışa aktarma sırasında hata oluştu"
@@ -4451,67 +4463,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "Kayıt için mevcut veritabanı tanımlayıcısı"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "Sütun zaten bir veritabanı alanına eşlenmiştir"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "Alan zaten bir veri sütununa eşlenmiştir"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "Sütun eşlemesi geçerli bir içe aktarma oturumuna bağlanmalıdır"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "Sütun veri dosyasında bulunmuyor"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "Alan hedef modelde bulunmuyor"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "Seçilen alan salt okunurdur"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "Oturumu İçe Aktar"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "Alan"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "Sütun"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "Satır İndeksi"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "Orijinal satır verisi"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "Hatalar"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Geçerli"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "Mevcut kayıtları güncellemek için ID gereklidir."
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "Sağlanan ID ile kayıt bulunamadı"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "Sağlanan ID biçimi geçersiz"
@@ -4821,7 +4833,7 @@ msgstr "Sipariş"
msgid "Order Complete"
msgstr "Sipariş Tamamlandı"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Dahili Parça"
@@ -4918,7 +4930,7 @@ msgstr "Başlangıç tarihi"
msgid "Scheduled start date for this order"
msgstr "Bu üretim emri için planlanan başlangıç tarihi"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Sipariş referansı"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Durum"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Teslim Alındı"
msgid "Number of items received"
msgstr "Teslim alınan miktar"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Alış Fiyatı"
@@ -5211,8 +5223,8 @@ msgstr "Kontrol Eden"
msgid "User who checked this shipment"
msgstr "Bu sevkiyatı kontrol eden kullanıcılar"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Sevkiyat"
@@ -5277,7 +5289,7 @@ msgstr "Tahsis miktarı stok miktarını aşamaz"
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar 1 olmalıdır"
@@ -5393,7 +5405,7 @@ msgstr "Ek Kalemleri Kopyala"
msgid "Copy extra line items from the original order"
msgstr "Orijinal siparişten ek kalemleri kopyala"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Parametreleri Kopyala"
@@ -5412,216 +5424,216 @@ msgstr "Satırlar"
msgid "Completed Lines"
msgstr "Tamamlanan Satırlar"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "Siparişin Kopyasını Oluştur"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "Bu siparişin kopyasını oluşturmak için seçenekleri belirtin"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "Geçersiz sipariş ID"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Tedarikçi Adı"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Sipariş iptal edilemez"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "Satır eksiği olan siparişin kapatılmasına izin ver"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "Siparişin eksik satırları var"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Sipariş açık değil"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "Otomatik Fiyatlandırma"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "Tedarikçi parça verilerine göre satın alma fiyatını otomatik olarak hesapla"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Satın alma fiyatı para birimi"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "Kalemleri Birleştir"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Aynı parça, hedef ve hedef tarihe sahip kalemleri tek bir satırda birleştir"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Dahili Parça Numarası"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "Dahili Parça Adı"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Tedarikçi parçası belirtilmeli"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Satın alma siparişi belirtilmeli"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Tedarikçi satın alma siparişi ile eşleşmelidir"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Satın alma siparişi tedarikçi ile eşleşmelidir"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Satır"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Teslim alınan kalemler için varış konumunu seçin"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Gelen stok kalemleri için parti numarası girin"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Son Kullanma Tarihi"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "Gelen stok kalemleri için son kullanma tarihi girin"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Gelen stok kalemlerinin seri numaralarını girin"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "Gelen stok kalemlerinin paketleme bilgilerini geçersiz kıl"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "Gelen stok kalemleri için ek not"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Barkod"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Taranan barkod"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Barkod zaten kullanımda"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Satırlar sağlanmalıdır"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Hedef konum belirtilmelidir"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Sağlanan barkod değerleri benzersiz olmalıdır"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "Sevkiyatlar"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Tamamlanan Sevkiyatlar"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr "Tahsis Edilen Kalemler"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Satış para birimi"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "Tahsis Edilen Kalemler"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Sevkiyat bilgileri sağlanmadı"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "Ürün kalemi bu siparişle ilişkilendirilmemiştir"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Miktar pozitif olmalıdır"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Tahsis edilecek seri numaralarını girin"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Sevkiyat zaten sevk edildi"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "Sevkiyat bu sipariş ile ilişkilendirilmemiştir"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Şu seri numaraları için bir eşleşme bulunamadı"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "Şu seri numaraları mevcut değildir"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "İade siparişi kalemi"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "Ürün kalemi iade siparişi ile eşleşmiyor"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Ürün kalemi zaten teslim alındı"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "Ürün kalemleri yalnızca işlemdeki siparişlere istinaden teslim alınabilir"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "İade olacak miktar"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Satır para birimi"
@@ -5732,71 +5744,71 @@ msgstr "Belirtilen kategorideki alt kategorileri hariç tut"
msgid "Has Results"
msgstr "Sonuçları Olanlar"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "Varyant mı"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "Revizyon mu"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "Revizyonu Olanlar"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "BOM Geçerli"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "Kategorileri Kademele"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "Etkin ise, verilen kategorinin alt kategorilerindeki ögeleri dahil et"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Sayısal kategori ID veya 'null' sabitine göre filtrele"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr "Montaj parçası etkin"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr "Montaj parçası takip edilebilir"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "Montaj test edilebilir"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr "Bileşen etkin"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr "Bileşen takip edilebilir"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "Bileşen test edilebilir"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr "Bileşen bir montaj parçası"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr "Bileşen sanal"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr "Stok mevcut"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "Kullanımlar"
@@ -5805,7 +5817,7 @@ msgstr "Kullanımlar"
msgid "Part Category"
msgstr "Parça Kategorisi"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Parça Kategorileri"
@@ -5837,7 +5849,7 @@ msgstr "Bu kategoridaki parçalar için varsayılan anahtar kelimeler"
msgid "Icon"
msgstr "Simge"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Simge (isteğe bağlı)"
@@ -5858,7 +5870,7 @@ msgstr "Varsayılan Değer"
msgid "Default Parameter Value"
msgstr "Varsayılan Parametre Değeri"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Parçalar"
@@ -5973,7 +5985,7 @@ msgstr "Arama sonuçlarında görünürlüğü artırmak için parça anahtar ke
msgid "Part category"
msgstr "Parça kategorisi"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "DPN"
@@ -6006,7 +6018,7 @@ msgstr "Varsayılan Son Kullanma"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Bu parçanın stok kalemleri için son kullanma süresi (gün olarak)"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Minimum Stok"
@@ -6086,756 +6098,756 @@ msgstr "Oluşturan Kullanıcı"
msgid "Owner responsible for this part"
msgstr "Bu parçanın sorumlu sahibi"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Birden fazla sat"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "Fiyat hesaplamalarını önbelleğe almak için kullanılan para birimi"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Minimum BOM Maliyeti"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Bileşenlerin minimum maliyeti"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Maksimum BOM Maliyeti"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Bileşenlerin maksimum maliyeti"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Minimum Satın Alma Maliyeti"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Minimum tarihsel satın alma maliyeti"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Maksimum Satın Alma Maliyeti"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "Maksimum tarihsel satın alma maliyeti"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Minimum Dahili Fiyat"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "Dahili fiyat kademelerine dayalı minimum maliyet"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Maksimum Dahili Fiyat"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "Dahili fiyat kademelerine dayalı maksimum maliyet"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Minimum Tedarikçi Fiyatı"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "Parça için minimum dış tedarikçi fiyatı"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Maksimum Tedarikçi Fiyatı"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "Parça için maksimum dış tedarikçi fiyatı"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Minimum Varyant Maliyeti"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "Varyant parçaların hesaplanan minimum maliyeti"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Maksimum Varyant Maliyeti"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "Varyant parçaların hesaplanan maksimum maliyeti"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Minimum Maliyet"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Minimum maliyeti geçersiz kıl"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Maksimum Maliyet"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Maksimum maliyeti geçersiz kıl"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Hesaplanan genel minimum maliyet"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Hesaplanan genel maksimum maliyet"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Minimum Satış Fiyatı"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "Fiyat kademelerine dayalı minimum satış fiyatı"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Maksimum Satış Fiyatı"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Fiyat kademelerine dayalı maksimum satış fiyatı"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Minimum Satış Maliyeti"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Minimum tarihsel satış fiyatı"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Maksimum Satış Maliyeti"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Maksimum tarihsel satış fiyatı"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Stok sayımı için parça"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Kalem Sayısı"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "Sayım anındaki tekil stok kaydı sayısı"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "Sayım anındaki toplam mevcut stok"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Tarih"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Stok sayımının yapıldığı tarih"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Minimum Stok Maliyeti"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "Mevcut stokun tahmini minimum maliyeti"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Maksimum Stok Maliyeti"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "Mevcut stokun tahmini maksimum maliyeti"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "Parça Satış Fiyat Kademesi"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "Parça Test Şablonu"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "Geçersiz şablon adı - en az bir alfasayısal karakter içermelidir"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "Test şablonları sadece test edilebilir paçalar için oluşturulabilir"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "Aynı anahtara sahip test şablonu parça için zaten mevcut"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Test için bir ad girin"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "Test Anahtarı"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "Test için basitleştirilmiş anahtar"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Bu test için açıklama girin"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "Bu test etkinleştirildi mi?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Değer Gerektirir"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "Bir test sonucu eklerken bu test bir değer gerektirir mi?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Ek Gerektirir"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Bir test sonucu eklerken bu test bir dosya eki gerektirir mi?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "Bu test için geçerli seçenekler (virgül ile ayrılmış)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "BOM kalemi değiştirilemez - montaj kilitlidir"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "BOM kalemi değiştirilemez - varyant montajı kilitlidir"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Üst parçayı seçin"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Alt parça"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "BOM'da kullanılacak parçayı seçin"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Bu BOM kalemi için BOM miktarı"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Bu BOM kalemi isteğe bağlıdır"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Bu BOM kalemi bir sarf malzemesidir (üretim emirlerinde izlenmez)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "Hazırlık Payı"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "Bir üretimdeki hazırlık kayıplarını telafi etmek için gereken ek miktar"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "Fire"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "Bir üretim için tahmini fire oranı, yüzde olarak ifade edilir (0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "Kat Yuvarlama"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "Gerekli üretim miktarını bu değerin en yakın katına yuvarlayın"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "BOM kalemi referansı"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "BOM kalemi notları"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Sağlama Toplamı"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "BOM satırı sağlama toplamı"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Doğrulandı"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Bu BOM kalemi doğrulandı"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Devralınır"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Bu BOM kalemi, varyant parçaların BOM'larından devralınmıştır"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Varyant parçaların stok kalemleri bu BOM kalemi için kullanılabilir"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "İzlenebilir parçalar için miktar tamsayı olmalıdır"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Alt parça belirtilmelidir"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "BOM Kalemi Muadili"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "Muadil parça ile asıl parça aynı olamaz"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Üst BOM kalemi"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Muadil parça"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Parça 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Parça 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "İlgili Parçayı Seçin"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "Bu ilişki için not"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "Bir parça ile kendisi arasında parça ilişkisi oluşturulamaz"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Kopyalanan ilişki zaten mevcut"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "Üst Kategori"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "Üst parça kategorisi"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Alt kategoriler"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Sonuçlar"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "Bu şablon ile ilişkilendirilmiş sonuç sayısı"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "Bu stok kaleminin alış para birimi"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "Dosya bir görsel değil"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Orijinal Parça"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Kopyalanacak orijinal parçayı seçin"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Görseli Kopyala"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Orijinal parçadan görseli kopyala"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "BOM'u Kopyala"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "Orijinal parçadan ürün ağacını kopyala"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "Orijinal parçadan parametreleri kopyala"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Notları Kopyala"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Orijinal parçadan notları kopyala"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "Testleri Kopyala"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "Orijinal parçadan test şablonlarını kopyala"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Başlangıç Stok Miktarı"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Bu parça için başlangıç stok miktarını belirtin. Miktar sıfır ise, stok eklenmez."
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Başlangıç Stok Konumu"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "Bu parça için başlangıç stok konumunu belirtin"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Tedarikçiyi seçin (veya atlamak için boş bırakın)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Üreticiyi seçin (veya atlamak için boş bırakın)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Üretici parça numarası"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "Seçilen şirket geçerli bir tedarikçi değildir"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "Seçilen şirket geçerli bir üretici değildir"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "Bu MPN ile eşleşen üretici parçası zaten mevcut"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "Bu SKU ile tedarikçi parçası zaten mevcut"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Kategori Adı"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Üretiliyor"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "Bu parçanın şu anda üretimde olan miktarı"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Bu parçanın üretilmesi planlanan açık miktarı"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Stok Kalemleri"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "Revizyonlar"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Toplam Stok"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "Tahsis Edilmemiş Stok"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "Varyant Stoku"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Parçanın Kopyasını Oluştur"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "Başlangıç verisini diğer parçadan kopyala"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Başlangıç Stoku"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "Başlangıç stok miktarı ile parça oluştur"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "Tedarikçi Bilgileri"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "Bu parça için ilk tedarikçi bilgilerini ekleyin"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Kategori Parametrelerini Kopyala"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "Seçilen parça kategorisinden parametre şablonlarını kopyala"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Mevcut Görsel"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "Mevcut parça görselinin dosya adı"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Görsel dosyası mevcut değil"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Tüm ürün ağacını doğrula"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Üretebilir Miktar"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "Üretim Emirleri için Gerekli"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "Üretim Emirlerine Tahsis Edildi"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "Satış Siparişleri için Gerekli"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "Satış Siparişlerine Tahsis Edildi"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr "Parça DPN"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr "Parça Açıklaması"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Stok sayımı bilgisi oluşturmak üzere bir parça (ve varsa varyantlarını) seçin"
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Kategorideki (ve alt kategorilerdeki) tüm parçaları dahil etmek için bir kategori seçin"
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Konumda (ve alt konumlarda) stoğu bulunan tüm parçaları dahil etmek için bir konum seçin"
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr "Stok Sayımı Kayıtları Oluşturun"
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr "Seçili parçalar için stok sayımı girdilerini kaydedin"
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr "Rapor Oluştur"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr "Seçili parçalar için stok sayımı raporu oluşturun"
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Minimum Fiyat"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Minimum fiyat için hesaplanan değeri geçersiz kıl"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Minimum fiyat para birimi"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Maksimum Fiyat"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Maksimum fiyat için hesaplanan değeri geçersiz kıl"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Maksimum fiyat para birimi"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Güncelle"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Bu parçanın fiyatlandırmasını güncelle"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Sağlanan para birimlerinden {default_currency} para birimine dönüştürülemedi"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimum fiyat maksimum fiyattan yüksek olamaz"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimum fiyat minimum fiyattan düşük olamaz"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr "Miktar sıfır veya daha büyük olmalıdır"
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "Üst montajı seçin"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "Bileşeni seçin"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "BOM'u kopyalanacak parçayı seçin"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Mevcut Verileri Temizle"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "Kopyalamadan önce mevcut BOM kalemlerini temizle"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Devralınanı Dahil Et"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "Şablon parçalardan devralınan BOM kalemlerini dahil et"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Geçersiz Satırları Atla"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "Geçersiz satırları atlamak için bu seçeneği etkinleştir"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Muadil Parçaları Kopyala"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "BOM kalemlerinin kopyasını oluştururken muadil parçaları kopyala"
@@ -7758,7 +7770,7 @@ msgstr "Paket Eklenti"
msgid "Plugin"
msgstr "Eklenti"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Yazar bulunamadı"
@@ -8288,7 +8300,7 @@ msgstr "Stok Kalemi Test Raporu"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Takılı Kalemler"
@@ -8361,7 +8373,7 @@ msgstr "Üst seviye konumlara göre filtrele"
msgid "Include sub-locations in filtered results"
msgstr "Filtrelenmiş sonuçlara alt konumları dahil et"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "Üst Konum"
@@ -8445,7 +8457,7 @@ msgstr "Son kullanma tarihi öncesi"
msgid "Expiry date after"
msgstr "Son kullanma tarihi sonrası"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Bozuk"
@@ -8530,7 +8542,7 @@ msgstr "Simge atanmamış tüm konumlar için varsayılan simge (isteğe bağlı
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Stok Konumları"
@@ -8579,7 +8591,7 @@ msgstr "Parça belirtilmelidir"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Stok kalemleri yapısal stok konumlarına yerleştirilemez!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "Sanal parçalar için stok kalemi oluşturulamaz"
@@ -8624,7 +8636,7 @@ msgstr "Bu stok kalemiyle eşleşen bir tedarikçi parçası seçin"
msgid "Where is this stock item located?"
msgstr "Bu stok kalemi nerede bulunur?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Bu stok kaleminin ambalajı şu şekilde saklanmaktadır"
@@ -8640,7 +8652,7 @@ msgstr "Bu öge başka bir ögeye takılı mı?"
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Bu stok kalemine ait parti kodu"
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Tedarikçi Parça Numarası"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "Bu parçaya seri numarası atanamaz"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Takılacak stok kalemini seçin"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Miktar"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Takılacak kalemlerin miktarını girin"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "İşlem notu ekle (isteğe bağlı)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "Miktar en az \"1\" olmalıdır"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Stok kalemi mevcut değil"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "Seçilen parça malzeme listesinde bulunamadı"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "Takılacak miktar, mevcudu geçmemeli"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Sökülen ürün için hedef konum"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "Stok kaleminin dönüştürüleceği parçayı seçin"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "Seçilen parça dönüştürülmeye uygun değil"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Tedarikçi parçası atanmış stok kalemi dönüştürülemez"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Stok kalemi durum kodu"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Durumu değiştirilecek stok kalemlerini seçin"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Hiçbir stok kalemi seçilmedi"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Alt konumlar"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "Üst stok konumu"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Parça satılabilir olmalıdır"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "Ürün bir satış siparişine tahsis edilmiştir"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "Ürün bir üretim emrine tahsis edilmiştir"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "Stok kalemlerini atamak için müşteri"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "Seçilen şirket bir müşteri değil"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Stok tahsis notları"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "Bir stok kalemleri listesi girilmelidir"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Stok birleştirme notları"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Farklı tedarikçilere izin ver"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Farklı tedarikçi parçalarına sahip stokları birleştirmeye izin ver"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Farklı durumlara sahip kalemlere izin ver"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "Farklı durum kodlarına sahip stokları birleştirmeye izin ver"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "En az iki stok kalemi girilmelidir"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "Değişiklik Yok"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Stok Kalemi birincil anahtar (PK) değeri"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "Stok kalemi mevcut stokta yok"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "Stok kalemi zaten stokta"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "Miktar negatif olamaz"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Stok aktarım notları"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "Mevcut stokla birleştir"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "Mümkünse iade edilen ürünleri mevcut stoklarla birleştir"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "Sıradaki Seri Numarası"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "Önceki Seri Numarası"
@@ -9582,115 +9594,119 @@ msgstr "Birincil Grup"
msgid "Primary group for the user"
msgstr "Kullanıcının birincil grubu"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Yönetici"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Satın Alma Siparişleri"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Satış Siparişleri"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "İade Emirleri"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Kullanıcı Adı"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Adı"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Kullanıcının adı"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Soyadı"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Kullanıcının soyadı"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Kullanıcının e-posta adresi"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Süper Kullanıcı"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Bu kullanıcı bir süper kullanıcı mı"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Bu kullanıcı hesabı aktif mi"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "Bu alanı sadece bir yönetici değiştirebilir"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "Parola"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "Kullanıcının parolası"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "Uyarıları yok say"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "Şifre kuralları uyarılarını yok say"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "Kullanıcı yaratmak için yetkiniz yok"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Kullanıcı hesabınız oluşturulmuştur."
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "Giriş yapmak için lütfen şifre sıfırlama fonksiyonunu kullanınız"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "InvenTree'ye Hoşgeldiniz"
diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po
index 57d358071c..caf2221c7d 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -104,13 +104,13 @@ msgstr "Введіть дату"
msgid "Invalid decimal value"
msgstr "Неправильне десяткове значення"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Нотатки"
@@ -215,7 +215,7 @@ msgstr ""
msgid "Log in to the app"
msgstr "Авторизуватися в додатку"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Електронна пошта"
@@ -269,7 +269,7 @@ msgstr ""
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr ""
msgid "Image"
msgstr "Зображення"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Китайська (спрощена)"
msgid "Chinese (Traditional)"
msgstr "Китайська (Традиційна)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Деталь"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr ""
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Розхідний матеріал"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr ""
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Збірка"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr ""
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Тестуємо"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr ""
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr ""
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Доступно"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr ""
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Місце"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr ""
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr ""
@@ -861,16 +861,16 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr ""
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr ""
@@ -907,120 +907,120 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr ""
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr ""
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr ""
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr ""
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr ""
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr ""
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr ""
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr ""
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr ""
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr ""
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Кількість"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr ""
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr ""
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr ""
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr ""
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr ""
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr ""
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr ""
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr ""
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr ""
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr ""
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr ""
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr ""
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr ""
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr ""
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr ""
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr ""
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr ""
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr ""
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Дозволити варіанти"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "У виробництві"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr ""
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr ""
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr ""
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr ""
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr ""
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -1550,7 +1550,7 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr ""
@@ -1617,7 +1617,7 @@ msgstr ""
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Користувач"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Ціна"
@@ -1652,7 +1652,7 @@ msgstr ""
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1849,7 +1849,7 @@ msgstr "Розмір файлу"
msgid "File size in bytes"
msgstr "Розмір файлу в байтах"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr ""
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr ""
@@ -2094,7 +2094,7 @@ msgstr "Прапорець"
msgid "Is this parameter a checkbox?"
msgstr ""
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr ""
@@ -2106,7 +2106,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr ""
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr ""
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Шаблон"
@@ -2148,7 +2148,7 @@ msgstr "Шаблон"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Дані"
@@ -2156,18 +2156,18 @@ msgstr "Дані"
msgid "Parameter Value"
msgstr ""
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Примітка"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr ""
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr ""
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr ""
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr ""
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr ""
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr ""
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr ""
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr ""
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Компонент"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
-msgid "Receive error reports"
+msgid "Show Subassemblies in BOM table"
msgstr ""
#: common/setting/user.py:256
-msgid "Receive notifications for system errors"
+msgid "Enable display of subassemblies in the BOM table"
msgstr ""
#: common/setting/user.py:261
-msgid "Last used printing machines"
+msgid "Receive error reports"
msgstr ""
#: common/setting/user.py:262
+msgid "Receive notifications for system errors"
+msgstr ""
+
+#: common/setting/user.py:267
+msgid "Last used printing machines"
+msgstr ""
+
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr "Позиція активна"
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "Позиція постачальника активна"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "Внутрішня позиція активна"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Виробник"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr ""
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr ""
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Позиція виробника"
@@ -4213,12 +4221,12 @@ msgstr "Обрати позицію"
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr ""
@@ -4242,8 +4250,8 @@ msgstr ""
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4282,16 +4290,16 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "Базова вартість"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Мінімальний платіж (напр. комісія за збереження)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr ""
@@ -4307,7 +4315,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr ""
@@ -4339,14 +4347,18 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "В наявності"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Дійсно"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr ""
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Внутрішній компонент"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr ""
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr ""
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr ""
@@ -5211,8 +5223,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
@@ -5277,7 +5289,7 @@ msgstr ""
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr ""
@@ -5412,216 +5424,216 @@ msgstr ""
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr ""
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr ""
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr ""
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr ""
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr ""
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr ""
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr ""
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr ""
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr ""
@@ -5837,7 +5849,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -5858,7 +5870,7 @@ msgstr ""
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Позиції"
@@ -5973,7 +5985,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Мінімальний запас"
@@ -6086,756 +6098,756 @@ msgstr ""
msgid "Owner responsible for this part"
msgstr ""
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr ""
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr ""
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr ""
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Дата"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Тестова назва"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr ""
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr ""
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr ""
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr ""
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr ""
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr ""
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr ""
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Позиція 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Позиція 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "Результати"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr ""
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Виробничий номер позиції"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr ""
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr ""
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Початковий запас"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Наявне зображення"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Мінімальна ціна"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Максимальна ціна"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr ""
@@ -8288,7 +8300,7 @@ msgstr ""
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr ""
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr ""
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr ""
@@ -8530,7 +8542,7 @@ msgstr ""
msgid "Stock Location"
msgstr ""
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr ""
@@ -8579,7 +8591,7 @@ msgstr ""
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr ""
@@ -8624,7 +8636,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -8640,7 +8652,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr ""
@@ -8753,7 +8765,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr ""
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr ""
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr ""
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr ""
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr ""
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr ""
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr ""
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr ""
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr ""
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr ""
-#: users/ruleset.py:32
-msgid "Purchase Orders"
-msgstr ""
-
-#: users/ruleset.py:33
-msgid "Sales Orders"
+#: users/ruleset.py:30
+msgid "Bills of Material"
msgstr ""
#: users/ruleset.py:34
+msgid "Purchase Orders"
+msgstr ""
+
+#: users/ruleset.py:35
+msgid "Sales Orders"
+msgstr ""
+
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr ""
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr ""
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Ім`я"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr ""
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Прізвище"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr ""
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Адреса електронної пошти користувача"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr ""
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr ""
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr ""
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr ""
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr ""
diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po
index 26a4ab41d5..449dc7a970 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:41\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -104,13 +104,13 @@ msgstr "Nhập ngày"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "Ghi chú"
@@ -215,7 +215,7 @@ msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ"
msgid "Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "Email"
@@ -269,7 +269,7 @@ msgstr "Lựa chọn sai"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "Lỗi đã được ghi lại bởi máy chủ."
msgid "Image"
msgstr "Hình ảnh"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "Phải là một số hợp lệ"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "Tiền tệ"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "Chọn tiền tệ trong các tùy chọn đang có"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr ""
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "Giá trị không hợp lệ"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "Hình ảnh từ xa"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "URL của tệp hình ảnh bên ngoài"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
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/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr ""
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr ""
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr ""
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr ""
@@ -536,11 +536,11 @@ msgstr "Tiếng Trung (Giản thể)"
msgid "Chinese (Traditional)"
msgstr "Tiếng Trung (Phồn thể)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -561,21 +561,21 @@ msgstr "Trạng thái đặt hàng"
msgid "Parent Build"
msgstr "Phiên bản cha"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr ""
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr ""
msgid "Part"
msgstr "Nguyên liệu"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "Danh mục"
@@ -665,89 +665,89 @@ msgstr ""
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:400
+#: build/api.py:414
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:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "Vật tư tiêu hao"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "Tuỳ chọn"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "Lắp ráp"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "Đã theo dõi"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "Có thể kiểm tra"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "Đã cấp phát"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "Đã dùng"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Có sẵn"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "Bật đơn hàng"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr ""
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Tạo đơn hàng"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "Địa điểm"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr ""
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "Tạo đơn hàng"
@@ -783,9 +783,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Tham chiếu đơn đặt bản dựng"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "Tham chiếu đơn đặt bản dựng"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "Địa điểm nguồn"
@@ -861,16 +861,16 @@ msgstr "Trnạg thái bản dựng"
msgid "Build status code"
msgstr "Mã trạng thái bản dựng"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "Mã lô hàng"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "Mã lô cho đầu ra bản dựng này"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "Ngày tạo"
@@ -907,120 +907,120 @@ msgstr "Cấp bởi"
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:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "Chịu trách nhiệm"
-#: build/models.py:412
+#: build/models.py:420
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:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "Liên kết bên ngoài"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "Liên kết đến URL bên ngoài"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "Độ ưu tiên"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "Độ quan trọng của đơn đặt bản dựng"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "Mã dự án"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "Mã dự án cho đơn đặt bản dựng này"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr ""
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr ""
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "Không thể dỡ bỏ tác vụ để hoàn tất phân bổ"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Đơn đặt bản dựng {build} đã được hoàn thành"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "Một đơn đặt bản dựng đã được hoàn thành"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
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:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "Không có đầu ra bản dựng đã được chỉ ra"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "Đầu ra bản dựng đã được hoàn thiện"
-#: build/models.py:1022
+#: build/models.py:1030
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:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "Số lượng phải lớn hơn 0"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
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:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr ""
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Tạo đầu ra {serial} chưa vượt qua tất cả các bài kiểm tra"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr ""
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr ""
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "Tạo mục đơn hàng"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "Dựng đối tượng"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "Dựng đối tượng"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "Số lượng"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "Yêu cầu số lượng để dựng đơn đặt"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr ""
-#: build/models.py:1888
+#: build/models.py:1896
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:1951
+#: build/models.py:1959
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:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr ""
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "Số lượng phải là 1 cho kho sê ri"
-#: build/models.py:1986
+#: build/models.py:1994
#, 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:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "Kho hàng đã bị phân bổ quá đà"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "Kho hàng"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "Kho hàng gốc"
-#: build/models.py:2103
+#: build/models.py:2111
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:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "Cài đặt vào"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "Kho hàng đích"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "Tạo cấp"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "Tên sản phẩm"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "Đầu ra bản dựng"
-#: build/serializers.py:219
+#: build/serializers.py:227
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:223
+#: build/serializers.py:231
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:227
+#: build/serializers.py:235
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:241
+#: build/serializers.py:249
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:260 build/serializers.py:309
+#: build/serializers.py:268 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:331
+#: build/serializers.py:339
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:337
+#: build/serializers.py:345
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:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "Số sê-ri"
-#: build/serializers.py:355
+#: build/serializers.py:363
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:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "Vị trí tồn kho cho sản phẩm"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "Số sêri tự cấp"
-#: build/serializers.py:378
+#: build/serializers.py:386
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:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
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:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
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:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "Vị trí kho cho đầu ra phế phẩm"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "Hủy phân bổ"
-#: build/serializers.py:493
+#: build/serializers.py:501
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:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "Lý do loại bỏ đầu ra bản dựng"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "Vị trí cho đầu ra bản dựng hoàn thiện"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "Chấp nhận phân kho dang dở"
-#: build/serializers.py:565
+#: build/serializers.py:573
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:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "Xử lý phân bổ kho hàng"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
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:697
+#: 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:698
+#: 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:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "Chưa được cấp phép"
-#: build/serializers.py:726
+#: 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:727
+#: 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:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "Kho quá tải"
-#: build/serializers.py:757
+#: build/serializers.py:765
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:768
+#: build/serializers.py:776
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:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "Chấp nhận chưa phân bổ được"
-#: build/serializers.py:775
+#: 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:786
+#: build/serializers.py:794
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:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "Chấp nhận không hoàn thành"
-#: build/serializers.py:793
+#: build/serializers.py:801
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:804
+#: build/serializers.py:812
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:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "Tạo đơn hàng có các đơn hàng đang mở"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "Tạo đơn hàng phải ở trạng thái sản xuất."
-#: build/serializers.py:822
+#: build/serializers.py:830
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:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "Lộ giới"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "Đầu ra bản dựng"
-#: build/serializers.py:877
+#: build/serializers.py:885
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:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "Mục chi tiết bản dựng"
-#: build/serializers.py:926
+#: build/serializers.py:934
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:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "Hàng hóa phải trong kho"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Số lượng có sẵn ({q}) đã bị vượt quá"
-#: build/serializers.py:991
+#: 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:999
+#: build/serializers.py:1007
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:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "Hàng hóa phân bổ phải được cung cấp"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
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:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "Ngoại trừ vị trí"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
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:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "Kho trao đổi"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
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:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "Kho thay thế"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "Cho phép phân kho sản phẩm thay thế"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "Mục tùy chọn"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
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:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr ""
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr ""
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr ""
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr ""
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr ""
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "BOM liên quan"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "ID hàng hoá BOM"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "Tên hàng hoá BOM"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr ""
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr ""
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "Sản phẩm nhà cung cấp"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "Số lượng đã phân bổ"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "Tạo liên quan"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "Tên danh mục hàng hoá"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "Có thể theo dõi"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "Được kế thừa"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "Cho phép biến thể"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "Mục BOM"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "Đang sản xuất"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "Kho ngoài"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "Số hàng tồn"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "Kho hàng thay thế"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "Hàng tồn kho có sẵn"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr ""
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr ""
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr ""
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr ""
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr ""
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr ""
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr ""
@@ -1494,7 +1494,7 @@ msgstr "Chờ"
msgid "Cancelled"
msgstr "Đã hủy"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "Đơn đặt bản dựng quá hạn"
msgid "Build order {bo} is now overdue"
msgstr "Đặt hàng bản dựng {bo} đang quá hạn"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "Đường dẫn"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "File"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "Không có quyền xoá file đính kèm"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "Không có quyền xoá file đính kèm"
@@ -1550,7 +1550,7 @@ msgstr "Mã tiền tệ không đúng"
msgid "No plugin"
msgstr "Không phần mở rộng"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "Nhãn mã dự án"
@@ -1617,7 +1617,7 @@ msgstr "Chuỗi khóa phải duy nhất"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "Người dùng"
msgid "Price break quantity"
msgstr "Số lượng giá phá vỡ"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "Giá"
@@ -1652,7 +1652,7 @@ msgstr "Tên của webhook này"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Hoạt động"
@@ -1849,7 +1849,7 @@ msgstr ""
msgid "File size in bytes"
msgstr ""
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr ""
@@ -2058,7 +2058,7 @@ msgstr "Tham số hộp kiểm tra không thể có đơn vị"
msgid "Checkbox parameters cannot have choices"
msgstr "Tham số hộp kiểm tra không thể có lựa chọn"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "Lựa chọn phải duy nhất"
@@ -2094,7 +2094,7 @@ msgstr "Ô lựa chọn"
msgid "Is this parameter a checkbox?"
msgstr "Tham số này có phải là hộp kiểm tra?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "Lựa chọn"
@@ -2106,7 +2106,7 @@ msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu ph
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "Đã bật"
@@ -2126,7 +2126,7 @@ msgstr ""
msgid "Invalid choice for parameter value"
msgstr "Lựa chọn sai cho giá trị tham số"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr ""
@@ -2140,7 +2140,7 @@ msgstr ""
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "Mẫu"
@@ -2148,7 +2148,7 @@ msgstr "Mẫu"
msgid "Parameter template"
msgstr ""
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "Dữ liệu"
@@ -2156,18 +2156,18 @@ msgstr "Dữ liệu"
msgid "Parameter Value"
msgstr "Giá trị tham số"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "Ghi chú"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "Trường ghi chú tùy chọn"
@@ -2391,85 +2391,85 @@ msgstr ""
msgid "Override"
msgstr ""
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "Đang chạy"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "Công việc chờ xử lý"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "Tác vụ theo lịch"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "Tác vụ thất bại"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "ID tác vụ"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "ID tác vụ duy nhất"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "Khoá"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "Thời gian khóa"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "Tên công việc"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "Chức năng"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "Tên chức năng"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "Đối số"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "Đối số công việc"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "Đối số từ khóa"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "Đối số từ khóa công việc"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "Tên tập tin"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr ""
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr ""
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr ""
@@ -2859,8 +2859,8 @@ msgstr "Sản phẩm là mẫu bởi mặc định"
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/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "Thành phần"
@@ -3928,18 +3928,26 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr ""
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "Nhận báo cáo lỗi"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "Nhận thông báo khi có lỗi hệ thống"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr ""
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr ""
@@ -3988,33 +3996,33 @@ msgstr ""
msgid "Manufacturer is Active"
msgstr ""
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr ""
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr ""
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr ""
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr ""
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "Nhà sản xuất"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "Doanh nghiêp"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr ""
@@ -4195,7 +4203,7 @@ msgstr "Ghi chú nội bộ sử dụng cho chuyển phát nhanh"
msgid "Link to address information (external)"
msgstr "Liên kết thông tin địa chỉ (bên ngoài)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "Sản phẩm nhà sản xuất"
@@ -4213,12 +4221,12 @@ msgstr "Chọn sản phẩm"
msgid "Select manufacturer"
msgstr "Chọn nhà sản xuất"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr ""
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "Mã số nhà sản xuất"
@@ -4242,8 +4250,8 @@ msgstr "Đơn vị đóng gói phải lớn hơn không"
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:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "Nhà cung cấp"
msgid "Select supplier"
msgstr "Chọn nhà cung cấp"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "Đơn vị quản lý kho nhà cung cấp"
@@ -4282,16 +4290,16 @@ msgstr "URL cho liên kết sản phẩm của nhà cung cấp bên ngoài"
msgid "Supplier part description"
msgstr "Mô tả sản phẩm nhà cung cấp"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "chi phí cơ sở"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Thu phí tối thiểu (vd: phí kho bãi)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "Đóng gói"
@@ -4307,7 +4315,7 @@ msgstr "Số lượng gói"
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:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "nhiều"
@@ -4339,14 +4347,18 @@ msgstr "Tiền tệ mặc định được sử dụng cho nhà cung cấp này"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "Còn hàng"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr ""
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr ""
@@ -4451,67 +4463,67 @@ msgstr ""
msgid "Existing database identifier for the record"
msgstr ""
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr ""
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr ""
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr ""
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr ""
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr ""
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr ""
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr ""
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr ""
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr ""
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr ""
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr ""
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr ""
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "Hợp lệ"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr ""
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr ""
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr ""
@@ -4821,7 +4833,7 @@ msgstr "Đặt hàng"
msgid "Order Complete"
msgstr ""
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "Sản phẩm nội bộ"
@@ -4918,7 +4930,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Ngày mục tiêu"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "Mã đặt hàng"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "Trạng thái"
@@ -5013,7 +5025,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5139,7 +5151,7 @@ msgstr "Đã nhận"
msgid "Number of items received"
msgstr "Số mục đã nhận"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "Giá mua"
@@ -5211,8 +5223,8 @@ msgstr "Kiểm tra bởi"
msgid "User who checked this shipment"
msgstr "Người dùng đã kiểm tra vận chuyển này"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Vận chuyển"
@@ -5277,7 +5289,7 @@ msgstr "Số lượng phân bổ không thể vượt quá số lượng của k
msgid "Allocation quantity must be greater than zero"
msgstr "Số lượng phân bổ phải lớn hơn 0"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "Số lượng phải là 1 cho hàng hóa sêri"
@@ -5393,7 +5405,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "Sao chép thông số"
@@ -5412,216 +5424,216 @@ msgstr "Mục dòng"
msgid "Completed Lines"
msgstr ""
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr ""
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr ""
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr ""
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "Tên nhà cung cấp"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "Đơn đặt không thể bị hủy"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
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:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
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:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "Đơn đặt là không được mở"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr ""
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "Tiền tệ giá mua"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr ""
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr ""
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "Mã sản phẩm nội bộ"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr ""
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "Sản phẩm nhà cung cấp phải được chỉ định"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "Đơn đặt mua phải được chỉ định"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "Nhà cung cấp phải phù hợp với đơn đặt mua"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "Đơn đặt mua phải phù hợp với nhà cung cấp"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "Mục dòng"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "Chọn vị trí đích cho hàng hóa đã nhận"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "Nhập mã lô cho hàng trong kho đang đến"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "Ngày hết hạn"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr ""
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "Nhập số sê ri cho hàng trong kho đang đến"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr ""
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr ""
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "Mã vạch"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "Mã vạch đã quét"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "Mã vạch đã được dùng"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "Dòng hàng hóa phải được cung cấp"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "Vị trí đích phải được chỉ ra"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "Giá trị mã vạch đã cung cấp phải duy nhất"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr ""
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "Vận đơn đã hoàn thành"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr ""
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "Tiền tệ giá bán"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr ""
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "Chưa cung cấp thông tin vận chuyển"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
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:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "Số lượng phải là số dương"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "Nhập số sê ri để phân bổ"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "Vận đơn đã được chuyển đi"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
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:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "Không tìm thấy số sê ri sau đây"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "Dòng riêng biệt đơn hàng trả lại"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
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:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "Line item đã nhận được"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
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:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr ""
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "Tiền tệ giá đồng hạng"
@@ -5732,71 +5744,71 @@ msgstr ""
msgid "Has Results"
msgstr ""
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr ""
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr ""
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr ""
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr ""
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr ""
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr ""
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr ""
@@ -5805,7 +5817,7 @@ msgstr ""
msgid "Part Category"
msgstr "Danh mục sản phẩm"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "Danh mục sản phẩm"
@@ -5837,7 +5849,7 @@ msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này"
msgid "Icon"
msgstr "Biểu tượng"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Biểu tượng (tùy chọn)"
@@ -5858,7 +5870,7 @@ msgstr "Giá trị mặc định"
msgid "Default Parameter Value"
msgstr "Giá trị tham số mặc định"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "Nguyên liệu"
@@ -5973,7 +5985,7 @@ msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong k
msgid "Part category"
msgstr "Danh mục sản phẩm"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6006,7 +6018,7 @@ msgstr "Hết hạn mặc định"
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:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "Kho tối thiểu"
@@ -6086,756 +6098,756 @@ msgstr "Tạo người dùng"
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:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "Bán nhiều"
-#: part/models.py:3308
+#: part/models.py:3317
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:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "Chi phí BOM tối thiểu"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "Chi phí thành phần sản phẩm tối thiểu"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "Chi phí BOM tối đa"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "Chi phí thành phần sản phẩm tối đa"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "Chi phí mua vào tối thiểu"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "Chi phí mua vào tối thiểu trong lịch sử"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "Chi phí mua tối đa"
-#: part/models.py:3346
+#: part/models.py:3355
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:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "Giá nội bộ tối thiểu"
-#: part/models.py:3353
+#: part/models.py:3362
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:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "Giá nội bộ tối đa"
-#: part/models.py:3360
+#: part/models.py:3369
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:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "Giá nhà cung ứng tối thiểu"
-#: part/models.py:3367
+#: part/models.py:3376
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:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "Giá nhà cung ứng tối đa"
-#: part/models.py:3374
+#: part/models.py:3383
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:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "Giá trị biến thể tối thiểu"
-#: part/models.py:3381
+#: part/models.py:3390
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:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "Chi phí biến thể tối đa"
-#: part/models.py:3388
+#: part/models.py:3397
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:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "Chi phí tối thiểu"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "Ghi đề chi phí tối thiểu"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "Chi phí tối đa"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "Ghi đề chi phí tối đa"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "Chi phí tối thiểu tính toán tổng thể"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "Chi phí tối đa tính toán tổng thể"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "Giá bán thấp nhất"
-#: part/models.py:3423
+#: part/models.py:3432
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:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "Giá bán cao nhất"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "Giá bán cao nhất dựa trên phá giá"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "Chi phí bán hàng tối thiểu"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "Giá bán hàng tối thiểu trong lịch sử"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "Giá bán hàng tối đa"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "Giá bán hàng tối đa trong lịch sử"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "Sản phẩm dành cho kiểm kê"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "Tổng số hàng"
-#: part/models.py:3468
+#: part/models.py:3477
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:3476
+#: part/models.py:3485
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:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "Ngày"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "Kiểm kê đã thực hiện"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "Chi phí kho tối thiểu"
-#: part/models.py:3489
+#: part/models.py:3498
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:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "Chi phí kho tối đa"
-#: part/models.py:3496
+#: part/models.py:3505
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:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "Tên kiểm thử"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "Nhập tên cho kiểm thử"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr ""
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "Mô tả kiểm thử"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "Nhập mô tả cho kiểm thử này"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "Bắt buộc"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "Kiểm thử này bắt buộc phải đạt?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "Giá trị bắt buộc"
-#: part/models.py:3741
+#: part/models.py:3750
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:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "Yêu cầu đính kèm"
-#: part/models.py:3748
+#: part/models.py:3757
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:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "Chọn sản phẩm cha"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "Sản phẩm phụ"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "Chọn sản phẩm được dùng trong BOM"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "Số lượng BOM cho mục BOM này"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "Mục BOM này là tùy chọn"
-#: part/models.py:4000
+#: part/models.py:4012
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:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr ""
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr ""
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr ""
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr ""
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr ""
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr ""
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "Tham chiếu mục BOM"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "Ghi chú mục BOM"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "Giá trị tổng kiểm"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "Giá trị tổng kiểm dòng BOM"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "Đã xác minh"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "Mục BOM này là hợp lệ"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "Nhận thừa hưởng"
-#: part/models.py:4067
+#: part/models.py:4079
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:4073
+#: part/models.py:4085
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:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
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:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "Sản phẩm phụ phải được chỉ định"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "Sảm phẩm thay thế mục BOM"
-#: part/models.py:4364
+#: part/models.py:4378
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:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "Hàng hóa BOM cha"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "Sản phẩm thay thế"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "Sản phẩm 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "Sản phẩm 2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "Chọn sản phẩm liên quan"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr ""
-#: part/models.py:4436
+#: part/models.py:4450
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:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "Đã tồn tại mối quan hệ trùng lặp"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr ""
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "Phụ mục"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr ""
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
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:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "Sản phẩm gốc"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "Chọn sản phẩm gốc để nhân bản"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "Sao chép ảnh"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "Sao chép hình ảnh từ sản phẩm gốc"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "Sao chép BOM"
-#: part/serializers.py:407
+#: part/serializers.py:410
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:414
+#: part/serializers.py:417
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:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "Sao chép ghi chú"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "Sao chép ghi chú từ sản phẩm gốc"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "Số liệu tồn kho ban đầu"
-#: part/serializers.py:448
+#: part/serializers.py:451
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:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "Vị trí kho ban đầu"
-#: part/serializers.py:456
+#: part/serializers.py:459
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:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)"
-#: part/serializers.py:489
+#: part/serializers.py:492
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:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "Mã số nhà sản xuất"
-#: part/serializers.py:506
+#: part/serializers.py:509
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:515
+#: part/serializers.py:518
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:526
+#: part/serializers.py:529
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:533
+#: part/serializers.py:536
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:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "Tên danh mục"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "Đang dựng"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "Hàng trong kho"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr ""
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Tổng số lượng"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "Nhân bản sản phẩm"
-#: part/serializers.py:942
+#: part/serializers.py:969
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
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "Số liệu kho ban đầu"
-#: part/serializers.py:949
+#: part/serializers.py:976
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:982
msgid "Supplier Information"
msgstr "Thông tin nhà cung cấp"
-#: part/serializers.py:956
+#: part/serializers.py:983
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:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "Sao chép thông số nhóm hàng"
-#: part/serializers.py:966
+#: part/serializers.py:993
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:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "Ảnh hiện có"
-#: part/serializers.py:972
+#: part/serializers.py:999
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:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "Tệp hình ảnh không tồn tại"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "Xác minh toàn bộ hóa đơn vật liệu"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "Có thể dựng"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "Giá thấp nhất"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "Giá trị tính toán ghi đè cho giá tối thiểu"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "Tiền tế giá tối thiểu"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "Giá cao nhất"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "Giá trị tính toán ghi đè cho giá tối đa"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "Tiền tế giá tối đa"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "Cập nhật"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "Cập nhật giá cho sản phẩm này"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, 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:1528
+#: part/serializers.py:1560
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:1531
+#: part/serializers.py:1563
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:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr ""
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1927
+#: part/serializers.py:1991
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:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "Xóa dữ liệu đã tồn tại"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
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:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "Bao gồm thừa hưởng"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
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:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "Bỏ qua dòng không hợp lệ"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
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:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "Sao chép sản phẩm thay thế"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
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"
@@ -7758,7 +7770,7 @@ msgstr ""
msgid "Plugin"
msgstr "Phần bổ sung"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "Không tìm thấy tác giả"
@@ -8288,7 +8300,7 @@ msgstr "Báo cáo kiểm thử mặt hàng"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "Mục đã cài đặt"
@@ -8361,7 +8373,7 @@ msgstr ""
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr ""
@@ -8445,7 +8457,7 @@ msgstr "Ngày hết hạn trước đó"
msgid "Expiry date after"
msgstr "Ngày hết hạn sau đó"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "Ế"
@@ -8530,7 +8542,7 @@ msgstr "Biểu tượng mặc định cho vị trí không được đặt biể
msgid "Stock Location"
msgstr "Kho hàng"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "Vị trí kho hàng"
@@ -8579,7 +8591,7 @@ msgstr ""
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:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
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"
@@ -8624,7 +8636,7 @@ msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho n
msgid "Where is this stock item located?"
msgstr "Hàng trong kho này được đặt ở đâu?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "Đóng gói hàng hóa này được lưu trữ lại"
@@ -8640,7 +8652,7 @@ msgstr "Mục này đã được cài đặt trong mục khác?"
msgid "Serial number for this item"
msgstr "Số sê ri cho mục này"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "Mã lô cho hàng trong kho này"
@@ -8753,7 +8765,7 @@ msgstr "Hàng trong kho hiện đang sản xuất"
msgid "Serialized stock cannot be merged"
msgstr "Không thể hợp nhất kho nối tiếp"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "Mặt hàng trùng lặp"
@@ -8877,7 +8889,7 @@ msgstr ""
msgid "Quantity of serial numbers to generate"
msgstr ""
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr ""
@@ -8901,222 +8913,222 @@ msgstr "Mục cha"
msgid "Parent stock item"
msgstr ""
-#: stock/serializers.py:451
+#: stock/serializers.py:454
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:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr ""
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "Điền số sêri cho hàng hóa mới"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "Số hiệu hàng hoá nhà cung cấp"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "Đã hết hạn"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "Mục con"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr ""
-#: stock/serializers.py:654
+#: stock/serializers.py:668
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:692
+#: stock/serializers.py:706
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:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr ""
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, 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:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "Vị trí kho đích"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
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:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "Số sêri đã tồn tại"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "Chọn mặt hàng để lắp đặt"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "Số lượng để cài đặt"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "Nhập số lượng hàng hóa để cài đặt"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "Thêm ghi chú giao dịch (tùy chọn)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
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:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "Mặt hàng không khả dụng"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
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:869
+#: stock/serializers.py:883
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:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "Vị trí đích cho hàng hóa bị gỡ bỏ"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
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:955
+#: stock/serializers.py:969
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:972
+#: stock/serializers.py:986
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:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "Mã trạng thái mặt hàng"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "Chọn mặt hàng để đổi trạng thái"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "Không có mặt hàng nào được chọn"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "Kho phụ"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "Sản phẩm phải có thể bán được"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
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:1341
+#: stock/serializers.py:1374
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:1365
+#: stock/serializers.py:1398
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:1371
+#: stock/serializers.py:1404
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:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "Ghi chú phân bổ kho"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
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:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "Ghi chú gộp kho"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "Cho phép nhiều nhà cung không khớp"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
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:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "Cho phép trạng thái không khớp"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
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:1490
+#: stock/serializers.py:1523
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:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "Giá trị khóa chính mặt hàng"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "Ghi chú giao dịch kho"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr ""
@@ -9582,115 +9594,119 @@ msgstr ""
msgid "Primary group for the user"
msgstr ""
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "Quản trị"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "Đơn mua hàng"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "Đơn hàng bán"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "Đơn hàng trả lại"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "Tên người dùng"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "Tên"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "Họ người dùng"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "Họ"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "Tên người dùng"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "Địa chỉ email của người dùng"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr ""
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr ""
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr ""
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr ""
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "Superuser"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "Người dùng này là superuser"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "Tài khoản người dùng đang hoạt động"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr ""
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr ""
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr ""
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr ""
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr ""
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr ""
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr ""
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr ""
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "Tài khoản của bạn đã được tạo."
-#: users/serializers.py:484
+#: users/serializers.py:491
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"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "Chào mừng đến với InvenTree"
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 3e427cd149..dc7b7d99db 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -104,13 +104,13 @@ msgstr "输入日期"
msgid "Invalid decimal value"
msgstr "无效的数值"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "备注"
@@ -215,7 +215,7 @@ msgstr "提供的 URL 不是一个有效的图片文件"
msgid "Log in to the app"
msgstr "登录应用程序"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "电子邮件"
@@ -269,7 +269,7 @@ msgstr "无效选项"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "服务器记录了一个错误。"
msgid "Image"
msgstr "图像"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "必须是有效数字"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "货币"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "从可用选项中选择货币"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "此字段不能为空。"
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "无效值"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "远程图片"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "远程图片文件的 URL"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "未启用从远程 URL下载图片"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "从远程URL下载图像失败"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "无效的内容类型格式"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "未找到内容类型"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "内容类型不匹配所需的 mixin 类"
@@ -536,11 +536,11 @@ msgstr "中文 (简体)"
msgid "Chinese (Traditional)"
msgstr "中文 (繁体)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "有可用更新"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree有可用更新"
@@ -561,21 +561,21 @@ msgstr "订单状态"
msgid "Parent Build"
msgstr "父级生产订单"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "包含变体"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "包含变体"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "包含变体"
msgid "Part"
msgstr "零件"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "类别"
@@ -665,89 +665,89 @@ msgstr "最大日期"
msgid "Exclude Tree"
msgstr "排除树"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "生产订单必须取消后才能删除"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "耗材"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "可选项"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "装配件"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "可追溯"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "需检测"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "未结算订单"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "已分配"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "已消耗"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "可用数量"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "已订购"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
msgstr "未找到版本"
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "生产订单"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "库存位置"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "产出"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "按产出库存项ID筛选,使用“null”查找未安装的生产项。"
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "生产订单"
@@ -783,9 +783,9 @@ msgstr "目标日期必须在开始日期之后"
msgid "Build Order Reference"
msgstr "生产订单编号"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -813,7 +813,7 @@ msgstr "销售订单编号"
msgid "Sales Order to which this build is allocated"
msgstr "该生产订单关联的销售订单"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "源库位"
@@ -861,16 +861,16 @@ msgstr "生产状态"
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "批号"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "本批产出的批次编号"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "建立日期"
@@ -907,120 +907,120 @@ msgstr "发起人"
msgid "User who issued this build order"
msgstr "创建该生产订单的用户"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "责任方"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "该生产订单的责任人或责任团队"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "指向外部资源的URL链接"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "生产优先级"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "此生产订单的优先级"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "项目编号"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "该生产订单归属的项目编号"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "无法完成生产订单,存在未关闭的子生产订单"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "无法完成生产订单,存在未完成的产出项"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "生产分配任务卸载失败"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "生产订单 {build} 已完成"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "生产订单已完成"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "可追溯零件必须填写序列号"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "未指定产出"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "产出已完成"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "产出与生产订单不匹配"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "数量必须大于零"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "数量不能大于产出数量"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "产出未通过所有必要测试"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "产出 {serial} 未通过所有必要测试"
-#: build/models.py:1203
+#: build/models.py:1211
msgid "Allocated stock items are still in production"
msgstr "已分配的库存物料仍在生产中"
-#: build/models.py:1211
+#: build/models.py:1219
msgid "Cannot partially complete a build output with allocated items"
msgstr "存在已分配物料时无法部分完成生产输出"
-#: build/models.py:1740
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "生产订单行项目"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "生产对象"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "生产对象"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "生产订单所需数量"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "库存消耗量"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "生产项必须指定产出,因为主零件已经被标记为可追踪的"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "所选库存项与物料清单行项不匹配"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
msgstr "分配的数量必须大于零"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "序列化物料的数量必须为1"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "库存品项超额分配"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "分配给该生产任务的库存量"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "安裝到"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "目标库存项"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "生产等级"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "零件名称"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "产出"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "生产产出与上级订单不匹配"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "产出零件与生产订单零件不匹配"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "此产出已经完成"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "此产出尚未完全分配"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "输入产出数量"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "可追踪的零件数量必须为整数"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "因为物料清单包含可追踪的零件,所以数量必须为整数"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "序列号"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "输入产出的序列号"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "生产产出的库存地点"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "自动分配序列号"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "自动为所需项目分配对应的序列号"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "以下序列号已存在或无效"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "必须提供产出清单"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "报废品库存地点"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "放弃分配"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "取消对报废产品的库存分配"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "废品产出的原因"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "完工产出存放库位"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "接受不完整的分配"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "如果库存尚未全部分配,则完成产出"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "消耗已分配库存"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "立即扣除已分配给该生产任务的库存"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "移除未完成的产出"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "删除所有未完成的产出"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "禁止操作"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "标记为当前生产订单消耗"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "完成此生产订单前取消分配"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "超额分配库存"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "如何处理分配给生产订单的超额库存"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "存在超额分配的库存项"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "接受未分配"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "接受库存项未被完全分配至生产订单"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "必需库存未完成全量分配"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "接受未完工"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "允许所需数量的产出未完成"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "生产需求数量未完成"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "生产订单有打开的子生产订单"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "生产订单必须处于生产状态"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "生产订单有未完成的产出"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "生产行"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "产出"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "生产产出必须指向相同的生产"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "生产行项目"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part 必须与生产订单零件相同"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "项目必须在库存中"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "可用量 ({q}) 超出限制"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "对于被追踪的零件的分配,必须指定生产产出"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "对于未被追踪的零件,无法指定生产产出"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "必须提供分配项目"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "零件来源的库存地点(留空则可来源于任何库存地点)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "排除位置"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "从该选定的库存地点排除库存项"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "可互换库存"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "在多个位置的库存项目可以互换使用"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "替代品库存"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "允许分配可替换的零件"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "可选项目"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "分配可选的物料清单给生产订单"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "所有物料"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
msgstr "未跟踪的物品"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
msgstr "已跟踪的物品"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "物品类型"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
msgstr "选择要自动分配的条目类型"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "物料清单参考"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "物料清单零件识别号码"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "物料清单零件名称"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "安裝到"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "生产"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "供应商零件"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "已分配数量"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "生产订单编号"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "零件类别名称"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "可追踪"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "已继承的"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "允许变体"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "物料清单项"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "生产中"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "生产计划"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "外部库存"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "可用库存"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "可用的替代品库存"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "可用的变体库存"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "消耗数量超过分配数量"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "库存消耗可选备注"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "生产物料项必须关联到正确的生产订单"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "重复的生产物料项分配"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "订单行项目必须关联到正确的生产订单"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "重复的订单行项目分配"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "必须提供至少一个物料项或行项目"
@@ -1494,7 +1494,7 @@ msgstr "已暂停"
msgid "Cancelled"
msgstr "已取消"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "逾期的生产订单"
msgid "Build order {bo} is now overdue"
msgstr "生产订单 {bo} 现已逾期"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "是否链接"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "是否为文件"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "用户没有权限删除此附件"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "用户没有权限删除此附件"
@@ -1550,7 +1550,7 @@ msgstr "未提供有效的货币代码"
msgid "No plugin"
msgstr "暂无插件"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "项目编号标签"
@@ -1617,7 +1617,7 @@ msgstr "键字符串必须是唯一的"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "使用者"
msgid "Price break quantity"
msgstr "批发价数量"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "价格"
@@ -1652,7 +1652,7 @@ msgstr "此网络钩子的名称"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "激活"
@@ -1849,7 +1849,7 @@ msgstr "文件大小"
msgid "File size in bytes"
msgstr "文件大小,以字节为单位"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "为附件指定的模型类型无效"
@@ -2058,7 +2058,7 @@ msgstr "勾选框参数不能有单位"
msgid "Checkbox parameters cannot have choices"
msgstr "复选框参数不能有选项"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "选择必须是唯一的"
@@ -2094,7 +2094,7 @@ msgstr "勾选框"
msgid "Is this parameter a checkbox?"
msgstr "此参数是否为勾选框?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "选项"
@@ -2106,7 +2106,7 @@ msgstr "此参数的有效选择 (逗号分隔)"
msgid "Selection list for this parameter"
msgstr "此参数的选择列表"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "已启用"
@@ -2126,7 +2126,7 @@ msgstr "参数"
msgid "Invalid choice for parameter value"
msgstr "无效的参数值选择"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
msgstr "为附件指定的模型类型无效"
@@ -2140,7 +2140,7 @@ msgstr "此参数的目标模型的 ID"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "模板"
@@ -2148,7 +2148,7 @@ msgstr "模板"
msgid "Parameter template"
msgstr "参数模板"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "数据"
@@ -2156,18 +2156,18 @@ msgstr "数据"
msgid "Parameter Value"
msgstr "参数值"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "备注"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "可选注释字段"
@@ -2391,85 +2391,85 @@ msgstr "表示设置是否被环境变量覆盖"
msgid "Override"
msgstr "覆盖"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "正在运行"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "等待完成的任务"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "预定的任务"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "失败的任务"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "任务ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "唯一任务ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "锁定"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "锁定时间"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "任务名称"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "功能"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "功能名称"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "参数"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "任务参数"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "关键字参数"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "任务关键词参数"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "文件名"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "模型类型"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "用户无权为此模式创建或编辑附件"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
msgstr "用户没有权限为此模型创建或编辑参数"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "选择列表已锁定"
@@ -2859,8 +2859,8 @@ msgstr "零件默认为模板"
msgid "Parts can be assembled from other components by default"
msgstr "默认情况下,元件可由其他零件组装而成"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "组件"
@@ -3930,18 +3930,26 @@ msgstr "禁用时:完整分类路径以悬停提示框形式显示。\n"
"启用时:完整分类路径以纯文本形式显示。"
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "接收错误报告"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "接收系统错误通知"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "上次使用的打印设备"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "为用户保存上次使用的打印设备"
@@ -3990,33 +3998,33 @@ msgstr "零件已激活"
msgid "Manufacturer is Active"
msgstr "制造商处于活动状态"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "供应商零件处于激活状态"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
msgstr "主供应商部件"
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "内部零件已激活"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "供应商已激活"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "制造商"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "公司"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "有库存"
@@ -4197,7 +4205,7 @@ msgstr "内部使用的装运通知单"
msgid "Link to address information (external)"
msgstr "链接地址信息 (外部)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "制造商零件"
@@ -4215,12 +4223,12 @@ msgstr "选择零件"
msgid "Select manufacturer"
msgstr "选择制造商"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "制造商零件编号"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "制造商零件编号"
@@ -4244,8 +4252,8 @@ msgstr "包装单位必须大于零"
msgid "Linked manufacturer part must reference the same base part"
msgstr "链接的制造商零件必须引用相同的基础零件"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4256,7 +4264,7 @@ msgstr "供应商"
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "供应商库存管理单位"
@@ -4284,16 +4292,16 @@ msgstr "外部供应商零件链接的URL"
msgid "Supplier part description"
msgstr "供应商零件说明"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "基本费用"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低费用(例如库存费)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "打包"
@@ -4309,7 +4317,7 @@ msgstr "包装数量"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "单包供应的总数量。为单个项目留空。"
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "多个"
@@ -4341,14 +4349,18 @@ msgstr "此供应商使用的默认货币"
msgid "Company Name"
msgstr "公司名称"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "有库存"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
msgstr "批发价"
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr ""
+
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
msgstr "数据导出过程中发生错误"
@@ -4453,67 +4465,67 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "记录的现有数据库标识符"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "列已映射到数据库字段"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "字段已映射到数据列"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "列映射必须链接到有效的导入会话"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "数据文件中不存在列"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "目标模型中不存在字段"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "所选字段为只读"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "导入会话"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "字段"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "列"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "行索引"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "原始行数据"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "错误"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "有效"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "更新现有记录需要提供ID。"
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
msgstr "没有找到与提供的ID相关的记录"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
msgstr "提供的ID格式无效"
@@ -4823,7 +4835,7 @@ msgstr "订单"
msgid "Order Complete"
msgstr "订单完成"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "内部零件"
@@ -4920,7 +4932,7 @@ msgstr "开始日期"
msgid "Scheduled start date for this order"
msgstr "本订单的预定开始日期"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "预计日期"
@@ -4958,7 +4970,7 @@ msgid "Order reference"
msgstr "订单参考"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "狀態"
@@ -5015,7 +5027,7 @@ msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "序列号不能分配给虚拟件"
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5141,7 +5153,7 @@ msgstr "已接收"
msgid "Number of items received"
msgstr "收到的物品数量"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "采购价格"
@@ -5213,8 +5225,8 @@ msgstr "审核人"
msgid "User who checked this shipment"
msgstr "检查此装运的用户"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "配送"
@@ -5279,7 +5291,7 @@ msgstr "分配数量不能超过库存数量"
msgid "Allocation quantity must be greater than zero"
msgstr "分配的数量必须大于零"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "序列化库存项目的数量必须为1"
@@ -5395,7 +5407,7 @@ msgstr "复制额外行"
msgid "Copy extra line items from the original order"
msgstr "从原始订单复制额外的行项目"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "复制参数"
@@ -5414,216 +5426,216 @@ msgstr "行项目"
msgid "Completed Lines"
msgstr "已完成行项目"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "复制订单"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "指定复制此订单的选项"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "订单ID不正确"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "供应商名称"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "订单不能取消"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "允许关闭行项目不完整的订单"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "订单中的行项目不完整"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "订单未打开"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "自动定价"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "根据供应商零件数据自动计算采购价格"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "购买价格货币"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "合并项目"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "将具有相同零件、目的地和目标日期的项目合并到一个行项目中"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "库存量单位"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "内部零件编号"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "内部零件名称"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "必须指定供应商零件"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "必须指定采购订单"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "供应商必须匹配采购订单"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "采购订单必须与供应商匹配"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "行项目"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "为收到的物品选择目的地位置"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "输入入库项目的批号"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "有效期至"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "输入入库库存项的有效期"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "输入入库库存项目的序列号"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "覆盖传入库存项目的包装资料"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "传入库存项目的附加说明"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "条形码"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "扫描条形码"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "条形码已被使用"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "必须提供行项目"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "必须指定目标位置"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "提供的条形码值必须是唯一的"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "配送"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "完成配送"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
msgstr "已分配的行"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "售出价格货币"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "已分配的项目"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "未提供装运详细信息"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "行项目与此订单不关联"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "数量必须为正"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "输入要分配的序列号"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "货物已发出"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "发货与此订单无关"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "未找到以下序列号的匹配项"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "以下序列号不可用"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "退货订单行项目"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "行项目与退货订单不匹配"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "行项目已收到"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "只能根据正在进行的订单接收物品"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "退货数量"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "行价格货币"
@@ -5734,71 +5746,71 @@ msgstr "排除指定类别下的子类别"
msgid "Has Results"
msgstr "有结果"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "是变体"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "是修订版本"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "有修订版本"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "物料清单合规"
-#: part/api.py:961
+#: part/api.py:962
msgid "Cascade Categories"
msgstr "级联分类"
-#: part/api.py:962
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
msgstr "如果为真,则包含给定分类下的所有子分类中的项目"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "按数字分类ID或字面值 \"null\" 进行筛选"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
msgstr "装配零件已启用"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
msgstr "装配零件可追踪"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "装配部份是可测试的"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
msgstr "元器件已激活"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
msgstr "该零部件可追溯"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "组件部份是可测试的"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
msgstr "该零部件是一个装配件"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
msgstr "该零部件为虚拟件"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
msgstr "有可用库存"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "使用"
@@ -5807,7 +5819,7 @@ msgstr "使用"
msgid "Part Category"
msgstr "零件类别"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "零件类别"
@@ -5839,7 +5851,7 @@ msgstr "此类别零件的默认关键字"
msgid "Icon"
msgstr "图标"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "图标(可选)"
@@ -5860,7 +5872,7 @@ msgstr "默认值"
msgid "Default Parameter Value"
msgstr "默认参数值"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "零件"
@@ -5975,7 +5987,7 @@ msgstr "提高搜索结果可见性的零件关键字"
msgid "Part category"
msgstr "零件类别"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "内部零件号 IPN"
@@ -6008,7 +6020,7 @@ msgstr "默认到期"
msgid "Expiry time (in days) for stock items of this part"
msgstr "此零件库存项的过期时间 (天)"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "最低库存"
@@ -6088,756 +6100,756 @@ msgstr "新建用户"
msgid "Owner responsible for this part"
msgstr "此零件的负责人"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "出售多个"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "用于缓存定价计算的货币"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "最低物料清单成本"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "元件的最低成本"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "物料清单的最高成本"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "元件的最高成本"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "最低购买成本"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "最高历史购买成本"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "最大购买成本"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "最高历史购买成本"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "最低内部价格"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "基于内部批发价的最低成本"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "最大内部价格"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "基于内部批发价的最高成本"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "供应商最低价格"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "外部供应商零件的最低价格"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "供应商最高价格"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "来自外部供应商的商零件的最高价格"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "最小变体成本"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "计算出的变体零件的最低成本"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "最大变体成本"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "计算出的变体零件的最大成本"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "最低成本"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "覆盖最低成本"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "最高成本"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "覆盖最大成本"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "计算总最低成本"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "计算总最大成本"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "最低售出价格"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "基于批发价的最低售出价格"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "最高售出价格"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "基于批发价的最大售出价格"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "最低销售成本"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "历史最低售出价格"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "最高销售成本"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "历史最高售出价格"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "用于盘点的零件"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "物品数量"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "盘点时的个别库存条目数"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "盘点时可用库存总额"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "日期"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "进行盘点的日期"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "最低库存成本"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "现有存库存最低成本估算"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "最高库存成本"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "目前库存最高成本估算"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "零件售出价格折扣"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "零件测试模板"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "模板名称无效 - 必须包含至少一个字母或者数字"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "测试模板只能为可拆分的部件创建"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "零件已存在具有相同主键的测试模板"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "测试名"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "输入测试的名称"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "测试主键"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "简化测试主键"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "测试说明"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "输入测试的描述"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "此测试是否已启用?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "必须的"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "需要此测试才能通过吗?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "需要值"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "添加测试结果时是否需要一个值?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "需要附件"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "添加测试结果时是否需要文件附件?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "此测试的有效选择 (逗号分隔)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "物料清单项目不能被修改 - 装配已锁定"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "物料清单项目不能修改 - 变体装配已锁定"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "选择父零件"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "子零件"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "选择要用于物料清单的零件"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "此物料清单项目的数量"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "此物料清单项目是可选的"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "这个物料清单项目是耗材 (它没有在生产订单中被追踪)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "设置数量"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "为补偿生产准备损耗所需的额外数量"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "损耗"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "生产预估损耗率(百分比,0-100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "舍入倍数"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "将所需生产数量向上舍入至该值的最接近倍数"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "物料清单项目引用"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "物料清单项目注释"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "校验和"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "物料清单行校验和"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "已验证"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "此物料清单项目已验证"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "获取继承的"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "此物料清单项目是由物料清单继承的变体零件"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "变体零件的库存项可以用于此物料清单项目"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "可追踪零件的数量必须是整数"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "必须指定子零件"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "物料清单项目替代品"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "替代品零件不能与主零件相同"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "上级物料清单项目"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "替代品零件"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "零件 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "零件2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "选择相关的零件"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "此关系的注释"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "零件关系不能在零件和自身之间创建"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "复制关系已经存在"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "上级类别"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "上级零件类别"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "子类别"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "结果"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "根据该模板记录的结果数量"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "购买此库存项的货币"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "文件不是一个图片"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "原始零件"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "选择要复制的原始零件"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "复制图片"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "从原零件复制图片"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "复制物料清单"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "从原始零件复制材料清单"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "从原始零件复制参数数据"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "复制备注"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "从原始零件复制备注"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "复制测试"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "从原始零件复制测试模板"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "初始化库存数量"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "指定此零件的初始库存数量。如果数量为零,则不添加任何库存。"
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "初始化库存地点"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "初始化指定此零件的库存地点"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "选择供应商(或为空以跳过)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "选择制造商(或为空)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "制造商零件号"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "所选公司不是一个有效的供应商"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "所选公司不是一个有效的制造商"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "与此制造商零件编号 (MPN) 的相匹配的制造商零件已存在"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "匹配此库存单位 (SKU) 的供应商零件已存在"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "类别名称"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "正在生产"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "目前正在生产的零件数量"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "此零件计划待产数量"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "库存项"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "修订"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "库存总量"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "未分配的库存"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "变体库存"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "重复零件"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "从另一个零件复制初始数据"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "初始库存"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "创建具有初始库存数量的零件"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "供应商信息"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "添加此零件的初始供应商信息"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "复制类别参数"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "从选择的零件复制参数模版"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "现有的图片"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "现有零件图片的文件名"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "图片不存在"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "验证整个物料清单"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "可以创建"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "生产订单必填项"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "分配到生产订单"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "销售订单必填项"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "分配到销售订单"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
msgstr "内部零件号"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
msgstr "零件描述"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "选择一个物料,以生成该物料(及其所有变型物料)的盘点信息"
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "选择一个分类,以包含该分类(及其子分类)下的所有物料"
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "选择一个库位,以包含该库位(含子库位)中有库存的所有物料"
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
msgstr "生成盘点条目"
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
msgstr "保存所选物料的盘点条目"
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr "生成报告"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr "为所选物料生成盘点报告"
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "最低价格"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "覆盖已计算的最低价格值"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "最低价格货币"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "最高价格"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "覆盖已计算的最高价格值"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "最高价格货币"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "更新这个零件的价格"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "无法将所提供的货币转换为 {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "最低价格不能高于最高价格。"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "最高价格不能低于最低价格"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
msgstr "数量必须大于或等于零"
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "选择父装配"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "选择零部件"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "选择要复制物料清单的零件"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "移除现有数据"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "复制前删除现有的物料清单项目"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "包含继承的"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "包含从模板零件继承的物料清单项目"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "跳过无效行"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "启用此选项以跳过无效行"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "复制替代品零件"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "复制物料清单项目时复制替代品零件"
@@ -7760,7 +7772,7 @@ msgstr "软件包插件"
msgid "Plugin"
msgstr "插件"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "未找到作者"
@@ -8290,7 +8302,7 @@ msgstr "库存项测试报告"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "已安装的项目"
@@ -8363,7 +8375,7 @@ msgstr "按顶级位置筛选"
msgid "Include sub-locations in filtered results"
msgstr "在筛选结果中包含子地点"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "上级地点"
@@ -8447,7 +8459,7 @@ msgstr "过期日期前"
msgid "Expiry date after"
msgstr "过期日期后"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "过期"
@@ -8532,7 +8544,7 @@ msgstr "为所有没有图标的位置设置默认图标(可选)"
msgid "Stock Location"
msgstr "库存地点"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "库存地点"
@@ -8581,7 +8593,7 @@ msgstr "必须指定零件"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "库存项不能存放在结构性库存地点!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "无法为虚拟零件创建库存项"
@@ -8626,7 +8638,7 @@ msgstr "为此库存项目选择匹配的供应商零件"
msgid "Where is this stock item located?"
msgstr "这个库存物品在哪里?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "包装此库存物品存储在"
@@ -8642,7 +8654,7 @@ msgstr "此项目是否安装在另一个项目中?"
msgid "Serial number for this item"
msgstr "此项目的序列号"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "此库存项的批号"
@@ -8755,7 +8767,7 @@ msgstr "库存项目前正在生产"
msgid "Serialized stock cannot be merged"
msgstr "序列化的库存不能合并"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "复制库存项"
@@ -8879,7 +8891,7 @@ msgstr "选择要生成序列号的零件"
msgid "Quantity of serial numbers to generate"
msgstr "要生成的序列号的数量"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "此结果的测试模板"
@@ -8903,222 +8915,222 @@ msgstr "父项"
msgid "Parent stock item"
msgstr "父库存项"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "添加时使用包装尺寸:定义的数量是包装的数量"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "包装规格"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "输入新项目的序列号"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "供应商零件编号"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "已过期"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "子项目"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "跟踪项目"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "此库存商品的购买价格,单位或包装"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "输入要序列化的库存项目数量"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "未提供库存项"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "数量不得超过现有库存量 ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "目标库存位置"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "此零件不能分配序列号"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "序列号已存在"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "选择要安装的库存项目"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "安装数量"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "输入要安装的项目数量"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "添加交易记录 (可选)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "安装数量必须至少为1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "库存项不可用"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "所选零件不在物料清单中"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "安装数量不得超过可用数量"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "已卸载项目的目标位置"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "选择要将库存项目转换为的零件"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "所选零件不是有效的转换选项"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "无法转换已分配供应商零件的库存项"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "库存项状态代码"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "选择要更改状态的库存项目"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "未选择库存商品"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "子位置"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "上级库存地点"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "零件必须可销售"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "物料已分配到销售订单"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "项目被分配到生产订单中"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "客户分配库存项目"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "所选公司不是客户"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "库存分配说明"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "必须提供库存物品清单"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "库存合并说明"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "允许不匹配的供应商"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "允许合并具有不同供应商零件的库存项目"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "允许不匹配的状态"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "允许合并具有不同状态代码的库存项目"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "必须提供至少两件库存物品"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "无更改"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "库存项主键值"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "库存项无现货"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "库存项已有现货"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "数量不得为负"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "库存交易记录"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "合并至现有库存"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "若可行,将退回项目合并至现有库存项"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "下一个序列号"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "上一个序列号"
@@ -9584,115 +9596,119 @@ msgstr "主组"
msgid "Primary group for the user"
msgstr "用户主组"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "管理员"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "采购订单"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "销售订单"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "退货订单"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "用户名"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "名"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "用户的名字(不包括姓氏)"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "姓"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "用户的姓氏"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "用户的电子邮件地址"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
msgstr "用户必须经过身份验证"
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
msgstr "只有超级用户可以为另一个用户创建令牌"
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
msgstr "管理员"
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
msgstr "该用户是否拥有管理员权限"
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "超级用户"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "此用户是否为超级用户"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "此用户帐户是否已激活"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "只有超级用户可以调整此字段"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "密码"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "用户密码"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "覆盖警告"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "覆盖有关密码规则的警告"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
msgstr "管理员"
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
msgstr "该用户是否拥有管理员权限"
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "你没有权限创建用户"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "您的账户已创建。"
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "请使用密码重置功能登录"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "欢迎使用 InvenTree"
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 cc556a25be..e3abf65820 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: 2026-04-11 07:38+0000\n"
-"PO-Revision-Date: 2026-04-11 07:40\n"
+"POT-Creation-Date: 2026-04-28 02:31+0000\n"
+"PO-Revision-Date: 2026-04-28 02:34\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
@@ -23,7 +23,7 @@ msgstr "未找到 API 端點"
#: InvenTree/api.py:438
msgid "List of items must be provided for bulk operation"
-msgstr ""
+msgstr "必須提供項目清單以進行大量操作"
#: InvenTree/api.py:445
msgid "Items must be provided as a list"
@@ -104,13 +104,13 @@ msgstr "輸入日期"
msgid "Invalid decimal value"
msgstr "無效的十進位數值"
-#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:497
-#: build/serializers.py:568 build/serializers.py:1765 company/models.py:827
+#: InvenTree/fields.py:218 InvenTree/models.py:1233 build/serializers.py:505
+#: build/serializers.py:576 build/serializers.py:1789 company/models.py:827
#: order/models.py:1828
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:732
-#: stock/serializers.py:908 stock/serializers.py:1050 stock/serializers.py:1378
-#: stock/serializers.py:1467 stock/serializers.py:1666
+#: stock/models.py:2954 stock/models.py:3078 stock/serializers.py:746
+#: stock/serializers.py:922 stock/serializers.py:1064 stock/serializers.py:1411
+#: stock/serializers.py:1500 stock/serializers.py:1699
msgid "Notes"
msgstr "備註"
@@ -165,19 +165,19 @@ msgstr "資料包含被禁止的 Markdown 內容"
#: InvenTree/helpers_model.py:109
msgid "Invalid URL: no hostname"
-msgstr ""
+msgstr "無效的 URL:沒有主機名稱"
#: InvenTree/helpers_model.py:114
msgid "Invalid URL: hostname could not be resolved"
-msgstr ""
+msgstr "無效的 URL:無法解析主機名稱"
#: InvenTree/helpers_model.py:120
msgid "URL points to a private or reserved IP address"
-msgstr ""
+msgstr "URL 指向私有或保留的 IP 地址"
#: InvenTree/helpers_model.py:195
msgid "Too many redirects"
-msgstr ""
+msgstr "重新導向次數過多"
#: InvenTree/helpers_model.py:200
msgid "Connection error"
@@ -215,7 +215,7 @@ msgstr "提供的 URL 不是一個有效的圖片文件"
msgid "Log in to the app"
msgstr "登入此應用程式"
-#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:201
+#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "電子郵件"
@@ -269,7 +269,7 @@ msgstr "無效的選項"
#: InvenTree/models.py:1022 common/models.py:1438 common/models.py:1865
#: common/models.py:2126 common/models.py:2251 common/models.py:2548
-#: common/serializers.py:638 generic/states/serializers.py:20
+#: common/serializers.py:647 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1101 plugin/models.py:54
#: report/models.py:219 stock/models.py:86
msgid "Name"
@@ -336,51 +336,51 @@ msgstr "伺服器紀錄了一個錯誤。"
msgid "Image"
msgstr "圖像"
-#: InvenTree/serializers.py:324 part/models.py:4168
+#: InvenTree/serializers.py:361 part/models.py:4182
msgid "Must be a valid number"
msgstr "必須是有效的數字"
-#: InvenTree/serializers.py:366 company/models.py:217 part/models.py:3307
+#: InvenTree/serializers.py:403 company/models.py:217 part/models.py:3316
msgid "Currency"
msgstr "貨幣"
-#: InvenTree/serializers.py:369 part/serializers.py:1355
+#: InvenTree/serializers.py:406 part/serializers.py:1387
msgid "Select currency from available options"
msgstr "從可用選項中選擇貨幣"
-#: InvenTree/serializers.py:719
+#: InvenTree/serializers.py:756
msgid "This field may not be null."
msgstr "此欄位不可為空白。"
-#: InvenTree/serializers.py:725
+#: InvenTree/serializers.py:762
msgid "Invalid value"
msgstr "無效值"
-#: InvenTree/serializers.py:762
+#: InvenTree/serializers.py:799
msgid "Remote Image"
msgstr "遠程圖片"
-#: InvenTree/serializers.py:763
+#: InvenTree/serializers.py:800
msgid "URL of remote image file"
msgstr "遠程圖片文件的 URL"
-#: InvenTree/serializers.py:781
+#: InvenTree/serializers.py:818
msgid "Downloading images from remote URL is not enabled"
msgstr "未啓用從遠程 URL下載圖片"
-#: InvenTree/serializers.py:788
+#: InvenTree/serializers.py:825
msgid "Failed to download image from remote URL"
msgstr "從遠程URL下載圖像失敗"
-#: InvenTree/serializers.py:871
+#: InvenTree/serializers.py:908
msgid "Invalid content type format"
msgstr "不合規的內容類型格式"
-#: InvenTree/serializers.py:874
+#: InvenTree/serializers.py:911
msgid "Content type not found"
msgstr "內容類型未發現"
-#: InvenTree/serializers.py:880
+#: InvenTree/serializers.py:917
msgid "Content type does not match required mixin class"
msgstr "內容類型與所需的 mixin 類別不符"
@@ -536,11 +536,11 @@ msgstr "中文 (簡體)"
msgid "Chinese (Traditional)"
msgstr "中文 (繁體)"
-#: InvenTree/tasks.py:678
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "有可用更新"
-#: InvenTree/tasks.py:679
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "有新的 InvenTree 更新可用"
@@ -561,21 +561,21 @@ msgstr "訂單狀態"
msgid "Parent Build"
msgstr "上層生產工單"
-#: build/api.py:85 build/api.py:904 order/api.py:558 order/api.py:783
+#: build/api.py:85 build/api.py:918 order/api.py:558 order/api.py:783
#: order/api.py:1185 order/api.py:1486 stock/api.py:572
msgid "Include Variants"
msgstr "包含變體"
-#: build/api.py:101 build/api.py:461 build/api.py:918 build/models.py:283
-#: build/serializers.py:1205 build/serializers.py:1376
-#: build/serializers.py:1462 company/models.py:1037 company/serializers.py:435
+#: build/api.py:101 build/api.py:475 build/api.py:932 build/models.py:283
+#: build/serializers.py:1214 build/serializers.py:1390
+#: build/serializers.py:1483 company/models.py:1037 company/serializers.py:447
#: order/api.py:309 order/api.py:313 order/api.py:940 order/api.py:1198
#: order/api.py:1201 order/models.py:1991 order/models.py:2159
-#: order/models.py:2160 part/api.py:1132 part/api.py:1135 part/api.py:1348
-#: part/models.py:527 part/models.py:3318 part/models.py:3461
-#: part/models.py:3519 part/models.py:3540 part/models.py:3562
-#: part/models.py:3703 part/models.py:3965 part/models.py:4384
-#: part/serializers.py:1304 part/serializers.py:1926
+#: order/models.py:2160 part/api.py:1133 part/api.py:1136 part/api.py:1349
+#: part/models.py:527 part/models.py:3327 part/models.py:3470
+#: part/models.py:3528 part/models.py:3549 part/models.py:3571
+#: part/models.py:3712 part/models.py:3977 part/models.py:4398
+#: part/serializers.py:1336 part/serializers.py:1990
#: 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
@@ -585,8 +585,8 @@ msgstr "包含變體"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: stock/api.py:585 stock/api.py:1529 stock/serializers.py:120
-#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:602
-#: stock/serializers.py:941 templates/email/build_order_completed.html:17
+#: stock/serializers.py:172 stock/serializers.py:419 stock/serializers.py:607
+#: stock/serializers.py:955 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
@@ -595,9 +595,9 @@ msgstr "包含變體"
msgid "Part"
msgstr "零件"
-#: build/api.py:121 build/api.py:124 build/serializers.py:1475 part/api.py:967
-#: part/api.py:1359 part/models.py:412 part/models.py:1142 part/models.py:3590
-#: part/serializers.py:1314 part/serializers.py:1742 stock/api.py:868
+#: build/api.py:121 build/api.py:124 build/serializers.py:1497 part/api.py:968
+#: part/api.py:1360 part/models.py:412 part/models.py:1142 part/models.py:3599
+#: part/serializers.py:1346 part/serializers.py:1783 stock/api.py:868
msgid "Category"
msgstr "類別"
@@ -665,89 +665,89 @@ msgstr "最大日期"
msgid "Exclude Tree"
msgstr "排除樹"
-#: build/api.py:400
+#: build/api.py:414
msgid "Build must be cancelled before it can be deleted"
msgstr "工單必須被取消才能被刪除"
-#: build/api.py:444 build/serializers.py:1406 part/models.py:3999
+#: build/api.py:458 build/serializers.py:1424 part/models.py:4011
msgid "Consumable"
msgstr "耗材"
-#: build/api.py:447 build/serializers.py:1409 part/models.py:3993
+#: build/api.py:461 build/serializers.py:1427 part/models.py:4005
msgid "Optional"
msgstr "非必須項目"
-#: build/api.py:450 build/serializers.py:1449 common/setting/system.py:483
-#: part/models.py:1247 part/serializers.py:1696 part/serializers.py:1715
+#: build/api.py:464 build/serializers.py:1469 common/setting/system.py:483
+#: part/models.py:1247 part/serializers.py:1728 part/serializers.py:1754
#: stock/api.py:638
msgid "Assembly"
msgstr "裝配"
-#: build/api.py:453
+#: build/api.py:467
msgid "Tracked"
msgstr "追蹤中"
-#: build/api.py:456 build/serializers.py:1412 part/models.py:1265
+#: build/api.py:470 build/serializers.py:1430 part/models.py:1265
msgid "Testable"
msgstr "可測試"
-#: build/api.py:466 order/api.py:1004 order/api.py:1374
+#: build/api.py:480 order/api.py:1004 order/api.py:1374
msgid "Order Outstanding"
msgstr "訂單未完成"
-#: build/api.py:476 build/serializers.py:1502 order/api.py:963
+#: build/api.py:490 build/serializers.py:1526 order/api.py:963
msgid "Allocated"
msgstr "已分配"
-#: build/api.py:485 build/models.py:1786 build/serializers.py:1425
+#: build/api.py:499 build/models.py:1794 build/serializers.py:1443
msgid "Consumed"
msgstr "已消耗"
-#: build/api.py:494 company/models.py:882 company/serializers.py:414
+#: build/api.py:508 company/models.py:882 company/serializers.py:424
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "可用數量"
-#: build/api.py:518 build/serializers.py:1504 company/serializers.py:411
-#: order/serializers.py:1284 part/serializers.py:849 part/serializers.py:1170
-#: part/serializers.py:1751
+#: build/api.py:532 build/serializers.py:1528 company/serializers.py:421
+#: order/serializers.py:1343 part/serializers.py:861 part/serializers.py:1197
+#: part/serializers.py:1792
msgid "On Order"
msgstr "已訂購"
-#: build/api.py:671
+#: build/api.py:685
msgid "Build not found"
-msgstr ""
+msgstr "找不到生產記錄"
-#: build/api.py:941 build/models.py:120 order/models.py:2024
+#: build/api.py:955 build/models.py:120 order/models.py:2024
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:93 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "生產工單"
-#: build/api.py:955 build/api.py:959 build/serializers.py:360
-#: build/serializers.py:485 build/serializers.py:555 build/serializers.py:1253
-#: build/serializers.py:1258 order/api.py:1245 order/api.py:1250
-#: order/serializers.py:804 order/serializers.py:944 order/serializers.py:2031
-#: part/serializers.py:1324 stock/api.py:986 stock/serializers.py:111
-#: stock/serializers.py:609 stock/serializers.py:725 stock/serializers.py:903
-#: stock/serializers.py:1460 stock/serializers.py:1781
-#: stock/serializers.py:1830 templates/email/stale_stock_notification.html:18
+#: build/api.py:969 build/api.py:973 build/serializers.py:368
+#: build/serializers.py:493 build/serializers.py:563 build/serializers.py:1264
+#: build/serializers.py:1270 order/api.py:1245 order/api.py:1250
+#: order/serializers.py:845 order/serializers.py:985 order/serializers.py:2139
+#: part/serializers.py:1356 stock/api.py:986 stock/serializers.py:111
+#: stock/serializers.py:619 stock/serializers.py:739 stock/serializers.py:917
+#: stock/serializers.py:1493 stock/serializers.py:1814
+#: stock/serializers.py:1863 templates/email/stale_stock_notification.html:18
#: users/models.py:549
msgid "Location"
msgstr "地點"
-#: build/api.py:967 part/serializers.py:1349
+#: build/api.py:981 part/serializers.py:1381
msgid "Output"
msgstr "產出"
-#: build/api.py:969
+#: build/api.py:983
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
-msgstr ""
+msgstr "依產出庫存項目 ID 篩選。使用 'null' 尋找未安裝的生產項目。"
-#: build/models.py:121 users/ruleset.py:31
+#: build/models.py:121 users/ruleset.py:33
msgid "Build Orders"
msgstr "生產工單"
@@ -783,9 +783,9 @@ msgstr "目標日期必須晚於開始日期"
msgid "Build Order Reference"
msgstr "生產工單代號"
-#: build/models.py:259 build/serializers.py:1403 order/models.py:641
+#: build/models.py:259 build/serializers.py:1421 order/models.py:641
#: order/models.py:1350 order/models.py:1821 order/models.py:2764
-#: part/models.py:4039
+#: part/models.py:4051
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -799,7 +799,7 @@ msgstr "關於生產工單的簡單説明(選填)"
#: build/models.py:278
msgid "Build Order to which this build is allocated"
-msgstr ""
+msgstr "分配此生產的生產訂單"
#: build/models.py:287
msgid "Select part to build"
@@ -811,9 +811,9 @@ msgstr "銷售訂單代號"
#: build/models.py:297
msgid "Sales Order to which this build is allocated"
-msgstr ""
+msgstr "分配此生產的銷售訂單"
-#: build/models.py:302 build/serializers.py:1085
+#: build/models.py:302 build/serializers.py:1093
msgid "Source Location"
msgstr "來源倉儲地點"
@@ -861,16 +861,16 @@ msgstr "生產狀態"
msgid "Build status code"
msgstr "生產狀態代碼"
-#: build/models.py:356 build/serializers.py:347 order/serializers.py:820
-#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1633
+#: build/models.py:356 build/serializers.py:355 order/serializers.py:861
+#: stock/models.py:1107 stock/serializers.py:85 stock/serializers.py:1666
msgid "Batch Code"
msgstr "批號"
-#: build/models.py:360 build/serializers.py:348
+#: build/models.py:360 build/serializers.py:356
msgid "Batch code for this build output"
msgstr "此產出的批號"
-#: build/models.py:364 order/models.py:484 order/serializers.py:166
+#: build/models.py:364 order/models.py:484 order/serializers.py:178
#: part/models.py:1328
msgid "Creation Date"
msgstr "建立日期"
@@ -907,120 +907,120 @@ msgstr "發布者"
msgid "User who issued this build order"
msgstr "發布此生產工單的使用者"
-#: build/models.py:411 common/models.py:187 order/api.py:182
+#: build/models.py:419 common/models.py:187 order/api.py:182
#: order/models.py:516 part/models.py:1345
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
msgstr "負責人"
-#: build/models.py:412
+#: build/models.py:420
msgid "User or group responsible for this build order"
msgstr "負責此生產工單的使用者或羣組"
-#: build/models.py:417 stock/models.py:1100
+#: build/models.py:425 stock/models.py:1100
msgid "External Link"
msgstr "外部連結"
-#: build/models.py:419 common/models.py:2014 part/models.py:1176
+#: build/models.py:427 common/models.py:2014 part/models.py:1176
#: stock/models.py:1102
msgid "Link to external URL"
msgstr "外部URL連結"
-#: build/models.py:424
+#: build/models.py:432
msgid "Build Priority"
msgstr "製造優先度"
-#: build/models.py:427
+#: build/models.py:435
msgid "Priority of this build order"
msgstr "此生產工單的優先程度"
-#: build/models.py:435 common/models.py:157 common/models.py:171
+#: build/models.py:443 common/models.py:157 common/models.py:171
#: order/api.py:168 order/models.py:456 order/models.py:1853
msgid "Project Code"
msgstr "專案代碼"
-#: build/models.py:436
+#: build/models.py:444
msgid "Project code for this build order"
msgstr "此生產工單隸屬的專案代碼"
-#: build/models.py:689
+#: build/models.py:697
msgid "Cannot complete build order with open child builds"
msgstr "無法完成仍有未結束子工單的生產工單"
-#: build/models.py:694
+#: build/models.py:702
msgid "Cannot complete build order with incomplete outputs"
msgstr "無法完成有未完成產出的生產工單"
-#: build/models.py:713 build/models.py:843
+#: build/models.py:721 build/models.py:851
msgid "Failed to offload task to complete build allocations"
msgstr "未能卸載任務以完成生產分配"
-#: build/models.py:736
+#: build/models.py:744
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "生產工單 {build} 已經完成"
-#: build/models.py:742
+#: build/models.py:750
msgid "A build order has been completed"
msgstr "一張生產工單已經完成"
-#: build/models.py:924 build/serializers.py:395
+#: build/models.py:932 build/serializers.py:403
msgid "Serial numbers must be provided for trackable parts"
msgstr "對於可跟蹤的零件,必須提供序列號"
-#: build/models.py:1016 build/models.py:1103
+#: build/models.py:1024 build/models.py:1111
msgid "No build output specified"
msgstr "未指定產出"
-#: build/models.py:1019
+#: build/models.py:1027
msgid "Build output is already completed"
msgstr "產出已完成"
-#: build/models.py:1022
+#: build/models.py:1030
msgid "Build output does not match Build Order"
msgstr "產出與生產訂單不匹配"
-#: build/models.py:1110 build/models.py:1216 build/serializers.py:273
-#: build/serializers.py:323 build/serializers.py:953 build/serializers.py:1716
-#: order/models.py:744 order/serializers.py:615 order/serializers.py:815
-#: part/serializers.py:1689 stock/models.py:947 stock/models.py:1437
-#: stock/models.py:1902 stock/serializers.py:703 stock/serializers.py:1622
+#: build/models.py:1118 build/models.py:1224 build/serializers.py:281
+#: build/serializers.py:331 build/serializers.py:961 build/serializers.py:1740
+#: order/models.py:744 order/serializers.py:631 order/serializers.py:856
+#: part/serializers.py:1721 stock/models.py:947 stock/models.py:1437
+#: stock/models.py:1902 stock/serializers.py:717 stock/serializers.py:1655
msgid "Quantity must be greater than zero"
msgstr "數量必須大於零"
-#: build/models.py:1114 build/models.py:1221 build/serializers.py:278
+#: build/models.py:1122 build/models.py:1229 build/serializers.py:286
msgid "Quantity cannot be greater than the output quantity"
msgstr "數量不能大於輸出數量"
-#: build/models.py:1189 build/serializers.py:594
+#: build/models.py:1197 build/serializers.py:602
msgid "Build output has not passed all required tests"
msgstr "此產出尚未通過所有必要測試"
-#: build/models.py:1192 build/serializers.py:589
+#: build/models.py:1200 build/serializers.py:597
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "產出 {serial} 未通過所有必要測試"
-#: build/models.py:1203
-msgid "Allocated stock items are still in production"
-msgstr ""
-
#: build/models.py:1211
-msgid "Cannot partially complete a build output with allocated items"
-msgstr ""
+msgid "Allocated stock items are still in production"
+msgstr "已分配的庫存項目仍在生產中"
-#: build/models.py:1740
+#: build/models.py:1219
+msgid "Cannot partially complete a build output with allocated items"
+msgstr "無法部分完成具有已分配項目的生產產出"
+
+#: build/models.py:1748
msgid "Build Order Line Item"
msgstr "生產訂單行項目"
-#: build/models.py:1765
+#: build/models.py:1773
msgid "Build object"
msgstr "生產對象"
-#: build/models.py:1777 build/models.py:2102 build/serializers.py:259
-#: build/serializers.py:308 build/serializers.py:1424 common/models.py:1368
-#: order/models.py:1795 order/models.py:2647 order/serializers.py:1683
-#: order/serializers.py:2120 part/models.py:3475 part/models.py:3987
+#: build/models.py:1785 build/models.py:2110 build/serializers.py:267
+#: build/serializers.py:316 build/serializers.py:1442 common/models.py:1368
+#: order/models.py:1795 order/models.py:2647 order/serializers.py:1783
+#: order/serializers.py:2232 part/models.py:3484 part/models.py:3999
#: 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:36
@@ -1032,445 +1032,445 @@ msgstr "生產對象"
#: report/templates/report/inventree_stock_report_merge.html:113
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169
-#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:691
+#: stock/serializers.py:136 stock/serializers.py:180 stock/serializers.py:705
#: templates/email/build_order_completed.html:18
#: templates/email/stale_stock_notification.html:19
msgid "Quantity"
msgstr "數量"
-#: build/models.py:1778
+#: build/models.py:1786
msgid "Required quantity for build order"
msgstr "生產工單所需數量"
-#: build/models.py:1787
+#: build/models.py:1795
msgid "Quantity of consumed stock"
msgstr "已消耗庫存數量"
-#: build/models.py:1888
+#: build/models.py:1896
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "生產項必須指定產出,因為主零件已經被標記為可追蹤的"
-#: build/models.py:1951
+#: build/models.py:1959
msgid "Selected stock item does not match BOM line"
msgstr "選擇的庫存品項和BOM的項目不符"
-#: build/models.py:1970
+#: build/models.py:1978
msgid "Allocated quantity must be greater than zero"
-msgstr ""
+msgstr "分配數量必須大於零"
-#: build/models.py:1976
+#: build/models.py:1984
msgid "Quantity must be 1 for serialized stock"
msgstr "有序號的品項數量必須為1"
-#: build/models.py:1986
+#: build/models.py:1994
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配的數量({q})不能超過可用的庫存數量({a})"
-#: build/models.py:2003 order/models.py:2596
+#: build/models.py:2011 order/models.py:2596
msgid "Stock item is over-allocated"
msgstr "庫存品項超額分配"
-#: build/models.py:2092 build/serializers.py:936 build/serializers.py:1221
-#: order/serializers.py:1520 order/serializers.py:1541
+#: build/models.py:2100 build/serializers.py:944 build/serializers.py:1231
+#: order/serializers.py:1620 order/serializers.py:1641
#: report/templates/report/inventree_sales_order_shipment_report.html:29
#: stock/api.py:1417 stock/models.py:445 stock/serializers.py:102
-#: stock/serializers.py:815 stock/serializers.py:1316 stock/serializers.py:1428
+#: stock/serializers.py:829 stock/serializers.py:1349 stock/serializers.py:1461
msgid "Stock Item"
msgstr "庫存品項"
-#: build/models.py:2093
+#: build/models.py:2101
msgid "Source stock item"
msgstr "來源庫存項目"
-#: build/models.py:2103
+#: build/models.py:2111
msgid "Stock quantity to allocate to build"
msgstr "要分配的庫存數量"
-#: build/models.py:2112
+#: build/models.py:2120
msgid "Install into"
msgstr "安裝到"
-#: build/models.py:2113
+#: build/models.py:2121
msgid "Destination stock item"
msgstr "目的庫存品項"
-#: build/serializers.py:115
+#: build/serializers.py:116
msgid "Build Level"
msgstr "構建等級"
-#: build/serializers.py:128 part/serializers.py:1256
+#: build/serializers.py:130 part/serializers.py:1283
msgid "Part Name"
msgstr "零件名稱"
-#: build/serializers.py:207 build/serializers.py:962
+#: build/serializers.py:215 build/serializers.py:970
msgid "Build Output"
msgstr "產出"
-#: build/serializers.py:219
+#: build/serializers.py:227
msgid "Build output does not match the parent build"
msgstr "產出與之前的生產不匹配"
-#: build/serializers.py:223
+#: build/serializers.py:231
msgid "Output part does not match BuildOrder part"
msgstr "產出零件與生產訂單零件不匹配"
-#: build/serializers.py:227
+#: build/serializers.py:235
msgid "This build output has already been completed"
msgstr "此產出已經完成"
-#: build/serializers.py:241
+#: build/serializers.py:249
msgid "This build output is not fully allocated"
msgstr "此產出尚未完全分配"
-#: build/serializers.py:260 build/serializers.py:309
+#: build/serializers.py:268 build/serializers.py:317
msgid "Enter quantity for build output"
msgstr "輸入產出數量"
-#: build/serializers.py:331
+#: build/serializers.py:339
msgid "Integer quantity required for trackable parts"
msgstr "可追蹤的零件數量必須為整數"
-#: build/serializers.py:337
+#: build/serializers.py:345
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "因為BOM包含可追蹤的零件,所以數量必須為整數"
-#: build/serializers.py:354 order/serializers.py:836 order/serializers.py:1687
-#: stock/serializers.py:714
+#: build/serializers.py:362 order/serializers.py:877 order/serializers.py:1787
+#: stock/serializers.py:728
msgid "Serial Numbers"
msgstr "序號"
-#: build/serializers.py:355
+#: build/serializers.py:363
msgid "Enter serial numbers for build outputs"
msgstr "輸出產出的序列號"
-#: build/serializers.py:361
+#: build/serializers.py:369
msgid "Stock location for build output"
msgstr "生產輸出的庫存地點"
-#: build/serializers.py:376
+#: build/serializers.py:384
msgid "Auto Allocate Serial Numbers"
msgstr "自動分配序號"
-#: build/serializers.py:378
+#: build/serializers.py:386
msgid "Automatically allocate required items with matching serial numbers"
msgstr "自動為需要項目分配對應的序號"
-#: build/serializers.py:411 order/serializers.py:922 stock/api.py:1186
+#: build/serializers.py:419 order/serializers.py:963 stock/api.py:1186
#: stock/models.py:1925
msgid "The following serial numbers already exist or are invalid"
msgstr "序號已存在或無效"
-#: build/serializers.py:453 build/serializers.py:509 build/serializers.py:601
+#: build/serializers.py:461 build/serializers.py:517 build/serializers.py:609
msgid "A list of build outputs must be provided"
msgstr "必須提供產出清單"
-#: build/serializers.py:486
+#: build/serializers.py:494
msgid "Stock location for scrapped outputs"
msgstr "廢品產出的庫存位置"
-#: build/serializers.py:492
+#: build/serializers.py:500
msgid "Discard Allocations"
msgstr "放棄分配"
-#: build/serializers.py:493
+#: build/serializers.py:501
msgid "Discard any stock allocations for scrapped outputs"
msgstr "取消對廢品產出的任何庫存分配"
-#: build/serializers.py:498
+#: build/serializers.py:506
msgid "Reason for scrapping build output(s)"
msgstr "廢品產出的原因"
-#: build/serializers.py:556
+#: build/serializers.py:564
msgid "Location for completed build outputs"
msgstr "已完成刪除的庫存地點"
-#: build/serializers.py:564
+#: build/serializers.py:572
msgid "Accept Incomplete Allocation"
msgstr "接受不完整的分配"
-#: build/serializers.py:565
+#: build/serializers.py:573
msgid "Complete outputs if stock has not been fully allocated"
msgstr "如果庫存尚未全部分配,則完成產出"
-#: build/serializers.py:690
+#: build/serializers.py:698
msgid "Consume Allocated Stock"
msgstr "消費已分配的庫存"
-#: build/serializers.py:691
+#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
msgstr "消耗已分配給此生產的任何庫存"
-#: build/serializers.py:697
+#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
msgstr "移除未完成的產出"
-#: build/serializers.py:698
+#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
msgstr "刪除所有未完成的產出"
-#: build/serializers.py:725
+#: build/serializers.py:733
msgid "Not permitted"
msgstr "不允許"
-#: build/serializers.py:726
+#: build/serializers.py:734
msgid "Accept as consumed by this build order"
msgstr "接受作為此生產訂單的消費"
-#: build/serializers.py:727
+#: build/serializers.py:735
msgid "Deallocate before completing this build order"
msgstr "完成此生產訂單前取消分配"
-#: build/serializers.py:754
+#: build/serializers.py:762
msgid "Overallocated Stock"
msgstr "超出分配的庫存"
-#: build/serializers.py:757
+#: build/serializers.py:765
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "如何處理分配給生產訂單的額外庫存項"
-#: build/serializers.py:768
+#: build/serializers.py:776
msgid "Some stock items have been overallocated"
msgstr "有庫存項目已被過度分配"
-#: build/serializers.py:773
+#: build/serializers.py:781
msgid "Accept Unallocated"
msgstr "接受未分配"
-#: build/serializers.py:775
+#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "接受庫存項未被完全分配至生產訂單"
-#: build/serializers.py:786
+#: build/serializers.py:794
msgid "Required stock has not been fully allocated"
msgstr "所需庫存尚未完全分配"
-#: build/serializers.py:791 order/serializers.py:491 order/serializers.py:1588
+#: build/serializers.py:799 order/serializers.py:507 order/serializers.py:1688
msgid "Accept Incomplete"
msgstr "接受不完整"
-#: build/serializers.py:793
+#: build/serializers.py:801
msgid "Accept that the required number of build outputs have not been completed"
msgstr "允許所需數量的產出未完成"
-#: build/serializers.py:804
+#: build/serializers.py:812
msgid "Required build quantity has not been completed"
msgstr "未完成所需生產數量"
-#: build/serializers.py:816
+#: build/serializers.py:824
msgid "Build order has open child build orders"
msgstr "生產訂單有打開的子生產訂單"
-#: build/serializers.py:819
+#: build/serializers.py:827
msgid "Build order must be in production state"
msgstr "生產訂單必須處於生產狀態"
-#: build/serializers.py:822
+#: build/serializers.py:830
msgid "Build order has incomplete outputs"
msgstr "生產訂單有未完成的產出"
-#: build/serializers.py:861
+#: build/serializers.py:869
msgid "Build Line"
msgstr "生產行"
-#: build/serializers.py:869
+#: build/serializers.py:877
msgid "Build output"
msgstr "產出"
-#: build/serializers.py:877
+#: build/serializers.py:885
msgid "Build output must point to the same build"
msgstr "生產產出必須指向相同的生產"
-#: build/serializers.py:908
+#: build/serializers.py:916
msgid "Build Line Item"
msgstr "生產行項目"
-#: build/serializers.py:926
+#: build/serializers.py:934
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part 必須與生產訂單零件相同"
-#: build/serializers.py:942 stock/serializers.py:1329
+#: build/serializers.py:950 stock/serializers.py:1362
msgid "Item must be in stock"
msgstr "商品必須有庫存"
-#: build/serializers.py:985 order/serializers.py:1574
+#: build/serializers.py:993 order/serializers.py:1674
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "可用量 ({q}) 超出限制"
-#: build/serializers.py:991
+#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
msgstr "對於被追蹤的零件的分配,必須指定生產產出"
-#: build/serializers.py:999
+#: build/serializers.py:1007
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "對於未被追蹤的零件,無法指定生產產出"
-#: build/serializers.py:1023 order/serializers.py:1847
+#: build/serializers.py:1031 order/serializers.py:1947
msgid "Allocation items must be provided"
msgstr "必須提供分配項目"
-#: build/serializers.py:1087
+#: build/serializers.py:1095
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "零件來源的庫存地點(留空則可來源於任何庫存地點)"
-#: build/serializers.py:1096
+#: build/serializers.py:1104
msgid "Exclude Location"
msgstr "排除位置"
-#: build/serializers.py:1097
+#: build/serializers.py:1105
msgid "Exclude stock items from this selected location"
msgstr "從該選定的庫存地點排除庫存項"
-#: build/serializers.py:1102
+#: build/serializers.py:1110
msgid "Interchangeable Stock"
msgstr "可互換庫存"
-#: build/serializers.py:1103
+#: build/serializers.py:1111
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "在多個位置的庫存項目可以互換使用"
-#: build/serializers.py:1108
+#: build/serializers.py:1116
msgid "Substitute Stock"
msgstr "替代品庫存"
-#: build/serializers.py:1109
+#: build/serializers.py:1117
msgid "Allow allocation of substitute parts"
msgstr "允許分配可替換的零件"
-#: build/serializers.py:1114
+#: build/serializers.py:1122
msgid "Optional Items"
msgstr "可選項目"
-#: build/serializers.py:1115
+#: build/serializers.py:1123
msgid "Allocate optional BOM items to build order"
msgstr "分配可選的物料清單給生產訂單"
-#: build/serializers.py:1121
+#: build/serializers.py:1129
msgid "All Items"
msgstr "全部品項"
-#: build/serializers.py:1122
+#: build/serializers.py:1130
msgid "Untracked Items"
-msgstr ""
+msgstr "未追蹤項目"
-#: build/serializers.py:1123
+#: build/serializers.py:1131
msgid "Tracked Items"
-msgstr ""
+msgstr "已追蹤項目"
-#: build/serializers.py:1125
+#: build/serializers.py:1133
msgid "Item Type"
msgstr "品項類型"
-#: build/serializers.py:1126
+#: build/serializers.py:1134
msgid "Select item type to auto-allocate"
-msgstr ""
+msgstr "選擇要自動分配的項目類型"
-#: build/serializers.py:1180
+#: build/serializers.py:1188
msgid "BOM Reference"
msgstr "物料清單參考"
-#: build/serializers.py:1186
+#: build/serializers.py:1194
msgid "BOM Part ID"
msgstr "物料清單零件識別號碼"
-#: build/serializers.py:1193
+#: build/serializers.py:1201
msgid "BOM Part Name"
msgstr "物料清單零件名稱"
-#: build/serializers.py:1242
+#: build/serializers.py:1253
msgid "Install Into"
msgstr "安裝至"
-#: build/serializers.py:1269 build/serializers.py:1487
+#: build/serializers.py:1282 build/serializers.py:1511
msgid "Build"
msgstr "生產"
-#: build/serializers.py:1288 company/models.py:638 order/api.py:322
-#: order/api.py:327 order/api.py:554 order/serializers.py:607
-#: stock/models.py:1043 stock/serializers.py:582
+#: build/serializers.py:1302 company/models.py:638 order/api.py:322
+#: order/api.py:327 order/api.py:554 order/serializers.py:623
+#: stock/models.py:1043 stock/serializers.py:586
msgid "Supplier Part"
msgstr "供應商零件"
-#: build/serializers.py:1304 stock/serializers.py:635
+#: build/serializers.py:1318 stock/serializers.py:649
msgid "Allocated Quantity"
msgstr "已分配數量"
-#: build/serializers.py:1371
+#: build/serializers.py:1385
msgid "Build Reference"
msgstr "構建參考"
-#: build/serializers.py:1381
+#: build/serializers.py:1395
msgid "Part Category Name"
msgstr "零件類別名稱"
-#: build/serializers.py:1415 common/setting/system.py:507 part/models.py:1259
+#: build/serializers.py:1433 common/setting/system.py:507 part/models.py:1259
msgid "Trackable"
msgstr "可追蹤"
-#: build/serializers.py:1418
+#: build/serializers.py:1436
msgid "Inherited"
msgstr "已繼承的"
-#: build/serializers.py:1421 part/models.py:4072
+#: build/serializers.py:1439 part/models.py:4084
msgid "Allow Variants"
msgstr "允許變體"
-#: build/serializers.py:1427 build/serializers.py:1432 part/models.py:3793
-#: part/models.py:4376 stock/api.py:881
+#: build/serializers.py:1445 build/serializers.py:1451 part/models.py:3802
+#: part/models.py:4390 stock/api.py:881
msgid "BOM Item"
msgstr "物料清單項"
-#: build/serializers.py:1505 order/serializers.py:1285 part/serializers.py:1174
-#: part/serializers.py:1755
+#: build/serializers.py:1529 order/serializers.py:1344 part/serializers.py:1201
+#: part/serializers.py:1796
msgid "In Production"
msgstr "生產中"
-#: build/serializers.py:1507 part/serializers.py:840 part/serializers.py:1178
+#: build/serializers.py:1531 part/serializers.py:852 part/serializers.py:1205
msgid "Scheduled to Build"
msgstr "排程生產中"
-#: build/serializers.py:1510 part/serializers.py:873
+#: build/serializers.py:1534 part/serializers.py:885
msgid "External Stock"
msgstr "外部庫存"
-#: build/serializers.py:1511 part/serializers.py:1164 part/serializers.py:1798
+#: build/serializers.py:1535 part/serializers.py:1191 part/serializers.py:1859
msgid "Available Stock"
msgstr "可用庫存"
-#: build/serializers.py:1513
+#: build/serializers.py:1537
msgid "Available Substitute Stock"
msgstr "可用的替代品庫存"
-#: build/serializers.py:1516
+#: build/serializers.py:1540
msgid "Available Variant Stock"
msgstr "可用的變體庫存"
-#: build/serializers.py:1729
+#: build/serializers.py:1753
msgid "Consumed quantity exceeds allocated quantity"
msgstr "消耗數量超過已分配數量"
-#: build/serializers.py:1766
+#: build/serializers.py:1790
msgid "Optional notes for the stock consumption"
msgstr "庫存耗用的可選備註"
-#: build/serializers.py:1783
+#: build/serializers.py:1807
msgid "Build item must point to the correct build order"
msgstr "生產項必須指向正確的生產工單"
-#: build/serializers.py:1788
+#: build/serializers.py:1812
msgid "Duplicate build item allocation"
msgstr "重複的生產項分配"
-#: build/serializers.py:1806
+#: build/serializers.py:1830
msgid "Build line must point to the correct build order"
msgstr "生產行必須指向正確的生產工單"
-#: build/serializers.py:1811
+#: build/serializers.py:1835
msgid "Duplicate build line allocation"
msgstr "重複的生產行分配"
-#: build/serializers.py:1823
+#: build/serializers.py:1847
msgid "At least one item or line must be provided"
msgstr "至少必須提供一個項目或一行"
@@ -1494,7 +1494,7 @@ msgstr "被掛起"
msgid "Cancelled"
msgstr "已取消"
-#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:580
+#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:587
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:52 order/status_codes.py:83
msgid "Complete"
@@ -1518,19 +1518,19 @@ msgstr "逾期的生產訂單"
msgid "Build order {bo} is now overdue"
msgstr "生產訂單 {bo} 現已逾期"
-#: common/api.py:735
+#: common/api.py:722
msgid "Is Link"
msgstr "是否鏈接"
-#: common/api.py:743
+#: common/api.py:730
msgid "Is File"
msgstr "是否為文件"
-#: common/api.py:790
+#: common/api.py:777
msgid "User does not have permission to delete these attachments"
msgstr "用户沒有權限刪除此附件"
-#: common/api.py:803
+#: common/api.py:790
msgid "User does not have permission to delete this attachment"
msgstr "用户沒有權限刪除此附件"
@@ -1550,7 +1550,7 @@ msgstr "未提供有效的貨幣代碼"
msgid "No plugin"
msgstr "暫無插件"
-#: common/filters.py:351
+#: common/filters.py:359
msgid "Project Code Label"
msgstr "項目編碼標籤"
@@ -1617,7 +1617,7 @@ msgstr "鍵字符串必須是唯一的"
#: common/models.py:1346 common/models.py:1347 common/models.py:1451
#: common/models.py:1452 common/models.py:1697 common/models.py:1698
#: common/models.py:2030 common/models.py:2031 common/models.py:2857
-#: importer/models.py:101 part/models.py:3569 part/models.py:3597
+#: importer/models.py:101 part/models.py:3578 part/models.py:3606
#: plugin/models.py:355 plugin/models.py:356
#: report/templates/report/inventree_test_report.html:105 users/models.py:124
#: users/models.py:501
@@ -1628,7 +1628,7 @@ msgstr "使用者"
msgid "Price break quantity"
msgstr "批發價數量"
-#: common/models.py:1376 company/serializers.py:316 order/models.py:1890
+#: common/models.py:1376 company/serializers.py:326 order/models.py:1890
#: order/models.py:3100
msgid "Price"
msgstr "價格"
@@ -1652,7 +1652,7 @@ msgstr "此網絡鈎子的名稱"
#: common/models.py:1443 common/models.py:2271 common/models.py:2406
#: company/models.py:194 company/models.py:786 machine/models.py:40
#: part/models.py:1282 plugin/models.py:69 stock/api.py:641 users/models.py:195
-#: users/models.py:554 users/serializers.py:332 users/serializers.py:424
+#: users/models.py:554 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "激活"
@@ -1849,7 +1849,7 @@ msgstr "文件大小"
msgid "File size in bytes"
msgstr "文件大小,以字節為單位"
-#: common/models.py:2081 common/serializers.py:787
+#: common/models.py:2081 common/serializers.py:796
msgid "Invalid model type specified for attachment"
msgstr "為附件指定的模型類型無效"
@@ -2048,7 +2048,7 @@ msgstr "參數模板"
#: common/models.py:2442
msgid "Parameter Templates"
-msgstr ""
+msgstr "參數範本"
#: common/models.py:2479
msgid "Checkbox parameters cannot have units"
@@ -2058,7 +2058,7 @@ msgstr "勾選框參數不能有單位"
msgid "Checkbox parameters cannot have choices"
msgstr "複選框參數不能有選項"
-#: common/models.py:2504 part/models.py:3667
+#: common/models.py:2504 part/models.py:3676
msgid "Choices must be unique"
msgstr "選擇必須是唯一的"
@@ -2068,7 +2068,7 @@ msgstr "參數模板名稱必須是唯一的"
#: common/models.py:2543
msgid "Target model type for this parameter template"
-msgstr ""
+msgstr "此參數範本的目標模型類型"
#: common/models.py:2549
msgid "Parameter Name"
@@ -2094,7 +2094,7 @@ msgstr "勾選框"
msgid "Is this parameter a checkbox?"
msgstr "此參數是否為勾選框?"
-#: common/models.py:2576 part/models.py:3754
+#: common/models.py:2576 part/models.py:3763
msgid "Choices"
msgstr "選項"
@@ -2106,13 +2106,13 @@ msgstr "此參數的有效選擇 (逗號分隔)"
msgid "Selection list for this parameter"
msgstr "此參數的選擇清單"
-#: common/models.py:2593 part/models.py:3729 report/models.py:290
+#: common/models.py:2593 part/models.py:3738 report/models.py:290
msgid "Enabled"
msgstr "已啓用"
#: common/models.py:2594
msgid "Is this parameter template enabled?"
-msgstr ""
+msgstr "是否啟用此參數範本?"
#: common/models.py:2635
msgid "Parameter"
@@ -2126,29 +2126,29 @@ msgstr "參數集"
msgid "Invalid choice for parameter value"
msgstr "無效的參數值選擇"
-#: common/models.py:2752 common/serializers.py:882
+#: common/models.py:2752 common/serializers.py:892
msgid "Invalid model type specified for parameter"
-msgstr ""
+msgstr "為參數指定的模型類型無效"
#: common/models.py:2788
msgid "Model ID"
-msgstr ""
+msgstr "模型 ID"
#: common/models.py:2789
msgid "ID of the target model for this parameter"
-msgstr ""
+msgstr "此參數的目標模型 ID"
#: common/models.py:2798 common/setting/system.py:477 report/models.py:376
#: report/models.py:672 report/serializers.py:117 report/serializers.py:158
-#: stock/serializers.py:244
+#: stock/serializers.py:245
msgid "Template"
msgstr "模板"
#: common/models.py:2799
msgid "Parameter template"
-msgstr ""
+msgstr "參數範本"
-#: common/models.py:2804 common/models.py:2846 importer/models.py:574
+#: common/models.py:2804 common/models.py:2846 importer/models.py:581
msgid "Data"
msgstr "數據"
@@ -2156,18 +2156,18 @@ msgstr "數據"
msgid "Parameter Value"
msgstr "參數值"
-#: common/models.py:2814 company/models.py:826 order/serializers.py:854
-#: order/serializers.py:2036 part/models.py:4047 part/models.py:4416
+#: common/models.py:2814 company/models.py:826 order/serializers.py:895
+#: order/serializers.py:2144 part/models.py:4059 part/models.py:4430
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_purchase_order_report.html:39
#: 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:828
+#: stock/serializers.py:842
msgid "Note"
msgstr "備註"
-#: common/models.py:2815 stock/serializers.py:733
+#: common/models.py:2815 stock/serializers.py:747
msgid "Optional note field"
msgstr "可選註釋字段"
@@ -2377,11 +2377,11 @@ msgstr "已收到退貨訂單中的物品"
#: common/serializers.py:125
msgid "Indicates if changing this setting requires confirmation"
-msgstr ""
+msgstr "指示變更此設定是否需要確認"
#: common/serializers.py:139
msgid "This setting requires confirmation before changing. Please confirm the change."
-msgstr ""
+msgstr "變更此設定前需要確認。請確認變更。"
#: common/serializers.py:172
msgid "Indicates if the setting is overridden by an environment variable"
@@ -2391,85 +2391,85 @@ msgstr "表示此設定是否被環境變數覆蓋"
msgid "Override"
msgstr "覆蓋"
-#: common/serializers.py:601
+#: common/serializers.py:610
msgid "Is Running"
msgstr "正在運行"
-#: common/serializers.py:607
+#: common/serializers.py:616
msgid "Pending Tasks"
msgstr "等待完成的任務"
-#: common/serializers.py:613
+#: common/serializers.py:622
msgid "Scheduled Tasks"
msgstr "預定的任務"
-#: common/serializers.py:619
+#: common/serializers.py:628
msgid "Failed Tasks"
msgstr "失敗的任務"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Task ID"
msgstr "任務ID"
-#: common/serializers.py:634
+#: common/serializers.py:643
msgid "Unique task ID"
msgstr "唯一任務ID"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock"
msgstr "鎖定"
-#: common/serializers.py:636
+#: common/serializers.py:645
msgid "Lock time"
msgstr "鎖定時間"
-#: common/serializers.py:638
+#: common/serializers.py:647
msgid "Task name"
msgstr "任務名稱"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function"
msgstr "功能"
-#: common/serializers.py:640
+#: common/serializers.py:649
msgid "Function name"
msgstr "功能名稱"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Arguments"
msgstr "參數"
-#: common/serializers.py:642
+#: common/serializers.py:651
msgid "Task arguments"
msgstr "任務參數"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Keyword Arguments"
msgstr "關鍵字參數"
-#: common/serializers.py:645
+#: common/serializers.py:654
msgid "Task keyword arguments"
msgstr "任務關鍵詞參數"
-#: common/serializers.py:755
+#: common/serializers.py:764
msgid "Filename"
msgstr "檔案名稱"
-#: common/serializers.py:762 common/serializers.py:829
-#: common/serializers.py:904 importer/models.py:90 report/api.py:41
+#: common/serializers.py:771 common/serializers.py:838
+#: common/serializers.py:914 importer/models.py:90 report/api.py:41
#: report/models.py:296 report/serializers.py:71
msgid "Model Type"
msgstr "模型類型"
-#: common/serializers.py:790
+#: common/serializers.py:799
msgid "User does not have permission to create or edit attachments for this model"
msgstr "用户無權為此模式創建或編輯附件"
-#: common/serializers.py:885
+#: common/serializers.py:895
msgid "User does not have permission to create or edit parameters for this model"
-msgstr ""
+msgstr "使用者沒有權限建立或編輯此模型的參數"
-#: common/serializers.py:955 common/serializers.py:1058
+#: common/serializers.py:970 common/serializers.py:1073
msgid "Selection list is locked"
msgstr "選擇列表已鎖定"
@@ -2547,19 +2547,19 @@ msgstr "只向超級管理員顯示關於信息"
#: common/setting/system.py:239
msgid "Show superuser banner"
-msgstr ""
+msgstr "顯示超級使用者橫幅"
#: common/setting/system.py:240
msgid "Show a warning banner in the UI when logged in as superuser"
-msgstr ""
+msgstr "以超級使用者身分登入時,在 UI 中顯示警告橫幅"
#: common/setting/system.py:245
msgid "Show admin banner"
-msgstr ""
+msgstr "顯示管理員橫幅"
#: common/setting/system.py:246
msgid "Show a warning banner in the UI when logged in as admin"
-msgstr ""
+msgstr "以管理員身分登入時,在 UI 中顯示警告橫幅"
#: common/setting/system.py:251 company/models.py:147 company/models.py:148
msgid "Company name"
@@ -2859,8 +2859,8 @@ msgstr "零件默認為模板"
msgid "Parts can be assembled from other components by default"
msgstr "默認情況下,元件可由其他零件組裝而成"
-#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1724
-#: part/serializers.py:1731
+#: common/setting/system.py:489 part/models.py:1253 part/serializers.py:1763
+#: part/serializers.py:1771
msgid "Component"
msgstr "組件"
@@ -3034,11 +3034,11 @@ msgstr "如果有內部價格,內部價格將覆蓋價格範圍計算"
#: common/setting/system.py:654
msgid "Allow BOM Zero Quantity"
-msgstr ""
+msgstr "允許 BOM 零數量"
#: common/setting/system.py:656
msgid "Accept a zero quantity for BOM item for part. Enables using setup quantity to define a quantity required per build, independent of build quantity"
-msgstr ""
+msgstr "接受零件的 BOM 項目數量為零。允許使用設定數量來定義每次生產所需的數量,而與生產數量無關"
#: common/setting/system.py:662
msgid "Enable label printing"
@@ -3309,11 +3309,11 @@ msgstr "允許在訂單配送或完成後編輯銷售訂單"
#: common/setting/system.py:892
msgid "Shipment Requires Checking"
-msgstr ""
+msgstr "發貨需要檢查"
#: common/setting/system.py:894
msgid "Prevent completion of shipments until items have been checked"
-msgstr ""
+msgstr "在項目被檢查前,防止完成發貨"
#: common/setting/system.py:900
msgid "Mark Shipped Orders as Complete"
@@ -3477,7 +3477,7 @@ msgstr "用户必須使用多因素安全認證。"
#: common/setting/system.py:1047
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
-msgstr ""
+msgstr "啟用此設定將要求所有使用者設定多因素驗證。所有工作階段將立即中斷連線。"
#: common/setting/system.py:1052
msgid "Check plugins on startup"
@@ -3561,7 +3561,7 @@ msgstr "啟用專案代碼以追蹤專案"
#: common/setting/system.py:1123
msgid "Enable Stocktake"
-msgstr ""
+msgstr "啟用盤點"
#: common/setting/system.py:1125
msgid "Enable functionality for recording historical stock levels and value"
@@ -3573,7 +3573,7 @@ msgstr "排除外部地點"
#: common/setting/system.py:1133
msgid "Exclude stock items in external locations from stocktake calculations"
-msgstr ""
+msgstr "從盤點計算中排除外部位置的庫存項目"
#: common/setting/system.py:1139
msgid "Automatic Stocktake Period"
@@ -3581,23 +3581,23 @@ msgstr "自動盤點週期"
#: common/setting/system.py:1140
msgid "Number of days between automatic stocktake recording"
-msgstr ""
+msgstr "自動記錄盤點的天數間隔"
#: common/setting/system.py:1146
msgid "Delete Old Stocktake Entries"
-msgstr ""
+msgstr "刪除舊的盤點項目"
#: common/setting/system.py:1148
msgid "Delete stocktake entries older than the specified number of days"
-msgstr ""
+msgstr "刪除超過指定天數的盤點項目"
#: common/setting/system.py:1154
msgid "Stocktake Deletion Interval"
-msgstr ""
+msgstr "盤點刪除間隔"
#: common/setting/system.py:1156
msgid "Stocktake entries will be deleted after specified number of days"
-msgstr ""
+msgstr "盤點項目將在指定天數後刪除"
#: common/setting/system.py:1163
msgid "Delete Old Stock Tracking Entries"
@@ -3605,15 +3605,15 @@ msgstr "刪除舊庫存的追蹤紀錄"
#: common/setting/system.py:1165
msgid "Delete stock tracking entries older than the specified number of days"
-msgstr ""
+msgstr "刪除超過指定天數的庫存追蹤項目"
#: common/setting/system.py:1171
msgid "Stock Tracking Deletion Interval"
-msgstr ""
+msgstr "庫存追蹤刪除間隔"
#: common/setting/system.py:1173
msgid "Stock tracking entries will be deleted after specified number of days"
-msgstr ""
+msgstr "庫存追蹤項目將在指定天數後刪除"
#: common/setting/system.py:1180
msgid "Display Users full names"
@@ -3645,7 +3645,7 @@ msgstr "啟用設備 Ping"
#: common/setting/system.py:1200
msgid "Enable periodic ping task of registered machines to check their status"
-msgstr ""
+msgstr "啟用對已註冊機器的定期 ping 任務以檢查其狀態"
#: common/setting/user.py:23
msgid "Inline label display"
@@ -3673,11 +3673,11 @@ msgstr "在瀏覽器中顯示PDF報告,而不是作為文件下載"
#: common/setting/user.py:45
msgid "Barcode Scanner in Form Fields"
-msgstr ""
+msgstr "表單欄位中的條碼掃描器"
#: common/setting/user.py:46
msgid "Allow barcode scanner input in form fields"
-msgstr ""
+msgstr "允許在表單欄位中使用條碼掃描器輸入"
#: common/setting/user.py:51
msgid "Search Parts"
@@ -3928,24 +3928,32 @@ msgid "Disabled: The full category path is displayed as a hover tooltip. Enabled
msgstr "停用:完整分類路徑以滑鼠懸停提示顯示。啟用:直接以文字顯示完整路徑。"
#: common/setting/user.py:255
+msgid "Show Subassemblies in BOM table"
+msgstr ""
+
+#: common/setting/user.py:256
+msgid "Enable display of subassemblies in the BOM table"
+msgstr ""
+
+#: common/setting/user.py:261
msgid "Receive error reports"
msgstr "接收錯誤報告"
-#: common/setting/user.py:256
+#: common/setting/user.py:262
msgid "Receive notifications for system errors"
msgstr "接收系統錯誤通知"
-#: common/setting/user.py:261
+#: common/setting/user.py:267
msgid "Last used printing machines"
msgstr "上次使用的打印設備"
-#: common/setting/user.py:262
+#: common/setting/user.py:268
msgid "Save the last used printing machines for a user"
msgstr "為用户保存上次使用的打印設備"
#: common/validators.py:38
msgid "All models"
-msgstr ""
+msgstr "所有模型"
#: common/validators.py:63
msgid "No attachment model type provided"
@@ -3988,33 +3996,33 @@ msgstr "零件已激活"
msgid "Manufacturer is Active"
msgstr "製造商處於活動狀態"
-#: company/api.py:251
+#: company/api.py:252
msgid "Supplier Part is Active"
msgstr "供應商零件處於激活狀態"
-#: company/api.py:253
+#: company/api.py:254
msgid "Primary Supplier Part"
-msgstr ""
+msgstr "主要供應商零件"
-#: company/api.py:257
+#: company/api.py:258
msgid "Internal Part is Active"
msgstr "內部零件已激活"
-#: company/api.py:262
+#: company/api.py:263
msgid "Supplier is Active"
msgstr "供應商已激活"
-#: company/api.py:274 company/models.py:535 company/serializers.py:455
-#: part/serializers.py:488
+#: company/api.py:275 company/models.py:535 company/serializers.py:473
+#: part/serializers.py:491
msgid "Manufacturer"
msgstr "製造商"
-#: company/api.py:281 company/models.py:124 company/models.py:404
+#: company/api.py:282 company/models.py:124 company/models.py:404
#: stock/api.py:899
msgid "Company"
msgstr "公司"
-#: company/api.py:291
+#: company/api.py:292
msgid "Has Stock"
msgstr "有庫存"
@@ -4195,7 +4203,7 @@ msgstr "內部使用的裝運通知單"
msgid "Link to address information (external)"
msgstr "鏈接地址信息 (外部)"
-#: company/models.py:507 company/models.py:802 company/serializers.py:475
+#: company/models.py:507 company/models.py:802 company/serializers.py:501
#: stock/api.py:560
msgid "Manufacturer Part"
msgstr "製造商零件"
@@ -4213,12 +4221,12 @@ msgstr "選擇零件"
msgid "Select manufacturer"
msgstr "選擇製造商"
-#: company/models.py:542 company/serializers.py:486 order/serializers.py:705
-#: part/serializers.py:498
+#: company/models.py:542 company/serializers.py:512 order/serializers.py:742
+#: part/serializers.py:501
msgid "MPN"
msgstr "製造商零件編號"
-#: company/models.py:543 stock/serializers.py:575
+#: company/models.py:543 stock/serializers.py:578
msgid "Manufacturer Part Number"
msgstr "製造商零件編號"
@@ -4242,8 +4250,8 @@ msgstr "包裝單位必須大於零"
msgid "Linked manufacturer part must reference the same base part"
msgstr "鏈接的製造商零件必須引用相同的基礎零件"
-#: company/models.py:774 company/serializers.py:443 company/serializers.py:470
-#: order/models.py:666 part/serializers.py:472
+#: company/models.py:774 company/serializers.py:460 company/serializers.py:495
+#: order/models.py:666 part/serializers.py:475
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
#: stock/api.py:566 templates/email/overdue_purchase_order.html:16
@@ -4254,7 +4262,7 @@ msgstr "供應商"
msgid "Select supplier"
msgstr "選擇供應商"
-#: company/models.py:781 part/serializers.py:483
+#: company/models.py:781 part/serializers.py:486
msgid "Supplier stock keeping unit"
msgstr "供應商庫存管理單位"
@@ -4264,11 +4272,11 @@ msgstr "此供應商零件是否處於活動狀態?"
#: company/models.py:792
msgid "Primary"
-msgstr ""
+msgstr "主要"
#: company/models.py:793
msgid "Is this the primary supplier part for the linked Part?"
-msgstr ""
+msgstr "這是關聯零件的主要供應商零件嗎?"
#: company/models.py:803
msgid "Select manufacturer part"
@@ -4282,16 +4290,16 @@ msgstr "外部供應商零件鏈接的URL"
msgid "Supplier part description"
msgstr "供應商零件説明"
-#: company/models.py:835 part/models.py:2295
+#: company/models.py:835 part/models.py:2300
msgid "base cost"
msgstr "基本費用"
-#: company/models.py:836 part/models.py:2296
+#: company/models.py:836 part/models.py:2301
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低費用(例如庫存費)"
-#: company/models.py:843 order/serializers.py:846 stock/models.py:1063
-#: stock/serializers.py:1648
+#: company/models.py:843 order/serializers.py:887 stock/models.py:1063
+#: stock/serializers.py:1681
msgid "Packaging"
msgstr "打包"
@@ -4307,7 +4315,7 @@ msgstr "包裝數量"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "單包供應的總數量。為單個項目留空。"
-#: company/models.py:870 part/models.py:2302
+#: company/models.py:870 part/models.py:2307
msgid "multiple"
msgstr "多個"
@@ -4339,13 +4347,17 @@ msgstr "此供應商使用的默認貨幣"
msgid "Company Name"
msgstr "公司名稱"
-#: company/serializers.py:407 part/serializers.py:845 stock/serializers.py:441
+#: company/serializers.py:417 part/serializers.py:857 stock/serializers.py:444
msgid "In Stock"
msgstr "有庫存"
-#: company/serializers.py:424
+#: company/serializers.py:435
msgid "Price Breaks"
-msgstr ""
+msgstr "價格折扣"
+
+#: company/serializers.py:488
+msgid "Pretty Name"
+msgstr "顯示名稱"
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
@@ -4451,69 +4463,69 @@ msgstr "ID"
msgid "Existing database identifier for the record"
msgstr "資料庫中既有紀錄的識別碼"
-#: importer/models.py:452
+#: importer/models.py:459
msgid "Column is already mapped to a database field"
msgstr "列已映射到數據庫字段"
-#: importer/models.py:457
+#: importer/models.py:464
msgid "Field is already mapped to a data column"
msgstr "字段已映射到數據列"
-#: importer/models.py:466
+#: importer/models.py:473
msgid "Column mapping must be linked to a valid import session"
msgstr "列映射必須鏈接到有效的導入會話"
-#: importer/models.py:471
+#: importer/models.py:478
msgid "Column does not exist in the data file"
msgstr "數據文件中不存在列"
-#: importer/models.py:478
+#: importer/models.py:485
msgid "Field does not exist in the target model"
msgstr "目標模型中不存在字段"
-#: importer/models.py:482
+#: importer/models.py:489
msgid "Selected field is read-only"
msgstr "所選字段為只讀"
-#: importer/models.py:487 importer/models.py:564
+#: importer/models.py:494 importer/models.py:571
msgid "Import Session"
msgstr "導入會話"
-#: importer/models.py:491
+#: importer/models.py:498
msgid "Field"
msgstr "字段"
-#: importer/models.py:493
+#: importer/models.py:500
msgid "Column"
msgstr "列"
-#: importer/models.py:568
+#: importer/models.py:575
msgid "Row Index"
msgstr "行索引"
-#: importer/models.py:571
+#: importer/models.py:578
msgid "Original row data"
msgstr "原始行數據"
-#: importer/models.py:576 machine/models.py:111
+#: importer/models.py:583 machine/models.py:111
msgid "Errors"
msgstr "錯誤"
-#: importer/models.py:578 part/serializers.py:1132
+#: importer/models.py:585 part/serializers.py:1159
msgid "Valid"
msgstr "有效"
-#: importer/models.py:839
+#: importer/models.py:846
msgid "ID is required for updating existing records."
msgstr "更新既有紀錄需要提供 ID。"
-#: importer/models.py:846
+#: importer/models.py:853
msgid "No record found with the provided ID"
-msgstr ""
+msgstr "找不到提供 ID 的記錄"
-#: importer/models.py:852
+#: importer/models.py:859
msgid "Invalid ID format provided"
-msgstr ""
+msgstr "提供的 ID 格式無效"
#: importer/operations.py:31 importer/operations.py:52
msgid "Unsupported data file format"
@@ -4621,7 +4633,7 @@ msgstr "正在打印"
#: machine/machine_types/label_printer.py:234
msgid "Warning"
-msgstr ""
+msgstr "警告"
#: machine/machine_types/label_printer.py:235
msgid "No media"
@@ -4637,7 +4649,7 @@ msgstr "已斷開連接"
#: machine/machine_types/label_printer.py:238
msgid "Error"
-msgstr ""
+msgstr "錯誤"
#: machine/machine_types/label_printer.py:245
msgid "Label Printer"
@@ -4709,11 +4721,11 @@ msgstr "配置類型"
#: machine/serializers.py:24
msgid "Key of the property"
-msgstr ""
+msgstr "屬性鍵值"
#: machine/serializers.py:27
msgid "Value of the property"
-msgstr ""
+msgstr "屬性值"
#: machine/serializers.py:30 users/models.py:238
msgid "Group"
@@ -4721,11 +4733,11 @@ msgstr "組"
#: machine/serializers.py:30
msgid "Grouping of the property"
-msgstr ""
+msgstr "屬性分組"
#: machine/serializers.py:33
msgid "Type"
-msgstr ""
+msgstr "類型"
#: machine/serializers.py:35
msgid "Type of the property"
@@ -4737,7 +4749,7 @@ msgstr "最大進度"
#: machine/serializers.py:41
msgid "Maximum value for progress type, required if type=progress"
-msgstr ""
+msgstr "進度類型的最大值,當 type=progress 時為必填"
#: order/api.py:128
msgid "Order Reference"
@@ -4821,7 +4833,7 @@ msgstr "訂單"
msgid "Order Complete"
msgstr "訂單完成"
-#: order/api.py:573 order/api.py:577 order/serializers.py:716
+#: order/api.py:573 order/api.py:577 order/serializers.py:753
msgid "Internal Part"
msgstr "內部零件"
@@ -4839,7 +4851,7 @@ msgstr "已出貨"
#: order/api.py:1442
msgid "Shipment not found"
-msgstr ""
+msgstr "找不到發貨紀錄"
#: order/api.py:1840 order/models.py:577 order/models.py:1973
#: order/models.py:2099
@@ -4918,7 +4930,7 @@ msgstr "開始日期"
msgid "Scheduled start date for this order"
msgstr "此訂單的預定開始日期"
-#: order/models.py:477 order/models.py:1842 order/serializers.py:295
+#: order/models.py:477 order/models.py:1842 order/serializers.py:307
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "預計日期"
@@ -4956,7 +4968,7 @@ msgid "Order reference"
msgstr "訂單參考"
#: order/models.py:651 order/models.py:1375 order/models.py:2789
-#: stock/serializers.py:562 stock/serializers.py:1003 users/models.py:542
+#: stock/serializers.py:565 stock/serializers.py:1017 users/models.py:542
msgid "Status"
msgstr "狀態"
@@ -5010,10 +5022,10 @@ msgstr "數量必須是正數"
#: order/models.py:1072
msgid "Serial numbers cannot be assigned to virtual parts"
-msgstr ""
+msgstr "序號無法分配給虛擬零件"
#: order/models.py:1362 order/models.py:2776 stock/models.py:1085
-#: stock/models.py:1086 stock/serializers.py:1364
+#: stock/models.py:1086 stock/serializers.py:1397
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
@@ -5077,11 +5089,11 @@ msgstr "項目數量"
#: order/models.py:1814
msgid "Line Number"
-msgstr ""
+msgstr "行號"
#: order/models.py:1815
msgid "Line number for this item (optional)"
-msgstr ""
+msgstr "此項目的行號 (選填)"
#: order/models.py:1822
msgid "Line item reference"
@@ -5139,7 +5151,7 @@ msgstr "已接收"
msgid "Number of items received"
msgstr "收到的物品數量"
-#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:652
+#: order/models.py:2008 stock/models.py:1208 stock/serializers.py:666
msgid "Purchase Price"
msgstr "採購價格"
@@ -5211,8 +5223,8 @@ msgstr "審核人"
msgid "User who checked this shipment"
msgstr "檢查此裝運的用户"
-#: order/models.py:2372 order/models.py:2624 order/serializers.py:1698
-#: order/serializers.py:1822
+#: order/models.py:2372 order/models.py:2624 order/serializers.py:1798
+#: order/serializers.py:1922
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "配送"
@@ -5247,7 +5259,7 @@ msgstr "發貨沒有分配庫存項目"
#: order/models.py:2446
msgid "Shipment must be checked before it can be completed"
-msgstr ""
+msgstr "發貨紀錄必須在完成前進行檢查"
#: order/models.py:2516
msgid "Sales Order Extra Line"
@@ -5277,7 +5289,7 @@ msgstr "分配數量不能超過庫存數量"
msgid "Allocation quantity must be greater than zero"
msgstr "分配的數量必須大於零"
-#: order/models.py:2602 order/serializers.py:1568
+#: order/models.py:2602 order/serializers.py:1668
msgid "Quantity must be 1 for serialized stock item"
msgstr "序列化庫存項目的數量必須為1"
@@ -5351,7 +5363,7 @@ msgstr "接收日期"
#: order/models.py:3081
msgid "The date this return item was received"
-msgstr ""
+msgstr "收到此退貨項目的日期"
#: order/models.py:3093
msgid "Outcome"
@@ -5393,13 +5405,13 @@ msgstr "複製額外行"
msgid "Copy extra line items from the original order"
msgstr "從原始訂單複製額外的行項目"
-#: order/serializers.py:95 part/serializers.py:413
+#: order/serializers.py:95 part/serializers.py:416
msgid "Copy Parameters"
msgstr "複製參數"
#: order/serializers.py:96
msgid "Copy order parameters from the original order"
-msgstr ""
+msgstr "從原始訂單複製訂單參數"
#: order/serializers.py:111
#: report/templates/report/inventree_purchase_order_report.html:29
@@ -5412,216 +5424,216 @@ msgstr "行項目"
msgid "Completed Lines"
msgstr "已完成行項目"
-#: order/serializers.py:172
+#: order/serializers.py:184
msgid "Duplicate Order"
msgstr "複製訂單"
-#: order/serializers.py:173
+#: order/serializers.py:185
msgid "Specify options for duplicating this order"
msgstr "指定複製此訂單的選項"
-#: order/serializers.py:252
+#: order/serializers.py:264
msgid "Invalid order ID"
msgstr "訂單ID不正確"
-#: order/serializers.py:432
+#: order/serializers.py:444
msgid "Supplier Name"
msgstr "供應商名稱"
-#: order/serializers.py:477
+#: order/serializers.py:493
msgid "Order cannot be cancelled"
msgstr "訂單不能取消"
-#: order/serializers.py:492 order/serializers.py:1589
+#: order/serializers.py:508 order/serializers.py:1689
msgid "Allow order to be closed with incomplete line items"
msgstr "允許關閉行項目不完整的訂單"
-#: order/serializers.py:502 order/serializers.py:1599
+#: order/serializers.py:518 order/serializers.py:1699
msgid "Order has incomplete line items"
msgstr "訂單中的行項目不完整"
-#: order/serializers.py:622
+#: order/serializers.py:638
msgid "Order is not open"
msgstr "訂單未打開"
-#: order/serializers.py:651
+#: order/serializers.py:676
msgid "Auto Pricing"
msgstr "自動定價"
-#: order/serializers.py:653
+#: order/serializers.py:678
msgid "Automatically calculate purchase price based on supplier part data"
msgstr "根據供應商零件數據自動計算採購價格"
-#: order/serializers.py:667
+#: order/serializers.py:695
msgid "Purchase price currency"
msgstr "購買價格貨幣"
-#: order/serializers.py:689
+#: order/serializers.py:726
msgid "Merge Items"
msgstr "合併項目"
-#: order/serializers.py:691
+#: order/serializers.py:728
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "將具有相同零件、目的地和目標日期的項目合併到一個行項目中"
-#: order/serializers.py:698 part/serializers.py:482
+#: order/serializers.py:735 part/serializers.py:485
msgid "SKU"
msgstr "庫存量單位"
-#: order/serializers.py:712 part/models.py:1151 part/serializers.py:348
+#: order/serializers.py:749 part/models.py:1151 part/serializers.py:344
msgid "Internal Part Number"
msgstr "內部零件編號"
-#: order/serializers.py:720
+#: order/serializers.py:757
msgid "Internal Part Name"
msgstr "內部零件名稱"
-#: order/serializers.py:736
+#: order/serializers.py:773
msgid "Supplier part must be specified"
msgstr "必須指定供應商零件"
-#: order/serializers.py:739
+#: order/serializers.py:776
msgid "Purchase order must be specified"
msgstr "必須指定採購訂單"
-#: order/serializers.py:747
+#: order/serializers.py:784
msgid "Supplier must match purchase order"
msgstr "供應商必須匹配採購訂單"
-#: order/serializers.py:748
+#: order/serializers.py:785
msgid "Purchase order must match supplier"
msgstr "採購訂單必須與供應商匹配"
-#: order/serializers.py:796 order/serializers.py:1669
+#: order/serializers.py:837 order/serializers.py:1769
msgid "Line Item"
msgstr "行項目"
-#: order/serializers.py:805 order/serializers.py:945 order/serializers.py:2032
+#: order/serializers.py:846 order/serializers.py:986 order/serializers.py:2140
msgid "Select destination location for received items"
msgstr "為收到的物品選擇目的地位置"
-#: order/serializers.py:821
+#: order/serializers.py:862
msgid "Enter batch code for incoming stock items"
msgstr "輸入入庫項目的批號"
-#: order/serializers.py:828 stock/models.py:1167
+#: order/serializers.py:869 stock/models.py:1167
#: templates/email/stale_stock_notification.html:22 users/models.py:137
msgid "Expiry Date"
msgstr "有效期至"
-#: order/serializers.py:829
+#: order/serializers.py:870
msgid "Enter expiry date for incoming stock items"
msgstr "輸入入庫庫存項目的到期日"
-#: order/serializers.py:837
+#: order/serializers.py:878
msgid "Enter serial numbers for incoming stock items"
msgstr "輸入入庫庫存項目的序列號"
-#: order/serializers.py:847
+#: order/serializers.py:888
msgid "Override packaging information for incoming stock items"
msgstr "覆蓋傳入庫存項目的包裝資料"
-#: order/serializers.py:855 order/serializers.py:2037
+#: order/serializers.py:896 order/serializers.py:2145
msgid "Additional note for incoming stock items"
msgstr "傳入庫存項目的附加説明"
-#: order/serializers.py:862
+#: order/serializers.py:903
msgid "Barcode"
msgstr "條形碼"
-#: order/serializers.py:863
+#: order/serializers.py:904
msgid "Scanned barcode"
msgstr "掃描條形碼"
-#: order/serializers.py:879
+#: order/serializers.py:920
msgid "Barcode is already in use"
msgstr "條形碼已被使用"
-#: order/serializers.py:962 order/serializers.py:2056
+#: order/serializers.py:1003 order/serializers.py:2164
msgid "Line items must be provided"
msgstr "必須提供行項目"
-#: order/serializers.py:981
+#: order/serializers.py:1022
msgid "Destination location must be specified"
msgstr "必須指定目標位置"
-#: order/serializers.py:988
+#: order/serializers.py:1029
msgid "Supplied barcode values must be unique"
msgstr "提供的條形碼值必須是唯一的"
-#: order/serializers.py:1109
+#: order/serializers.py:1154
msgid "Shipments"
msgstr "配送紀錄"
-#: order/serializers.py:1113
+#: order/serializers.py:1158
msgid "Completed Shipments"
msgstr "完成配送"
-#: order/serializers.py:1117
+#: order/serializers.py:1162
msgid "Allocated Lines"
-msgstr ""
+msgstr "已分配行"
-#: order/serializers.py:1296
+#: order/serializers.py:1355
msgid "Sale price currency"
msgstr "售出價格貨幣"
-#: order/serializers.py:1343
+#: order/serializers.py:1402
msgid "Allocated Items"
msgstr "已分配項目"
-#: order/serializers.py:1500
+#: order/serializers.py:1600
msgid "No shipment details provided"
msgstr "未提供裝運詳細信息"
-#: order/serializers.py:1532 order/serializers.py:1678
+#: order/serializers.py:1632 order/serializers.py:1778
msgid "Line item is not associated with this order"
msgstr "行項目與此訂單不關聯"
-#: order/serializers.py:1551
+#: order/serializers.py:1651
msgid "Quantity must be positive"
msgstr "數量必須為正"
-#: order/serializers.py:1688
+#: order/serializers.py:1788
msgid "Enter serial numbers to allocate"
msgstr "輸入要分配的序列號"
-#: order/serializers.py:1710 order/serializers.py:1830
+#: order/serializers.py:1810 order/serializers.py:1930
msgid "Shipment has already been shipped"
msgstr "貨物已發出"
-#: order/serializers.py:1713 order/serializers.py:1833
+#: order/serializers.py:1813 order/serializers.py:1933
msgid "Shipment is not associated with this order"
msgstr "發貨與此訂單無關"
-#: order/serializers.py:1768
+#: order/serializers.py:1868
msgid "No match found for the following serial numbers"
msgstr "未找到以下序列號的匹配項"
-#: order/serializers.py:1775
+#: order/serializers.py:1875
msgid "The following serial numbers are unavailable"
msgstr "以下序列號不可用"
-#: order/serializers.py:1998
+#: order/serializers.py:2106
msgid "Return order line item"
msgstr "退貨訂單行項目"
-#: order/serializers.py:2008
+#: order/serializers.py:2116
msgid "Line item does not match return order"
msgstr "行項目與退貨訂單不匹配"
-#: order/serializers.py:2011
+#: order/serializers.py:2119
msgid "Line item has already been received"
msgstr "行項目已收到"
-#: order/serializers.py:2048
+#: order/serializers.py:2156
msgid "Items can only be received against orders which are in progress"
msgstr "只能根據正在進行的訂單接收物品"
-#: order/serializers.py:2120
+#: order/serializers.py:2232
msgid "Quantity to return"
msgstr "退回數量"
-#: order/serializers.py:2137
+#: order/serializers.py:2257
msgid "Line price currency"
msgstr "行價格貨幣"
@@ -5732,71 +5744,71 @@ msgstr "排除指定類別下的子類別"
msgid "Has Results"
msgstr "有結果"
-#: part/api.py:653
+#: part/api.py:654
msgid "Is Variant"
msgstr "為變體"
-#: part/api.py:661
+#: part/api.py:662
msgid "Is Revision"
msgstr "是修訂版本"
-#: part/api.py:671
+#: part/api.py:672
msgid "Has Revisions"
msgstr "有修訂版本"
-#: part/api.py:852
+#: part/api.py:853
msgid "BOM Valid"
msgstr "物料清單合規"
-#: part/api.py:961
-msgid "Cascade Categories"
-msgstr ""
-
#: part/api.py:962
+msgid "Cascade Categories"
+msgstr "級聯類別"
+
+#: part/api.py:963
msgid "If true, include items in child categories of the given category"
-msgstr ""
+msgstr "若為 true,則包含給定類別的子類別中的項目"
-#: part/api.py:968
+#: part/api.py:969
msgid "Filter by numeric category ID or the literal 'null'"
-msgstr ""
+msgstr "依數字類別 ID 或常值 'null' 篩選"
-#: part/api.py:1280
+#: part/api.py:1281
msgid "Assembly part is active"
-msgstr ""
+msgstr "組件零件處於作用中狀態"
-#: part/api.py:1284
+#: part/api.py:1285
msgid "Assembly part is trackable"
-msgstr ""
+msgstr "組件零件可追蹤"
-#: part/api.py:1288
+#: part/api.py:1289
msgid "Assembly part is testable"
msgstr "裝配部份是可測試的"
-#: part/api.py:1293
+#: part/api.py:1294
msgid "Component part is active"
-msgstr ""
+msgstr "子零件處於作用中狀態"
-#: part/api.py:1297
+#: part/api.py:1298
msgid "Component part is trackable"
-msgstr ""
+msgstr "子零件可追蹤"
-#: part/api.py:1301
+#: part/api.py:1302
msgid "Component part is testable"
msgstr "組件部份是可測試的"
-#: part/api.py:1305
+#: part/api.py:1306
msgid "Component part is an assembly"
-msgstr ""
+msgstr "子零件是一個組件"
-#: part/api.py:1309
+#: part/api.py:1310
msgid "Component part is virtual"
-msgstr ""
+msgstr "子零件是虛擬的"
-#: part/api.py:1313
+#: part/api.py:1314
msgid "Has available stock"
-msgstr ""
+msgstr "有可用庫存"
-#: part/api.py:1370
+#: part/api.py:1371
msgid "Uses"
msgstr "使用"
@@ -5805,7 +5817,7 @@ msgstr "使用"
msgid "Part Category"
msgstr "零件類別"
-#: part/models.py:93 users/ruleset.py:27
+#: part/models.py:93 users/ruleset.py:28
msgid "Part Categories"
msgstr "零件類別"
@@ -5837,7 +5849,7 @@ msgstr "此類別零件的默認關鍵字"
msgid "Icon"
msgstr "圖標"
-#: part/models.py:137 part/serializers.py:158 part/serializers.py:177
+#: part/models.py:137 part/serializers.py:154 part/serializers.py:173
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "圖標(可選)"
@@ -5858,17 +5870,17 @@ msgstr "默認值"
msgid "Default Parameter Value"
msgstr "默認參數值"
-#: part/models.py:528 part/serializers.py:120 users/ruleset.py:28
+#: part/models.py:528 part/serializers.py:114 users/ruleset.py:29
msgid "Parts"
msgstr "零件"
#: part/models.py:574
msgid "Cannot delete parameters of a locked part"
-msgstr ""
+msgstr "無法刪除已鎖定零件的參數"
#: part/models.py:579
msgid "Cannot modify parameters of a locked part"
-msgstr ""
+msgstr "無法修改已鎖定零件的參數"
#: part/models.py:590
msgid "Cannot delete this part as it is locked"
@@ -5903,7 +5915,7 @@ msgstr "零件不能是對自身的修訂"
#: part/models.py:783
msgid "Revision code must be specified for a part marked as a revision"
-msgstr ""
+msgstr "標記為修訂版的零件必須指定修訂版代碼"
#: part/models.py:791
msgid "Revisions are only allowed for assembly parts"
@@ -5973,7 +5985,7 @@ msgstr "提高搜索結果可見性的零件關鍵字"
msgid "Part category"
msgstr "零件類別"
-#: part/models.py:1150 part/serializers.py:819
+#: part/models.py:1150 part/serializers.py:831
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "內部零件號 IPN"
@@ -6006,7 +6018,7 @@ msgstr "默認到期"
msgid "Expiry time (in days) for stock items of this part"
msgstr "此零件庫存項的過期時間 (天)"
-#: part/models.py:1231 part/serializers.py:889
+#: part/models.py:1231 part/serializers.py:901
msgid "Minimum Stock"
msgstr "最低庫存"
@@ -6086,756 +6098,756 @@ msgstr "新建用户"
msgid "Owner responsible for this part"
msgstr "此零件的負責人"
-#: part/models.py:2303
+#: part/models.py:2308
msgid "Sell multiple"
msgstr "出售多個"
-#: part/models.py:3308
+#: part/models.py:3317
msgid "Currency used to cache pricing calculations"
msgstr "用於緩存定價計算的貨幣"
-#: part/models.py:3324
+#: part/models.py:3333
msgid "Minimum BOM Cost"
msgstr "最低物料清單成本"
-#: part/models.py:3325
+#: part/models.py:3334
msgid "Minimum cost of component parts"
msgstr "元件的最低成本"
-#: part/models.py:3331
+#: part/models.py:3340
msgid "Maximum BOM Cost"
msgstr "物料清單的最高成本"
-#: part/models.py:3332
+#: part/models.py:3341
msgid "Maximum cost of component parts"
msgstr "元件的最高成本"
-#: part/models.py:3338
+#: part/models.py:3347
msgid "Minimum Purchase Cost"
msgstr "最低購買成本"
-#: part/models.py:3339
+#: part/models.py:3348
msgid "Minimum historical purchase cost"
msgstr "最高歷史購買成本"
-#: part/models.py:3345
+#: part/models.py:3354
msgid "Maximum Purchase Cost"
msgstr "最大購買成本"
-#: part/models.py:3346
+#: part/models.py:3355
msgid "Maximum historical purchase cost"
msgstr "最高歷史購買成本"
-#: part/models.py:3352
+#: part/models.py:3361
msgid "Minimum Internal Price"
msgstr "最低內部價格"
-#: part/models.py:3353
+#: part/models.py:3362
msgid "Minimum cost based on internal price breaks"
msgstr "基於內部批發價的最低成本"
-#: part/models.py:3359
+#: part/models.py:3368
msgid "Maximum Internal Price"
msgstr "最大內部價格"
-#: part/models.py:3360
+#: part/models.py:3369
msgid "Maximum cost based on internal price breaks"
msgstr "基於內部批發價的最高成本"
-#: part/models.py:3366
+#: part/models.py:3375
msgid "Minimum Supplier Price"
msgstr "供應商最低價格"
-#: part/models.py:3367
+#: part/models.py:3376
msgid "Minimum price of part from external suppliers"
msgstr "外部供應商零件的最低價格"
-#: part/models.py:3373
+#: part/models.py:3382
msgid "Maximum Supplier Price"
msgstr "供應商最高價格"
-#: part/models.py:3374
+#: part/models.py:3383
msgid "Maximum price of part from external suppliers"
msgstr "來自外部供應商的商零件的最高價格"
-#: part/models.py:3380
+#: part/models.py:3389
msgid "Minimum Variant Cost"
msgstr "最小變體成本"
-#: part/models.py:3381
+#: part/models.py:3390
msgid "Calculated minimum cost of variant parts"
msgstr "計算出的變體零件的最低成本"
-#: part/models.py:3387
+#: part/models.py:3396
msgid "Maximum Variant Cost"
msgstr "最大變體成本"
-#: part/models.py:3388
+#: part/models.py:3397
msgid "Calculated maximum cost of variant parts"
msgstr "計算出的變體零件的最大成本"
-#: part/models.py:3394 part/models.py:3408
+#: part/models.py:3403 part/models.py:3417
msgid "Minimum Cost"
msgstr "最低成本"
-#: part/models.py:3395
+#: part/models.py:3404
msgid "Override minimum cost"
msgstr "覆蓋最低成本"
-#: part/models.py:3401 part/models.py:3415
+#: part/models.py:3410 part/models.py:3424
msgid "Maximum Cost"
msgstr "最高成本"
-#: part/models.py:3402
+#: part/models.py:3411
msgid "Override maximum cost"
msgstr "覆蓋最大成本"
-#: part/models.py:3409
+#: part/models.py:3418
msgid "Calculated overall minimum cost"
msgstr "計算總最低成本"
-#: part/models.py:3416
+#: part/models.py:3425
msgid "Calculated overall maximum cost"
msgstr "計算總最大成本"
-#: part/models.py:3422
+#: part/models.py:3431
msgid "Minimum Sale Price"
msgstr "最低售出價格"
-#: part/models.py:3423
+#: part/models.py:3432
msgid "Minimum sale price based on price breaks"
msgstr "基於批發價的最低售出價格"
-#: part/models.py:3429
+#: part/models.py:3438
msgid "Maximum Sale Price"
msgstr "最高售出價格"
-#: part/models.py:3430
+#: part/models.py:3439
msgid "Maximum sale price based on price breaks"
msgstr "基於批發價的最大售出價格"
-#: part/models.py:3436
+#: part/models.py:3445
msgid "Minimum Sale Cost"
msgstr "最低銷售成本"
-#: part/models.py:3437
+#: part/models.py:3446
msgid "Minimum historical sale price"
msgstr "歷史最低售出價格"
-#: part/models.py:3443
+#: part/models.py:3452
msgid "Maximum Sale Cost"
msgstr "最高銷售成本"
-#: part/models.py:3444
+#: part/models.py:3453
msgid "Maximum historical sale price"
msgstr "歷史最高售出價格"
-#: part/models.py:3462
+#: part/models.py:3471
msgid "Part for stocktake"
msgstr "用於盤點的零件"
-#: part/models.py:3467
+#: part/models.py:3476
msgid "Item Count"
msgstr "物品數量"
-#: part/models.py:3468
+#: part/models.py:3477
msgid "Number of individual stock entries at time of stocktake"
msgstr "盤點時的個別庫存條目數"
-#: part/models.py:3476
+#: part/models.py:3485
msgid "Total available stock at time of stocktake"
msgstr "盤點時可用庫存總額"
-#: part/models.py:3480 report/templates/report/inventree_test_report.html:106
+#: part/models.py:3489 report/templates/report/inventree_test_report.html:106
#: stock/models.py:3105
msgid "Date"
msgstr "日期"
-#: part/models.py:3481
+#: part/models.py:3490
msgid "Date stocktake was performed"
msgstr "進行盤點的日期"
-#: part/models.py:3488
+#: part/models.py:3497
msgid "Minimum Stock Cost"
msgstr "最低庫存成本"
-#: part/models.py:3489
+#: part/models.py:3498
msgid "Estimated minimum cost of stock on hand"
msgstr "現有存庫存最低成本估算"
-#: part/models.py:3495
+#: part/models.py:3504
msgid "Maximum Stock Cost"
msgstr "最高庫存成本"
-#: part/models.py:3496
+#: part/models.py:3505
msgid "Estimated maximum cost of stock on hand"
msgstr "目前庫存最高成本估算"
-#: part/models.py:3506
+#: part/models.py:3515
msgid "Part Sale Price Break"
msgstr "零件售出價格折扣"
-#: part/models.py:3620
+#: part/models.py:3629
msgid "Part Test Template"
msgstr "零件測試模板"
-#: part/models.py:3646
+#: part/models.py:3655
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "模板名稱無效 - 必須包含至少一個字母或者數字"
-#: part/models.py:3678
+#: part/models.py:3687
msgid "Test templates can only be created for testable parts"
msgstr "測試模板只能為可拆分的部件創建"
-#: part/models.py:3692
+#: part/models.py:3701
msgid "Test template with the same key already exists for part"
msgstr "零件已存在具有相同主鍵的測試模板"
-#: part/models.py:3709
+#: part/models.py:3718
msgid "Test Name"
msgstr "測試名"
-#: part/models.py:3710
+#: part/models.py:3719
msgid "Enter a name for the test"
msgstr "輸入測試的名稱"
-#: part/models.py:3716
+#: part/models.py:3725
msgid "Test Key"
msgstr "測試主鍵"
-#: part/models.py:3717
+#: part/models.py:3726
msgid "Simplified key for the test"
msgstr "簡化測試主鍵"
-#: part/models.py:3724
+#: part/models.py:3733
msgid "Test Description"
msgstr "測試説明"
-#: part/models.py:3725
+#: part/models.py:3734
msgid "Enter description for this test"
msgstr "輸入測試的描述"
-#: part/models.py:3729
+#: part/models.py:3738
msgid "Is this test enabled?"
msgstr "此測試是否已啓用?"
-#: part/models.py:3734
+#: part/models.py:3743
msgid "Required"
msgstr "必須的"
-#: part/models.py:3735
+#: part/models.py:3744
msgid "Is this test required to pass?"
msgstr "需要此測試才能通過嗎?"
-#: part/models.py:3740
+#: part/models.py:3749
msgid "Requires Value"
msgstr "需要值"
-#: part/models.py:3741
+#: part/models.py:3750
msgid "Does this test require a value when adding a test result?"
msgstr "添加測試結果時是否需要一個值?"
-#: part/models.py:3746
+#: part/models.py:3755
msgid "Requires Attachment"
msgstr "需要附件"
-#: part/models.py:3748
+#: part/models.py:3757
msgid "Does this test require a file attachment when adding a test result?"
msgstr "添加測試結果時是否需要文件附件?"
-#: part/models.py:3755
+#: part/models.py:3764
msgid "Valid choices for this test (comma-separated)"
msgstr "此測試的有效選擇 (逗號分隔)"
-#: part/models.py:3949
+#: part/models.py:3961
msgid "BOM item cannot be modified - assembly is locked"
msgstr "物料清單項目不能被修改 - 裝配已鎖定"
-#: part/models.py:3956
+#: part/models.py:3968
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "物料清單項目不能修改 - 變體裝配已鎖定"
-#: part/models.py:3966
+#: part/models.py:3978
msgid "Select parent part"
msgstr "選擇父零件"
-#: part/models.py:3976
+#: part/models.py:3988
msgid "Sub part"
msgstr "子零件"
-#: part/models.py:3977
+#: part/models.py:3989
msgid "Select part to be used in BOM"
msgstr "選擇要用於物料清單的零件"
-#: part/models.py:3988
+#: part/models.py:4000
msgid "BOM quantity for this BOM item"
msgstr "此物料清單項目的數量"
-#: part/models.py:3994
+#: part/models.py:4006
msgid "This BOM item is optional"
msgstr "此物料清單項目是可選的"
-#: part/models.py:4000
+#: part/models.py:4012
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "這個物料清單項目是耗材 (它沒有在生產訂單中被追蹤)"
-#: part/models.py:4008
+#: part/models.py:4020
msgid "Setup Quantity"
msgstr "建置額外數量"
-#: part/models.py:4009
+#: part/models.py:4021
msgid "Extra required quantity for a build, to account for setup losses"
msgstr "為彌補建置 / 開工損耗所需的額外數量"
-#: part/models.py:4017
+#: part/models.py:4029
msgid "Attrition"
msgstr "損耗率"
-#: part/models.py:4019
+#: part/models.py:4031
msgid "Estimated attrition for a build, expressed as a percentage (0-100)"
msgstr "製造預估損耗(百分比 0–100)"
-#: part/models.py:4030
+#: part/models.py:4042
msgid "Rounding Multiple"
msgstr "進位倍數"
-#: part/models.py:4032
+#: part/models.py:4044
msgid "Round up required production quantity to nearest multiple of this value"
msgstr "將所需生產數量向上取整到此數值的整數倍"
-#: part/models.py:4040
+#: part/models.py:4052
msgid "BOM item reference"
msgstr "物料清單項目引用"
-#: part/models.py:4048
+#: part/models.py:4060
msgid "BOM item notes"
msgstr "物料清單項目註釋"
-#: part/models.py:4054
+#: part/models.py:4066
msgid "Checksum"
msgstr "校驗和"
-#: part/models.py:4055
+#: part/models.py:4067
msgid "BOM line checksum"
msgstr "物料清單行校驗和"
-#: part/models.py:4060
+#: part/models.py:4072
msgid "Validated"
msgstr "已驗證"
-#: part/models.py:4061
+#: part/models.py:4073
msgid "This BOM item has been validated"
msgstr "此物料清單項目已驗證"
-#: part/models.py:4066
+#: part/models.py:4078
msgid "Gets inherited"
msgstr "獲取繼承的"
-#: part/models.py:4067
+#: part/models.py:4079
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "此物料清單項目是由物料清單繼承的變體零件"
-#: part/models.py:4073
+#: part/models.py:4085
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "變體零件的庫存項可以用於此物料清單項目"
-#: part/models.py:4180 stock/models.py:932
+#: part/models.py:4194 stock/models.py:932
msgid "Quantity must be integer value for trackable parts"
msgstr "可追蹤零件的數量必須是整數"
-#: part/models.py:4190 part/models.py:4192
+#: part/models.py:4204 part/models.py:4206
msgid "Sub part must be specified"
msgstr "必須指定子零件"
-#: part/models.py:4343
+#: part/models.py:4357
msgid "BOM Item Substitute"
msgstr "物料清單項目替代品"
-#: part/models.py:4364
+#: part/models.py:4378
msgid "Substitute part cannot be the same as the master part"
msgstr "替代品零件不能與主零件相同"
-#: part/models.py:4377
+#: part/models.py:4391
msgid "Parent BOM item"
msgstr "上級物料清單項目"
-#: part/models.py:4385
+#: part/models.py:4399
msgid "Substitute part"
msgstr "替代品零件"
-#: part/models.py:4401
+#: part/models.py:4415
msgid "Part 1"
msgstr "零件 1"
-#: part/models.py:4409
+#: part/models.py:4423
msgid "Part 2"
msgstr "零件2"
-#: part/models.py:4410
+#: part/models.py:4424
msgid "Select Related Part"
msgstr "選擇相關的零件"
-#: part/models.py:4417
+#: part/models.py:4431
msgid "Note for this relationship"
msgstr "此關係的備註"
-#: part/models.py:4436
+#: part/models.py:4450
msgid "Part relationship cannot be created between a part and itself"
msgstr "零件關係不能在零件和自身之間創建"
-#: part/models.py:4441
+#: part/models.py:4455
msgid "Duplicate relationship already exists"
msgstr "複製關係已經存在"
-#: part/serializers.py:115
+#: part/serializers.py:109
msgid "Parent Category"
msgstr "上級類別"
-#: part/serializers.py:116
+#: part/serializers.py:110
msgid "Parent part category"
msgstr "上級零件類別"
-#: part/serializers.py:124 part/serializers.py:174
+#: part/serializers.py:118 part/serializers.py:170
msgid "Subcategories"
msgstr "子類別"
-#: part/serializers.py:213
+#: part/serializers.py:209
msgid "Results"
msgstr "結果"
-#: part/serializers.py:214
+#: part/serializers.py:210
msgid "Number of results recorded against this template"
msgstr "根據該模板記錄的結果數量"
-#: part/serializers.py:245 part/serializers.py:263 stock/serializers.py:658
+#: part/serializers.py:241 part/serializers.py:259 stock/serializers.py:672
msgid "Purchase currency of this stock item"
msgstr "購買此庫存項的貨幣"
-#: part/serializers.py:290
+#: part/serializers.py:286
msgid "File is not an image"
msgstr "檔案不是圖片"
-#: part/serializers.py:393
+#: part/serializers.py:396
msgid "Original Part"
msgstr "原始零件"
-#: part/serializers.py:394
+#: part/serializers.py:397
msgid "Select original part to duplicate"
msgstr "選擇要複製的原始零件"
-#: part/serializers.py:399
+#: part/serializers.py:402
msgid "Copy Image"
msgstr "複製圖片"
-#: part/serializers.py:400
+#: part/serializers.py:403
msgid "Copy image from original part"
msgstr "從原零件複製圖片"
-#: part/serializers.py:406
+#: part/serializers.py:409
msgid "Copy BOM"
msgstr "複製物料清單"
-#: part/serializers.py:407
+#: part/serializers.py:410
msgid "Copy bill of materials from original part"
msgstr "從原始零件複製材料清單"
-#: part/serializers.py:414
+#: part/serializers.py:417
msgid "Copy parameter data from original part"
msgstr "從原始零件複製參數數據"
-#: part/serializers.py:420
+#: part/serializers.py:423
msgid "Copy Notes"
msgstr "複製備註"
-#: part/serializers.py:421
+#: part/serializers.py:424
msgid "Copy notes from original part"
msgstr "從原始零件複製備註"
-#: part/serializers.py:427
+#: part/serializers.py:430
msgid "Copy Tests"
msgstr "複製測試模板"
-#: part/serializers.py:428
+#: part/serializers.py:431
msgid "Copy test templates from original part"
msgstr "從原始零件複製測試模板"
-#: part/serializers.py:446
+#: part/serializers.py:449
msgid "Initial Stock Quantity"
msgstr "初始化庫存數量"
-#: part/serializers.py:448
+#: part/serializers.py:451
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "指定此零件的初始庫存數量。如果數量為零,則不添加任何庫存。"
-#: part/serializers.py:455
+#: part/serializers.py:458
msgid "Initial Stock Location"
msgstr "初始化庫存地點"
-#: part/serializers.py:456
+#: part/serializers.py:459
msgid "Specify initial stock location for this Part"
msgstr "初始化指定此零件的庫存地點"
-#: part/serializers.py:473
+#: part/serializers.py:476
msgid "Select supplier (or leave blank to skip)"
msgstr "選擇供應商(或為空以跳過)"
-#: part/serializers.py:489
+#: part/serializers.py:492
msgid "Select manufacturer (or leave blank to skip)"
msgstr "選擇製造商(或為空)"
-#: part/serializers.py:499
+#: part/serializers.py:502
msgid "Manufacturer part number"
msgstr "製造商零件號"
-#: part/serializers.py:506
+#: part/serializers.py:509
msgid "Selected company is not a valid supplier"
msgstr "所選公司不是一個有效的供應商"
-#: part/serializers.py:515
+#: part/serializers.py:518
msgid "Selected company is not a valid manufacturer"
msgstr "所選公司不是一個有效的製造商"
-#: part/serializers.py:526
+#: part/serializers.py:529
msgid "Manufacturer part matching this MPN already exists"
msgstr "與此製造商零件編號 (MPN) 的相匹配的製造商零件已存在"
-#: part/serializers.py:533
+#: part/serializers.py:536
msgid "Supplier part matching this SKU already exists"
msgstr "匹配此庫存單位 (SKU) 的供應商零件已存在"
-#: part/serializers.py:804
+#: part/serializers.py:816
msgid "Category Name"
msgstr "類別名稱"
-#: part/serializers.py:833
+#: part/serializers.py:845
msgid "Building"
msgstr "正在生產"
-#: part/serializers.py:834
+#: part/serializers.py:846
msgid "Quantity of this part currently being in production"
msgstr "此零件目前生產中數量"
-#: part/serializers.py:841
+#: part/serializers.py:853
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "此零件排程待製造未完成數量"
-#: part/serializers.py:861 stock/serializers.py:1034 stock/serializers.py:1217
-#: users/ruleset.py:30
+#: part/serializers.py:873 stock/serializers.py:1048 stock/serializers.py:1231
+#: users/ruleset.py:32
msgid "Stock Items"
msgstr "庫存項"
-#: part/serializers.py:865
+#: part/serializers.py:877
msgid "Revisions"
msgstr "修訂"
-#: part/serializers.py:869 part/serializers.py:1161
+#: part/serializers.py:881 part/serializers.py:1188
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "庫存總量"
-#: part/serializers.py:877
+#: part/serializers.py:889
msgid "Unallocated Stock"
msgstr "未分配的庫存"
-#: part/serializers.py:885
+#: part/serializers.py:897
msgid "Variant Stock"
msgstr "變體庫存"
-#: part/serializers.py:941
+#: part/serializers.py:968
msgid "Duplicate Part"
msgstr "重複零件"
-#: part/serializers.py:942
+#: part/serializers.py:969
msgid "Copy initial data from another Part"
msgstr "從另一個零件複製初始數據"
-#: part/serializers.py:948
+#: part/serializers.py:975
msgid "Initial Stock"
msgstr "初始庫存"
-#: part/serializers.py:949
+#: part/serializers.py:976
msgid "Create Part with initial stock quantity"
msgstr "創建具有初始庫存數量的零件"
-#: part/serializers.py:955
+#: part/serializers.py:982
msgid "Supplier Information"
msgstr "供應商信息"
-#: part/serializers.py:956
+#: part/serializers.py:983
msgid "Add initial supplier information for this part"
msgstr "添加此零件的初始供應商信息"
-#: part/serializers.py:965
+#: part/serializers.py:992
msgid "Copy Category Parameters"
msgstr "複製類別參數"
-#: part/serializers.py:966
+#: part/serializers.py:993
msgid "Copy parameter templates from selected part category"
msgstr "從選擇的零件複製參數模版"
-#: part/serializers.py:971
+#: part/serializers.py:998
msgid "Existing Image"
msgstr "現有的圖片"
-#: part/serializers.py:972
+#: part/serializers.py:999
msgid "Filename of an existing part image"
msgstr "現有零件圖片的文件名"
-#: part/serializers.py:989
+#: part/serializers.py:1016
msgid "Image file does not exist"
msgstr "圖片不存在"
-#: part/serializers.py:1133
+#: part/serializers.py:1160
msgid "Validate entire Bill of Materials"
msgstr "驗證整個物料清單"
-#: part/serializers.py:1167 part/serializers.py:1759
+#: part/serializers.py:1194 part/serializers.py:1802
msgid "Can Build"
msgstr "可以創建"
-#: part/serializers.py:1184
+#: part/serializers.py:1211
msgid "Required for Build Orders"
msgstr "生產工單需求數"
-#: part/serializers.py:1189
+#: part/serializers.py:1216
msgid "Allocated to Build Orders"
msgstr "已分配至生產工單"
-#: part/serializers.py:1196
+#: part/serializers.py:1223
msgid "Required for Sales Orders"
msgstr "銷售訂單需求數"
-#: part/serializers.py:1200
+#: part/serializers.py:1227
msgid "Allocated to Sales Orders"
msgstr "已分配至銷售訂單"
-#: part/serializers.py:1260
+#: part/serializers.py:1287
msgid "Part IPN"
-msgstr ""
+msgstr "零件 IPN"
-#: part/serializers.py:1267
+#: part/serializers.py:1294
msgid "Part Description"
-msgstr ""
+msgstr "零件描述"
-#: part/serializers.py:1306
+#: part/serializers.py:1338
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
-msgstr ""
+msgstr "選擇一個零件以產生該零件 (及其任何變體零件) 的盤點資訊"
-#: part/serializers.py:1316
+#: part/serializers.py:1348
msgid "Select a category to include all parts within that category (and subcategories)"
-msgstr ""
+msgstr "選擇一個類別以包含該類別 (及其子類別) 內的所有零件"
-#: part/serializers.py:1326
+#: part/serializers.py:1358
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
-msgstr ""
+msgstr "選擇一個位置以包含該位置 (及其子位置) 內所有有庫存的零件"
-#: part/serializers.py:1333
+#: part/serializers.py:1365
msgid "Generate Stocktake Entries"
-msgstr ""
+msgstr "產生盤點項目"
-#: part/serializers.py:1334
+#: part/serializers.py:1366
msgid "Save stocktake entries for the selected parts"
-msgstr ""
+msgstr "儲存選定零件的盤點項目"
-#: part/serializers.py:1341
+#: part/serializers.py:1373
msgid "Generate Report"
msgstr "產製報表"
-#: part/serializers.py:1342
+#: part/serializers.py:1374
msgid "Generate a stocktake report for the selected parts"
msgstr "產製選定零件的庫存報表"
-#: part/serializers.py:1445
+#: part/serializers.py:1477
msgid "Minimum Price"
msgstr "最低價格"
-#: part/serializers.py:1446
+#: part/serializers.py:1478
msgid "Override calculated value for minimum price"
msgstr "覆蓋已計算的最低價格值"
-#: part/serializers.py:1453
+#: part/serializers.py:1485
msgid "Minimum price currency"
msgstr "最低價格貨幣"
-#: part/serializers.py:1460
+#: part/serializers.py:1492
msgid "Maximum Price"
msgstr "最高價格"
-#: part/serializers.py:1461
+#: part/serializers.py:1493
msgid "Override calculated value for maximum price"
msgstr "覆蓋已計算的最高價格值"
-#: part/serializers.py:1468
+#: part/serializers.py:1500
msgid "Maximum price currency"
msgstr "最高價格貨幣"
-#: part/serializers.py:1497
+#: part/serializers.py:1529
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1498
+#: part/serializers.py:1530
msgid "Update pricing for this part"
msgstr "更新這個零件的價格"
-#: part/serializers.py:1521
+#: part/serializers.py:1553
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "無法將所提供的貨幣轉換為 {default_currency}"
-#: part/serializers.py:1528
+#: part/serializers.py:1560
msgid "Minimum price must not be greater than maximum price"
msgstr "最低價格不能高於最高價格。"
-#: part/serializers.py:1531
+#: part/serializers.py:1563
msgid "Maximum price must not be less than minimum price"
msgstr "最高價格不能低於最低價格"
-#: part/serializers.py:1684
+#: part/serializers.py:1716
msgid "Quantity must be greater than or equal to zero"
-msgstr ""
+msgstr "數量必須大於或等於零"
-#: part/serializers.py:1697
+#: part/serializers.py:1729
msgid "Select the parent assembly"
msgstr "選擇父裝配"
-#: part/serializers.py:1725
+#: part/serializers.py:1764
msgid "Select the component part"
msgstr "選擇零部件"
-#: part/serializers.py:1927
+#: part/serializers.py:1991
msgid "Select part to copy BOM from"
msgstr "選擇要複製物料清單的零件"
-#: part/serializers.py:1935
+#: part/serializers.py:1999
msgid "Remove Existing Data"
msgstr "移除現有數據"
-#: part/serializers.py:1936
+#: part/serializers.py:2000
msgid "Remove existing BOM items before copying"
msgstr "複製前刪除現有的物料清單項目"
-#: part/serializers.py:1941
+#: part/serializers.py:2005
msgid "Include Inherited"
msgstr "包含繼承的"
-#: part/serializers.py:1942
+#: part/serializers.py:2006
msgid "Include BOM items which are inherited from templated parts"
msgstr "包含從模板零件繼承的物料清單項目"
-#: part/serializers.py:1947
+#: part/serializers.py:2011
msgid "Skip Invalid Rows"
msgstr "跳過無效行"
-#: part/serializers.py:1948
+#: part/serializers.py:2012
msgid "Enable this option to skip invalid rows"
msgstr "啓用此選項以跳過無效行"
-#: part/serializers.py:1953
+#: part/serializers.py:2017
msgid "Copy Substitute Parts"
msgstr "複製替代品零件"
-#: part/serializers.py:1954
+#: part/serializers.py:2018
msgid "Copy substitute parts when duplicate BOM items"
msgstr "複製物料清單項目時複製替代品零件"
@@ -7363,19 +7375,19 @@ msgstr "支援自 InvenTree 匯出資料"
#: plugin/builtin/exporter/parameter_exporter.py:16
msgid "Exclude Inactive"
-msgstr ""
+msgstr "排除停用"
#: plugin/builtin/exporter/parameter_exporter.py:17
msgid "Exclude parameters which are inactive"
-msgstr ""
+msgstr "排除已停用的參數"
#: plugin/builtin/exporter/parameter_exporter.py:29
msgid "Parameter Exporter"
-msgstr ""
+msgstr "參數匯出工具"
#: plugin/builtin/exporter/parameter_exporter.py:30
msgid "Exporter for model parameter data"
-msgstr ""
+msgstr "模型參數資料的匯出工具"
#: plugin/builtin/exporter/stocktake_exporter.py:25
msgid "Include External Stock"
@@ -7451,7 +7463,7 @@ msgstr "整合的 Slack 通知方式"
#: plugin/builtin/integration/core_notifications.py:131
msgid "Slack incoming webhook URL"
-msgstr ""
+msgstr "Slack 傳入 Webhook URL"
#: plugin/builtin/integration/core_notifications.py:132
msgid "URL that is used to send messages to a slack channel"
@@ -7471,11 +7483,11 @@ msgstr "默認貨幣兑換集成"
#: plugin/builtin/integration/machine_types.py:15
msgid "InvenTree Machines"
-msgstr ""
+msgstr "InvenTree 機器"
#: plugin/builtin/integration/machine_types.py:16
msgid "Built-in machine types for InvenTree"
-msgstr ""
+msgstr "InvenTree 內建機器類型"
#: plugin/builtin/integration/part_notifications.py:20
msgid "Part Notifications"
@@ -7639,7 +7651,7 @@ msgstr "作為‘TME’的供應商"
#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
-msgstr ""
+msgstr "只有超級使用者帳號可以管理外掛程式"
#: plugin/installer.py:243
msgid "Plugin installation is disabled"
@@ -7647,11 +7659,11 @@ msgstr "插件安裝已禁用"
#: plugin/installer.py:273
msgid "No package name or URL provided for installation"
-msgstr ""
+msgstr "未提供要安裝的套件名稱或 URL"
#: plugin/installer.py:277
msgid "Invalid characters in package name or URL"
-msgstr ""
+msgstr "套件名稱或 URL 中包含無效字元"
#: plugin/installer.py:287
msgid "Installed plugin successfully"
@@ -7758,7 +7770,7 @@ msgstr "軟件包插件"
msgid "Plugin"
msgstr "插件"
-#: plugin/plugin.py:389
+#: plugin/plugin.py:388
msgid "No author found"
msgstr "未找到作者"
@@ -7951,7 +7963,7 @@ msgstr "安裝尚未確認"
#: plugin/serializers.py:152
msgid "Either packagename or URL must be provided"
-msgstr ""
+msgstr "必須提供套件名稱或 URL"
#: plugin/serializers.py:191
msgid "Full reload"
@@ -8172,7 +8184,7 @@ msgstr "資產文件描述"
#: report/serializers.py:37
msgid "User must be authenticated to save report templates"
-msgstr ""
+msgstr "使用者必須經過驗證才能儲存報告範本"
#: report/serializers.py:118
msgid "Select report template"
@@ -8288,7 +8300,7 @@ msgstr "庫存項測試報告"
#: report/templates/report/inventree_stock_report_merge.html:97
#: report/templates/report/inventree_test_report.html:153
-#: stock/serializers.py:641
+#: stock/serializers.py:655
msgid "Installed Items"
msgstr "已安裝的項目"
@@ -8323,15 +8335,15 @@ msgstr "沒有結果"
#: report/templatetags/report.py:166
msgid "Invalid media file path"
-msgstr ""
+msgstr "無效的媒體檔案路徑"
#: report/templatetags/report.py:185
msgid "Invalid static file path"
-msgstr ""
+msgstr "無效的靜態檔案路徑"
#: report/templatetags/report.py:287
msgid "Asset file not found"
-msgstr ""
+msgstr "找不到資產檔案"
#: report/templatetags/report.py:345 report/templatetags/report.py:461
msgid "Image file not found"
@@ -8339,7 +8351,7 @@ msgstr "找不到圖片文件"
#: report/templatetags/report.py:430
msgid "No image file specified"
-msgstr ""
+msgstr "未指定影像檔案"
#: report/templatetags/report.py:455
msgid "part_image tag requires a Part instance"
@@ -8361,7 +8373,7 @@ msgstr "按頂級位置篩選"
msgid "Include sub-locations in filtered results"
msgstr "在篩選結果中包含子地點"
-#: stock/api.py:343 stock/serializers.py:1213
+#: stock/api.py:343 stock/serializers.py:1227
msgid "Parent Location"
msgstr "上級地點"
@@ -8445,25 +8457,25 @@ msgstr "過期日期前"
msgid "Expiry date after"
msgstr "過期日期後"
-#: stock/api.py:936 stock/serializers.py:646
+#: stock/api.py:936 stock/serializers.py:660
msgid "Stale"
msgstr "過期"
#: stock/api.py:962
msgid "Provide a StockItem PK to exclude that item and all its descendants"
-msgstr ""
+msgstr "提供一個 StockItem PK 以排除該項目及其所有子項目"
#: stock/api.py:980
msgid "Cascade Locations"
-msgstr ""
+msgstr "級聯位置"
#: stock/api.py:981
msgid "If true, include items in child locations of the given location"
-msgstr ""
+msgstr "若為 true,則包含給定位置的子位置中的項目"
#: stock/api.py:987
msgid "Filter by numeric Location ID or the literal 'null'"
-msgstr ""
+msgstr "依數字位置 ID 或常值 'null' 篩選"
#: stock/api.py:1087
msgid "Quantity is required"
@@ -8487,11 +8499,11 @@ msgstr "不能為不可跟蹤的零件提供序列號"
#: stock/api.py:1409
msgid "Include Installed"
-msgstr ""
+msgstr "包含已安裝"
#: stock/api.py:1411
msgid "If true, include test results for items installed underneath the given stock item"
-msgstr ""
+msgstr "若為 true,則包含安裝在給定庫存項目下方的項目的測試結果"
#: stock/api.py:1418
msgid "Filter by numeric Stock Item ID"
@@ -8530,7 +8542,7 @@ msgstr "為所有沒有圖標的位置設置默認圖標(可選)"
msgid "Stock Location"
msgstr "庫存地點"
-#: stock/models.py:148 users/ruleset.py:29
+#: stock/models.py:148 users/ruleset.py:31
msgid "Stock Locations"
msgstr "庫存地點"
@@ -8579,7 +8591,7 @@ msgstr "必須指定零件"
msgid "Stock items cannot be located into structural stock locations!"
msgstr "庫存項不能存放在結構性庫存地點!"
-#: stock/models.py:938 stock/serializers.py:466
+#: stock/models.py:938 stock/serializers.py:469
msgid "Stock item cannot be created for virtual parts"
msgstr "無法為虛擬零件創建庫存項"
@@ -8624,7 +8636,7 @@ msgstr "為此庫存項目選擇匹配的供應商零件"
msgid "Where is this stock item located?"
msgstr "這個庫存物品在哪裏?"
-#: stock/models.py:1064 stock/serializers.py:1649
+#: stock/models.py:1064 stock/serializers.py:1682
msgid "Packaging this stock item is stored in"
msgstr "包裝此庫存物品存儲在"
@@ -8640,7 +8652,7 @@ msgstr "此項目是否安裝在另一個項目中?"
msgid "Serial number for this item"
msgstr "此項目的序列號"
-#: stock/models.py:1111 stock/serializers.py:1634
+#: stock/models.py:1111 stock/serializers.py:1667
msgid "Batch code for this stock item"
msgstr "此庫存項的批號"
@@ -8753,7 +8765,7 @@ msgstr "庫存項目前正在生產"
msgid "Serialized stock cannot be merged"
msgstr "序列化的庫存不能合併"
-#: stock/models.py:2094 stock/serializers.py:1504
+#: stock/models.py:2094 stock/serializers.py:1537
msgid "Duplicate stock items"
msgstr "複製庫存項"
@@ -8877,7 +8889,7 @@ msgstr "選擇要生成序列號的零件"
msgid "Quantity of serial numbers to generate"
msgstr "要生成的序列號的數量"
-#: stock/serializers.py:245
+#: stock/serializers.py:246
msgid "Test template for this result"
msgstr "此結果的測試模板"
@@ -8901,222 +8913,222 @@ msgstr "父項"
msgid "Parent stock item"
msgstr "父庫存項"
-#: stock/serializers.py:451
+#: stock/serializers.py:454
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "添加時使用包裝尺寸:定義的數量是包裝的數量"
-#: stock/serializers.py:453
+#: stock/serializers.py:456
msgid "Use pack size"
msgstr "使用包裝數"
-#: stock/serializers.py:460 stock/serializers.py:715
+#: stock/serializers.py:463 stock/serializers.py:729
msgid "Enter serial numbers for new items"
msgstr "輸入新項目的序列號"
-#: stock/serializers.py:568
+#: stock/serializers.py:571
msgid "Supplier Part Number"
msgstr "供應商零件編號"
-#: stock/serializers.py:638 users/models.py:187
+#: stock/serializers.py:652 users/models.py:187
msgid "Expired"
msgstr "已過期"
-#: stock/serializers.py:644
+#: stock/serializers.py:658
msgid "Child Items"
msgstr "子項目"
-#: stock/serializers.py:648
+#: stock/serializers.py:662
msgid "Tracking Items"
msgstr "跟蹤項目"
-#: stock/serializers.py:654
+#: stock/serializers.py:668
msgid "Purchase price of this stock item, per unit or pack"
msgstr "此庫存商品的購買價格,單位或包裝"
-#: stock/serializers.py:692
+#: stock/serializers.py:706
msgid "Enter number of stock items to serialize"
msgstr "輸入要序列化的庫存項目數量"
-#: stock/serializers.py:700 stock/serializers.py:743 stock/serializers.py:781
-#: stock/serializers.py:919
+#: stock/serializers.py:714 stock/serializers.py:757 stock/serializers.py:795
+#: stock/serializers.py:933
msgid "No stock item provided"
msgstr "未提供庫存項"
-#: stock/serializers.py:708
+#: stock/serializers.py:722
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "數量不得超過現有庫存量 ({q})"
-#: stock/serializers.py:726 stock/serializers.py:1461 stock/serializers.py:1782
-#: stock/serializers.py:1831
+#: stock/serializers.py:740 stock/serializers.py:1494 stock/serializers.py:1815
+#: stock/serializers.py:1864
msgid "Destination stock location"
msgstr "目標庫存位置"
-#: stock/serializers.py:746
+#: stock/serializers.py:760
msgid "Serial numbers cannot be assigned to this part"
msgstr "此零件不能分配序列號"
-#: stock/serializers.py:766
+#: stock/serializers.py:780
msgid "Serial numbers already exist"
msgstr "序列號已存在"
-#: stock/serializers.py:816
+#: stock/serializers.py:830
msgid "Select stock item to install"
msgstr "選擇要安裝的庫存項目"
-#: stock/serializers.py:823
+#: stock/serializers.py:837
msgid "Quantity to Install"
msgstr "安裝數量"
-#: stock/serializers.py:824
+#: stock/serializers.py:838
msgid "Enter the quantity of items to install"
msgstr "輸入要安裝的項目數量"
-#: stock/serializers.py:829 stock/serializers.py:909 stock/serializers.py:1051
+#: stock/serializers.py:843 stock/serializers.py:923 stock/serializers.py:1065
msgid "Add transaction note (optional)"
msgstr "添加交易記錄 (可選)"
-#: stock/serializers.py:837
+#: stock/serializers.py:851
msgid "Quantity to install must be at least 1"
msgstr "安裝數量必須至少為1"
-#: stock/serializers.py:845
+#: stock/serializers.py:859
msgid "Stock item is unavailable"
msgstr "庫存項不可用"
-#: stock/serializers.py:856
+#: stock/serializers.py:870
msgid "Selected part is not in the Bill of Materials"
msgstr "所選零件不在物料清單中"
-#: stock/serializers.py:869
+#: stock/serializers.py:883
msgid "Quantity to install must not exceed available quantity"
msgstr "安裝數量不得超過可用數量"
-#: stock/serializers.py:904
+#: stock/serializers.py:918
msgid "Destination location for uninstalled item"
msgstr "已卸載項目的目標位置"
-#: stock/serializers.py:942
+#: stock/serializers.py:956
msgid "Select part to convert stock item into"
msgstr "選擇要將庫存項目轉換為的零件"
-#: stock/serializers.py:955
+#: stock/serializers.py:969
msgid "Selected part is not a valid option for conversion"
msgstr "所選零件不是有效的轉換選項"
-#: stock/serializers.py:972
+#: stock/serializers.py:986
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "無法轉換已分配供應商零件的庫存項"
-#: stock/serializers.py:1006
+#: stock/serializers.py:1020
msgid "Stock item status code"
msgstr "庫存項狀態代碼"
-#: stock/serializers.py:1035
+#: stock/serializers.py:1049
msgid "Select stock items to change status"
msgstr "選擇要更改狀態的庫存項目"
-#: stock/serializers.py:1041
+#: stock/serializers.py:1055
msgid "No stock items selected"
msgstr "未選擇庫存商品"
-#: stock/serializers.py:1148 stock/serializers.py:1219
+#: stock/serializers.py:1162 stock/serializers.py:1233
msgid "Sublocations"
msgstr "轉租"
-#: stock/serializers.py:1214
+#: stock/serializers.py:1228
msgid "Parent stock location"
msgstr "上級庫存地點"
-#: stock/serializers.py:1333
+#: stock/serializers.py:1366
msgid "Part must be salable"
msgstr "零件必須可銷售"
-#: stock/serializers.py:1337
+#: stock/serializers.py:1370
msgid "Item is allocated to a sales order"
msgstr "物料已分配到銷售訂單"
-#: stock/serializers.py:1341
+#: stock/serializers.py:1374
msgid "Item is allocated to a build order"
msgstr "項目被分配到生產訂單中"
-#: stock/serializers.py:1365
+#: stock/serializers.py:1398
msgid "Customer to assign stock items"
msgstr "客户分配庫存項目"
-#: stock/serializers.py:1371
+#: stock/serializers.py:1404
msgid "Selected company is not a customer"
msgstr "所選公司不是客户"
-#: stock/serializers.py:1379
+#: stock/serializers.py:1412
msgid "Stock assignment notes"
msgstr "庫存分配説明"
-#: stock/serializers.py:1389 stock/serializers.py:1677
+#: stock/serializers.py:1422 stock/serializers.py:1710
msgid "A list of stock items must be provided"
msgstr "必須提供庫存物品清單"
-#: stock/serializers.py:1468
+#: stock/serializers.py:1501
msgid "Stock merging notes"
msgstr "庫存合併説明"
-#: stock/serializers.py:1473
+#: stock/serializers.py:1506
msgid "Allow mismatched suppliers"
msgstr "允許不匹配的供應商"
-#: stock/serializers.py:1474
+#: stock/serializers.py:1507
msgid "Allow stock items with different supplier parts to be merged"
msgstr "允許合併具有不同供應商零件的庫存項目"
-#: stock/serializers.py:1479
+#: stock/serializers.py:1512
msgid "Allow mismatched status"
msgstr "允許不匹配的狀態"
-#: stock/serializers.py:1480
+#: stock/serializers.py:1513
msgid "Allow stock items with different status codes to be merged"
msgstr "允許合併具有不同狀態代碼的庫存項目"
-#: stock/serializers.py:1490
+#: stock/serializers.py:1523
msgid "At least two stock items must be provided"
msgstr "必須提供至少兩件庫存物品"
-#: stock/serializers.py:1557
+#: stock/serializers.py:1590
msgid "No Change"
msgstr "無更改"
-#: stock/serializers.py:1595
+#: stock/serializers.py:1628
msgid "StockItem primary key value"
msgstr "庫存項主鍵值"
-#: stock/serializers.py:1608
+#: stock/serializers.py:1641
msgid "Stock item is not in stock"
msgstr "庫存項無庫存"
-#: stock/serializers.py:1611
+#: stock/serializers.py:1644
msgid "Stock item is already in stock"
msgstr "庫存項已在庫"
-#: stock/serializers.py:1625
+#: stock/serializers.py:1658
msgid "Quantity must not be negative"
msgstr "數量不可為負"
-#: stock/serializers.py:1667
+#: stock/serializers.py:1700
msgid "Stock transaction notes"
msgstr "庫存交易記錄"
-#: stock/serializers.py:1837
+#: stock/serializers.py:1870
msgid "Merge into existing stock"
msgstr "合併至現有庫存"
-#: stock/serializers.py:1838
+#: stock/serializers.py:1871
msgid "Merge returned items into existing stock items if possible"
msgstr "可行時將退回項目併入現有庫存"
-#: stock/serializers.py:1881
+#: stock/serializers.py:1914
msgid "Next Serial Number"
msgstr "下一個序列號"
-#: stock/serializers.py:1887
+#: stock/serializers.py:1920
msgid "Previous Serial Number"
msgstr "上一個序列號"
@@ -9582,115 +9594,119 @@ msgstr "主要群組"
msgid "Primary group for the user"
msgstr "使用者的主要群組"
-#: users/ruleset.py:26
+#: users/ruleset.py:27
msgid "Admin"
msgstr "管理員"
-#: users/ruleset.py:32
+#: users/ruleset.py:30
+msgid "Bills of Material"
+msgstr ""
+
+#: users/ruleset.py:34
msgid "Purchase Orders"
msgstr "採購訂單"
-#: users/ruleset.py:33
+#: users/ruleset.py:35
msgid "Sales Orders"
msgstr "銷售訂單"
-#: users/ruleset.py:34
+#: users/ruleset.py:36
msgid "Return Orders"
msgstr "退貨訂單"
-#: users/serializers.py:190
+#: users/serializers.py:186
msgid "Username"
msgstr "用户名"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First Name"
msgstr "名"
-#: users/serializers.py:193
+#: users/serializers.py:189
msgid "First name of the user"
msgstr "用户的名字(不包括姓氏)"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last Name"
msgstr "姓"
-#: users/serializers.py:197
+#: users/serializers.py:193
msgid "Last name of the user"
msgstr "用户的姓氏"
-#: users/serializers.py:201
+#: users/serializers.py:197
msgid "Email address of the user"
msgstr "用户的電子郵件地址"
-#: users/serializers.py:244
+#: users/serializers.py:240
msgid "User must be authenticated"
-msgstr ""
+msgstr "使用者必須經過驗證"
-#: users/serializers.py:253
+#: users/serializers.py:249
msgid "Only a superuser can create a token for another user"
-msgstr ""
+msgstr "只有超級使用者可以為其他使用者建立權杖"
-#: users/serializers.py:322
+#: users/serializers.py:329
msgid "Administrator"
-msgstr ""
+msgstr "管理員"
-#: users/serializers.py:323
+#: users/serializers.py:330
msgid "Does this user have administrative permissions"
-msgstr ""
+msgstr "此使用者是否具有管理權限"
-#: users/serializers.py:328 users/serializers.py:417
+#: users/serializers.py:335 users/serializers.py:424
msgid "Superuser"
msgstr "超級用户"
-#: users/serializers.py:328 users/serializers.py:418
+#: users/serializers.py:335 users/serializers.py:425
msgid "Is this user a superuser"
msgstr "此用户是否為超級用户"
-#: users/serializers.py:332 users/serializers.py:425
+#: users/serializers.py:339 users/serializers.py:432
msgid "Is this user account active"
msgstr "此用户帳户是否已激活"
-#: users/serializers.py:344
+#: users/serializers.py:351
msgid "Only a superuser can adjust this field"
msgstr "僅超級使用者可調整此欄位"
-#: users/serializers.py:372
+#: users/serializers.py:379
msgid "Password"
msgstr "密碼"
-#: users/serializers.py:373
+#: users/serializers.py:380
msgid "Password for the user"
msgstr "使用者密碼"
-#: users/serializers.py:379
+#: users/serializers.py:386
msgid "Override warning"
msgstr "忽略警告"
-#: users/serializers.py:380
+#: users/serializers.py:387
msgid "Override the warning about password rules"
msgstr "忽略密碼規則警告"
-#: users/serializers.py:410
+#: users/serializers.py:417
msgid "Staff"
-msgstr ""
+msgstr "員工"
-#: users/serializers.py:411
+#: users/serializers.py:418
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "此使用者是否具有員工權限"
-#: users/serializers.py:461
+#: users/serializers.py:468
msgid "You do not have permission to create users"
msgstr "您沒有建立使用者的權限"
-#: users/serializers.py:482
+#: users/serializers.py:489
msgid "Your account has been created."
msgstr "您的帳號已經建立完成。"
-#: users/serializers.py:484
+#: users/serializers.py:491
msgid "Please use the password reset function to login"
msgstr "請使用重設密碼功能來登入"
-#: users/serializers.py:490
+#: users/serializers.py:497
msgid "Welcome to InvenTree"
msgstr "歡迎使用 InvenTree"
diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py
index dbf8cf815a..23e154f751 100644
--- a/src/backend/InvenTree/part/api.py
+++ b/src/backend/InvenTree/part/api.py
@@ -599,6 +599,7 @@ class PartValidateBOM(RetrieveUpdateAPI):
queryset = Part.objects.all()
serializer_class = part_serializers.PartBomValidateSerializer
+ role_required = 'bom.change'
@extend_schema(
responses={
@@ -1056,6 +1057,7 @@ class PartList(
filter_backends = SEARCH_ORDER_FILTER
ordering_fields = [
+ 'id',
'name',
'creation_date',
'IPN',
diff --git a/src/backend/InvenTree/part/filters.py b/src/backend/InvenTree/part/filters.py
index 92887e57c8..d6610260d5 100644
--- a/src/backend/InvenTree/part/filters.py
+++ b/src/backend/InvenTree/part/filters.py
@@ -171,7 +171,14 @@ def annotate_build_order_requirements(reference: str = '') -> QuerySet:
build_filter = Q(build__status__in=BuildStatusGroups.ACTIVE_CODES)
return Coalesce(
- SubquerySum(f'{reference}used_in__build_lines__quantity', filter=build_filter),
+ SubquerySum(
+ ExpressionWrapper(
+ F(f'{reference}used_in__build_lines__quantity')
+ - F(f'{reference}used_in__build_lines__consumed'),
+ output_field=DecimalField(),
+ ),
+ filter=build_filter,
+ ),
Decimal(0),
output_field=models.DecimalField(),
)
diff --git a/src/backend/InvenTree/part/migrations/0148_auto_20260427_2233.py b/src/backend/InvenTree/part/migrations/0148_auto_20260427_2233.py
new file mode 100644
index 0000000000..2b6d8d8e7c
--- /dev/null
+++ b/src/backend/InvenTree/part/migrations/0148_auto_20260427_2233.py
@@ -0,0 +1,43 @@
+# Generated by Django 5.2.13 on 2026-04-27 22:33
+
+from django.db import migrations
+
+
+def update_bom_role(apps, schema_editor):
+ """Update the ruleset for the BOM role.
+
+ As the 'bom' role was previously covered by the 'part' role,
+ we need to update the ruleset to include the correct models.
+
+ """
+ from django.contrib.auth.models import Group
+ from users.ruleset import RuleSetEnum
+ from users.models import RuleSet
+
+ # For each existing group, create a new 'bom' ruleset
+ for group in Group.objects.all():
+ # Find a matching 'part' ruleset for this group
+ if ruleset := RuleSet.objects.filter(name=RuleSetEnum.PART, group=group).first():
+ # A 'part' ruleset exists for this group - create a new 'bom' ruleset based on this
+ ruleset.pk = None # Create a new instance
+ ruleset.name = RuleSetEnum.BOM
+ ruleset.save()
+
+ else:
+ # No 'part' ruleset exists for this group - create a default 'bom' ruleset
+ RuleSet.objects.create(
+ name=RuleSetEnum.BOM,
+ group=group
+ )
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("part", "0147_remove_part_default_supplier"),
+ ("users", "0014_userprofile")
+ ]
+
+ operations = [
+ migrations.RunPython(update_bom_role, reverse_code=migrations.RunPython.noop),
+ ]
diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py
index 152df37b45..c006312851 100644
--- a/src/backend/InvenTree/part/models.py
+++ b/src/backend/InvenTree/part/models.py
@@ -2058,8 +2058,13 @@ class Part(
Note: Does *NOT* delete inherited BOM items!
"""
+ import part.tasks as part_tasks
+
self.bom_items.all().delete()
+ # Offload task to re-validate the BOM for this assembly
+ InvenTree.tasks.offload_task(part_tasks.check_bom_valid, self.pk, group='part')
+
def getRequiredParts(self, recursive=False, parts=None):
"""Return a list of parts required to make this part (i.e. BOM items).
@@ -2473,6 +2478,7 @@ class Part(
category__in=categories
).order_by('-category__level')
+ template_ids = set()
parameters = []
content_type = ContentType.objects.get_for_model(Part)
@@ -2483,6 +2489,12 @@ class Part(
).exists():
continue
+ # Ensure we do not create duplicate parameters if multiple categories have the same template
+ if category_template.template.pk in template_ids:
+ continue
+
+ template_ids.add(category_template.template.pk)
+
parameters.append(
Parameter(
template=category_template.template,
@@ -2492,8 +2504,7 @@ class Part(
)
)
- if len(parameters) > 0:
- Parameter.objects.bulk_create(parameters)
+ Parameter.objects.bulk_create(parameters)
def getTestTemplates(
self, required=None, include_parent: bool = True, enabled=None
@@ -2625,9 +2636,7 @@ class Part(
parts = []
# Child parts
- children = self.get_descendants(include_self=False)
-
- for child in children:
+ for child in self.get_descendants(include_self=False):
parts.append(child)
# Immediate parent, and siblings
@@ -3923,9 +3932,12 @@ class BomItem(InvenTree.models.MetadataMixin, InvenTree.models.InvenTreeModel):
assemblies = set()
if db_instance:
- # Find all assemblies which use this BomItem *after* we save
+ # Find all assemblies which use this BomItem *before* we save
assemblies.update(db_instance.get_assemblies())
+ # Update the set of assemblies to include those which use this BomItem *after* we save
+ assemblies.update(self.get_assemblies())
+
for assembly in assemblies:
# Offload task to update the checksum for this assembly
InvenTree.tasks.offload_task(
@@ -4079,7 +4091,9 @@ class BomItem(InvenTree.models.MetadataMixin, InvenTree.models.InvenTreeModel):
These fields are used to calculate the checksum hash of this BOM item.
"""
return [
+ 'part',
'part_id',
+ 'sub_part',
'sub_part_id',
'quantity',
'setup_quantity',
diff --git a/src/backend/InvenTree/part/test_api.py b/src/backend/InvenTree/part/test_api.py
index da8bada994..1ba1caad90 100644
--- a/src/backend/InvenTree/part/test_api.py
+++ b/src/backend/InvenTree/part/test_api.py
@@ -1010,7 +1010,7 @@ class PartAPITest(PartAPITestBase):
filters = {'active': True, 'assembly': True, 'bom_valid': True}
# Initially, there are no parts with a valid BOM
- response = self.get(url, filters)
+ response = self.get(url, filters, expected_code=200)
self.assertEqual(len(response.data), 0)
@@ -1038,6 +1038,14 @@ class PartAPITest(PartAPITestBase):
# Test the BOM validation API endpoint
bom_url = reverse('api-part-bom-validate', kwargs={'pk': assembly.pk})
+
+ # Initially, we do not have the required role permissions
+ self.get(bom_url, expected_code=403)
+
+ # Add required role
+ self.assignRole('bom.add')
+
+ # Now we should be able to validate the BOM via the API
data = self.get(bom_url, expected_code=200).data
self.assertEqual(data['bom_validated'], True)
@@ -2913,6 +2921,12 @@ class BomItemTest(InvenTreeAPITestCase):
# Count first, operate directly on Model
countbefore = BomItemSubstitute.objects.count()
+ # Initially, the user does not have the required permissions
+ self.get(url, expected_code=403)
+
+ # Assign the permission to view the substitute list
+ self.assignRole('bom.add')
+
# Now, make sure API returns the same count
response = self.get(url, expected_code=200)
self.assertEqual(len(response.data), countbefore)
diff --git a/src/backend/InvenTree/part/test_bom_item.py b/src/backend/InvenTree/part/test_bom_item.py
index 7c3e40fb70..d2e8d91b91 100644
--- a/src/backend/InvenTree/part/test_bom_item.py
+++ b/src/backend/InvenTree/part/test_bom_item.py
@@ -390,3 +390,83 @@ class BomItemTest(TestCase):
# Delete the new BOM item
bom_item.delete()
+
+ def test_bom_validated(self):
+ """Test for caching of 'bom_validated' property."""
+ from part.tasks import validate_bom
+
+ assembly = Part.objects.create(
+ name='Assembly1', description='An assembly part', assembly=True
+ )
+
+ assembly_2 = Part.objects.create(
+ name='Assembly2', description='An assembly part', assembly=True
+ )
+
+ def check(valid: bool = True):
+ """Helper function to check the BOM for this assembly."""
+ nonlocal assembly
+ assembly.refresh_from_db()
+ self.assertEqual(assembly.bom_validated, valid)
+
+ def validate(valid: bool = True):
+ """Helper function to validate the BOM for this assembly."""
+ nonlocal assembly
+ validate_bom(assembly.pk, valid)
+ check(valid)
+
+ check(valid=False)
+ validate()
+
+ sub_part_1 = Part.objects.create(
+ name='SubPart1', description='A sub-part', component=True
+ )
+
+ sub_part_2 = Part.objects.create(
+ name='SubPart2', description='A sub-part', component=True
+ )
+
+ # Still valid at this stage - we have not made any changes to the BOM
+ check(valid=True)
+
+ # Creating a *new* BOM item should invalidate the bom_validated cache
+ bom_item = BomItem.objects.create(
+ part=assembly, sub_part=sub_part_1, quantity=1
+ )
+
+ check(valid=False)
+
+ # Editing the BOM item should also invalidate the bom_validated cache
+ validate()
+ bom_item.quantity = 2
+ bom_item.save()
+ check(valid=False)
+
+ # Editing the BOM item without changing any relevant fields should not invalidate the bom_validated cache
+ validate()
+ bom_item.description = 'This is a description'
+ bom_item.save()
+ check(valid=True)
+
+ # Point the BOM item to a different component
+ validate()
+ bom_item.sub_part = sub_part_2
+ bom_item.save()
+ check(valid=False)
+
+ # Point the BOM to a different assembly
+ validate()
+ bom_item.part = assembly_2
+ bom_item.save()
+ check(valid=False)
+
+ # Check a partial restore - returning to previous state should re-validate
+ bom_item.part = assembly
+ bom_item.save()
+ check(valid=True)
+
+ # Now, delete the BomItem entirely
+ bom_item.delete()
+ check(valid=False)
+
+ self.assertIsNotNone(assembly.bom_checked_date)
diff --git a/src/backend/InvenTree/plugin/plugin.py b/src/backend/InvenTree/plugin/plugin.py
index 9019951c11..1e9518cc99 100644
--- a/src/backend/InvenTree/plugin/plugin.py
+++ b/src/backend/InvenTree/plugin/plugin.py
@@ -5,7 +5,6 @@ import json
import re
import warnings
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
@@ -528,6 +527,8 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase):
@mark_final
def is_editable(cls):
"""Returns if the current part is editable."""
+ from distutils.sysconfig import get_python_lib
+
pkg_name = cls.__name__.split('.')[0]
dist_info = list(Path(get_python_lib()).glob(f'{pkg_name}-*.dist-info'))
return bool(len(dist_info) == 1)
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 6dd75904a9..428edaecfd 100644
--- a/src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py
+++ b/src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py
@@ -1,11 +1,16 @@
# Generated by Django 4.2.12 on 2024-05-23 16:40
+import structlog
+
from importlib import import_module
from django.conf import settings
from django.db import migrations
+logger = structlog.getLogger('inventree')
+
+
def clear_sessions(apps, schema_editor): # pragma: no cover
"""Clear all user sessions."""
@@ -16,7 +21,7 @@ def clear_sessions(apps, schema_editor): # pragma: no cover
try:
engine = import_module(settings.SESSION_ENGINE)
engine.SessionStore.clear_expired()
- print('\nCleared all user sessions to deal with GHSA-2crp-q9pc-457j')
+ logger.info('Cleared 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/oauth2_scopes.py b/src/backend/InvenTree/users/oauth2_scopes.py
index b5e687ce1f..123cb8d528 100644
--- a/src/backend/InvenTree/users/oauth2_scopes.py
+++ b/src/backend/InvenTree/users/oauth2_scopes.py
@@ -15,6 +15,7 @@ _roles = {
'part': 'Role Parts',
'stock_location': 'Role Stock Locations',
'stock': 'Role Stock Items',
+ 'bom': 'Role Bills of Material',
'build': 'Role Build Orders',
'purchase_order': 'Role Purchase Orders',
'sales_order': 'Role Sales Orders',
diff --git a/src/backend/InvenTree/users/permissions.py b/src/backend/InvenTree/users/permissions.py
index 7c93f5ec97..c3d7c964b1 100644
--- a/src/backend/InvenTree/users/permissions.py
+++ b/src/backend/InvenTree/users/permissions.py
@@ -195,6 +195,11 @@ def check_user_permission(
result = user.has_perm(permission_name)
+ # If the user does not have permissions (as determined above), check if the model class provides a custom permission check method
+ # This is required for non-standard models (i.e. defined via plugins), which do not have the required ruleset definitions
+ if not result and hasattr(model, 'check_user_permission'): # pragma: no cover
+ result = model.check_user_permission(user, permission)
+
# Save result to session-cache
InvenTree.cache.set_session_cache(cache_key, result)
diff --git a/src/backend/InvenTree/users/ruleset.py b/src/backend/InvenTree/users/ruleset.py
index ed70b79b4d..272a30d452 100644
--- a/src/backend/InvenTree/users/ruleset.py
+++ b/src/backend/InvenTree/users/ruleset.py
@@ -12,6 +12,7 @@ class RuleSetEnum(StringEnum):
ADMIN = 'admin'
PART_CATEGORY = 'part_category'
PART = 'part'
+ BOM = 'bom'
STOCK_LOCATION = 'stock_location'
STOCK = 'stock'
BUILD = 'build'
@@ -26,6 +27,7 @@ RULESET_CHOICES = [
(RuleSetEnum.ADMIN, _('Admin')),
(RuleSetEnum.PART_CATEGORY, _('Part Categories')),
(RuleSetEnum.PART, _('Parts')),
+ (RuleSetEnum.BOM, _('Bills of Material')),
(RuleSetEnum.STOCK_LOCATION, _('Stock Locations')),
(RuleSetEnum.STOCK, _('Stock Items')),
(RuleSetEnum.BUILD, _('Build Orders')),
@@ -94,6 +96,18 @@ def get_ruleset_models() -> dict:
'django_mailbox_messageattachment',
'django_mailbox_message',
],
+ RuleSetEnum.BOM: ['part_bomitem', 'part_bomitemsubstitute'],
+ RuleSetEnum.BUILD: [
+ 'part_part',
+ 'part_partcategory',
+ 'part_bomitem',
+ 'part_bomitemsubstitute',
+ 'build_build',
+ 'build_builditem',
+ 'build_buildline',
+ 'stock_stockitem',
+ 'stock_stocklocation',
+ ],
RuleSetEnum.PART_CATEGORY: [
'part_partcategory',
'part_partcategoryparametertemplate',
@@ -102,8 +116,6 @@ def get_ruleset_models() -> dict:
RuleSetEnum.PART: [
'part_part',
'part_partpricing',
- 'part_bomitem',
- 'part_bomitemsubstitute',
'part_partsellpricebreak',
'part_partinternalpricebreak',
'part_parttesttemplate',
@@ -120,17 +132,6 @@ def get_ruleset_models() -> dict:
'stock_stockitemtracking',
'stock_stockitemtestresult',
],
- RuleSetEnum.BUILD: [
- 'part_part',
- 'part_partcategory',
- 'part_bomitem',
- 'part_bomitemsubstitute',
- 'build_build',
- 'build_builditem',
- 'build_buildline',
- 'stock_stockitem',
- 'stock_stocklocation',
- ],
RuleSetEnum.PURCHASE_ORDER: [
'company_company',
'company_contact',
diff --git a/src/backend/InvenTree/users/test_api.py b/src/backend/InvenTree/users/test_api.py
index c3acd2de0b..20cd9488d8 100644
--- a/src/backend/InvenTree/users/test_api.py
+++ b/src/backend/InvenTree/users/test_api.py
@@ -54,12 +54,16 @@ class UserAPITests(InvenTreeAPITestCase):
url = reverse('api-build-list')
response = self.options(url)
actions = response.data['actions']['POST']
- issued_by = actions['issued_by']
- self.assertEqual(issued_by['pk_field'], 'pk')
- self.assertEqual(issued_by['model'], 'user')
- self.assertEqual(issued_by['api_url'], reverse('api-user-list'))
- self.assertEqual(issued_by['default'], self.user.pk)
+ issued_by = actions['issued_by']
+ self.assertTrue(issued_by['read_only'])
+
+ project_code = actions['project_code']
+ self.assertFalse(project_code['read_only'])
+ self.assertEqual(project_code['type'], 'related field')
+ self.assertEqual(project_code['model'], 'projectcode')
+ self.assertEqual(project_code['api_url'], reverse('api-project-code-list'))
+ self.assertEqual(project_code['pk_field'], 'pk')
def test_user_api(self):
"""Tests for User API endpoints."""
diff --git a/src/backend/requirements-3.14.txt b/src/backend/requirements-3.14.txt
index d02c74e54e..e8c8b7beb6 100644
--- a/src/backend/requirements-3.14.txt
+++ b/src/backend/requirements-3.14.txt
@@ -101,16 +101,16 @@ blessed==1.38.0 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-boto3==1.42.82 \
- --hash=sha256:6df9ca0f5047c6afe6bd42244d8e059cde69e2cdb719ebd68d52c7d7beb529b2 \
- --hash=sha256:804341c8197c556e8e7ceb82388ee120f319a4efbb9dc368f6059760a11cfc7d
+boto3==1.42.90 \
+ --hash=sha256:bafb5bb1dea262ac95f9afb1e415f06a9490f05cb203bdd897d0afdcd17733c6 \
+ --hash=sha256:fde7f7bcad6ec8342d6bf18f56d118d0cb6df189310cfaf73e2eb6443b1cb418
# via
# -c src/backend/requirements.txt
# django-anymail
# django-storages
-botocore==1.42.82 \
- --hash=sha256:824dbb58c99d894f193ed1dd75cf59650e25c1b5adb9d3a66b39fdede46f259b \
- --hash=sha256:a2bfe8537e95462ec06a46cc29c327f84746722bb4ce106491bfd3af8075ceed
+botocore==1.42.90 \
+ --hash=sha256:234c39492cd3088acb021d999e3392a4d50238ae3e70b9d9ae1504c30d9009d1 \
+ --hash=sha256:5c95504720346990adc8e3ae1023eb46f9409084b79688e4773ba7099c5fd3db
# via
# -c src/backend/requirements.txt
# boto3
@@ -578,9 +578,9 @@ django-cors-headers==4.9.0 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-django-dbbackup==5.2.0 \
- --hash=sha256:540948869e44778b5b33333cbab0cfe44279defd47df635d309ede8666894370 \
- --hash=sha256:72b11dd31758abcf8f2d405fd2efbc49c9624bc17196f8c68542d3dc8d8d53c3
+django-dbbackup==5.3.0 \
+ --hash=sha256:2c880dba7650539e8a724174fedb5213062c4fcda3aa09e1c5f3f573192106cb \
+ --hash=sha256:ff80b5facd524e3f6479235aeb330b094a1c982f8b0b9503c24ba0dc613162ed
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -814,9 +814,9 @@ feedparser==6.0.12 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-fido2==2.1.1 \
- --hash=sha256:f1379f845870cc7fc64c7f07323c3ce41e8c96c37054e79e0acd5630b3fec5ac \
- --hash=sha256:f85c16c8084abf6530b6c6ec3a0cf8575943321842e06916686943a8b784182c
+fido2==2.2.0 \
+ --hash=sha256:0d8122e690096ad82afde42ac9d6433a4eeffda64084f36341ea02546b181dd1 \
+ --hash=sha256:3587ccf0af7b71b5dd73f17e1dbec9f0fd157292f9163f02e7778f46d0d25fe5
# via
# -c src/backend/requirements.txt
# django-allauth
@@ -990,9 +990,9 @@ inflection==0.5.1 \
# via
# -c src/backend/requirements.txt
# drf-spectacular
-invoke==2.2.1 \
- --hash=sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8 \
- --hash=sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707
+invoke==3.0.3 \
+ --hash=sha256:437b6a622223824380bfb4e64f612711a6b648c795f565efc8625af66fb57f0c \
+ --hash=sha256:f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053
# via
# -c src/backend/requirements.txt
# paramiko
@@ -1033,147 +1033,141 @@ jwcrypto==1.5.7 \
# via
# -c src/backend/requirements.txt
# django-oauth-toolkit
-lxml==6.0.2 \
- --hash=sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba \
- --hash=sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8 \
- --hash=sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0 \
- --hash=sha256:08b9d5e803c2e4725ae9e8559ee880e5328ed61aa0935244e0515d7d9dbec0aa \
- --hash=sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f \
- --hash=sha256:0aa7070978f893954008ab73bb9e3c24a7c56c054e00566a21b553dc18105fca \
- --hash=sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf \
- --hash=sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607 \
- --hash=sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8 \
- --hash=sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452 \
- --hash=sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700 \
- --hash=sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d \
- --hash=sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b \
- --hash=sha256:1ea99340b3c729beea786f78c38f60f4795622f36e305d9c9be402201efdc3b7 \
- --hash=sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d \
- --hash=sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6 \
- --hash=sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a \
- --hash=sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d \
- --hash=sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca \
- --hash=sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb \
- --hash=sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed \
- --hash=sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d \
- --hash=sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e \
- --hash=sha256:2c8458c2cdd29589a8367c09c8f030f1d202be673f0ca224ec18590b3b9fb694 \
- --hash=sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd \
- --hash=sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659 \
- --hash=sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c \
- --hash=sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314 \
- --hash=sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5 \
- --hash=sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849 \
- --hash=sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938 \
- --hash=sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a \
- --hash=sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34 \
- --hash=sha256:3fee0851639d06276e6b387f1c190eb9d7f06f7f53514e966b26bae46481ec90 \
- --hash=sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6 \
- --hash=sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba \
- --hash=sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285 \
- --hash=sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553 \
- --hash=sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d \
- --hash=sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c \
- --hash=sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5 \
- --hash=sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601 \
- --hash=sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba \
- --hash=sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37 \
- --hash=sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f \
- --hash=sha256:5921d924aa5468c939d95c9814fa9f9b5935a6ff4e679e26aaf2951f74043512 \
- --hash=sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a \
- --hash=sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438 \
- --hash=sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153 \
- --hash=sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9 \
- --hash=sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d \
- --hash=sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6 \
- --hash=sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f \
- --hash=sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534 \
- --hash=sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46 \
- --hash=sha256:66328dabea70b5ba7e53d94aa774b733cf66686535f3bc9250a7aab53a91caaf \
- --hash=sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f \
- --hash=sha256:6cdaefac66e8b8f30e37a9b4768a391e1f8a16a7526d5bc77a7928408ef68e93 \
- --hash=sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8 \
- --hash=sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f \
- --hash=sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1 \
- --hash=sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322 \
- --hash=sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f \
- --hash=sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9 \
- --hash=sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f \
- --hash=sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7 \
- --hash=sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f \
- --hash=sha256:817ef43a0c0b4a77bd166dc9a09a555394105ff3374777ad41f453526e37f9cb \
- --hash=sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916 \
- --hash=sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec \
- --hash=sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9 \
- --hash=sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d \
- --hash=sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679 \
- --hash=sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0 \
- --hash=sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192 \
- --hash=sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917 \
- --hash=sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c \
- --hash=sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d \
- --hash=sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338 \
- --hash=sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d \
- --hash=sha256:995e783eb0374c120f528f807443ad5a83a656a8624c467ea73781fc5f8a8304 \
- --hash=sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77 \
- --hash=sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba \
- --hash=sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456 \
- --hash=sha256:a656ca105115f6b766bba324f23a67914d9c728dafec57638e2b92a9dcd76c62 \
- --hash=sha256:a6b5b39cc7e2998f968f05309e666103b53e2edd01df8dc51b90d734c0825444 \
- --hash=sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a \
- --hash=sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f \
- --hash=sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c \
- --hash=sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d \
- --hash=sha256:ac02dc29fd397608f8eb15ac1610ae2f2f0154b03f631e6d724d9e2ad4ee2c84 \
- --hash=sha256:af85529ae8d2a453feee4c780d9406a5e3b17cee0dd75c18bd31adcd584debc3 \
- --hash=sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe \
- --hash=sha256:b2142a376b40b6736dfc214fd2902409e9e3857eff554fed2d3c60f097e62a62 \
- --hash=sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8 \
- --hash=sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178 \
- --hash=sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0 \
- --hash=sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7 \
- --hash=sha256:b42f4d86b451c2f9d06ffb4f8bbc776e04df3ba070b9fe2657804b1b40277c48 \
- --hash=sha256:b738f7e648735714bbb82bdfd030203360cfeab7f6e8a34772b3c8c8b820568c \
- --hash=sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9 \
- --hash=sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7 \
- --hash=sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048 \
- --hash=sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c \
- --hash=sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4 \
- --hash=sha256:bc532422ff26b304cfb62b328826bd995c96154ffd2bac4544f37dbb95ecaa8f \
- --hash=sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b \
- --hash=sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0 \
- --hash=sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564 \
- --hash=sha256:c54d83a2188a10ebdba573f16bd97135d06c9ef60c3dc495315c7a28c80a263f \
- --hash=sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee \
- --hash=sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5 \
- --hash=sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62 \
- --hash=sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272 \
- --hash=sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9 \
- --hash=sha256:d4aec24d6b72ee457ec665344a29acb2d35937d5192faebe429ea02633151aad \
- --hash=sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321 \
- --hash=sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a \
- --hash=sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312 \
- --hash=sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0 \
- --hash=sha256:daf42de090d59db025af61ce6bdb2521f0f102ea0e6ea310f13c17610a97da4c \
- --hash=sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37 \
- --hash=sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964 \
- --hash=sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484 \
- --hash=sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e \
- --hash=sha256:e237b807d68a61fc3b1e845407e27e5eb8ef69bc93fe8505337c1acb4ee300b6 \
- --hash=sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078 \
- --hash=sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6 \
- --hash=sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388 \
- --hash=sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924 \
- --hash=sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2 \
- --hash=sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df \
- --hash=sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd \
- --hash=sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1 \
- --hash=sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c \
- --hash=sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31 \
- --hash=sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed \
- --hash=sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2 \
- --hash=sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092 \
- --hash=sha256:fe659f6b5d10fb5a17f00a50eb903eb277a71ee35df4615db573c069bcf967ac
+lxml==6.1.0 \
+ --hash=sha256:00750d63ef0031a05331b9223463b1c7c02b9004cef2346a5b2877f0f9494dd2 \
+ --hash=sha256:022981127642fe19866d2907d76241bb07ed21749601f727d5d5dd1ce5d1b773 \
+ --hash=sha256:045e387d1f4f42a418380930fa3f45c73c9b392faf67e495e58902e68e8f44a7 \
+ --hash=sha256:05b9b8787e35bec69e68daf4952b2e6dfcfb0db7ecf1a06f8cdfbbac4eb71aad \
+ --hash=sha256:07f98f5496f96bf724b1e3c933c107f0cbf2745db18c03d2e13a291c3afd2635 \
+ --hash=sha256:08950a23f296b3f83521577274e3d3b0f3d739bf2e68d01a752e4288bc50d286 \
+ --hash=sha256:0d082495c5fcf426e425a6e28daaba1fcb6d8f854a4ff01effb1f1f381203eb9 \
+ --hash=sha256:0f0f08beb0182e3e9a86fae124b3c47a7b41b7b69b225e1377db983802404e54 \
+ --hash=sha256:1081dd10bc6fa437db2500e13993abf7cc30716d0a2f40e65abb935f02ec559c \
+ --hash=sha256:11a873c77a181b4fef9c2e357d08ed399542c2af1390101da66720a19c7c9618 \
+ --hash=sha256:183bfb45a493081943be7ea2b5adfc2b611e1cf377cefa8b8a8be404f45ef9a7 \
+ --hash=sha256:19f4164243fc206d12ed3d866e80e74f5bc3627966520da1a5f97e42c32a3f39 \
+ --hash=sha256:1ae225f66e5938f4fa29d37e009a3bb3b13032ac57eb4eb42afa44f6e4054e69 \
+ --hash=sha256:1bc4cc83fb7f66ffb16f74d6dd0162e144333fc36ebcce32246f80c8735b2551 \
+ --hash=sha256:1dd6a1c3ad4cb674f44525d9957f3e9c209bb6dd9213245195167a281fcc2bdc \
+ --hash=sha256:20cf4d0651987c906a2f5cba4e3a8d6ba4bfdf973cfe2a96c0d6053888ea2ecd \
+ --hash=sha256:2173a7bffe97667bbf0767f8a99e587740a8c56fdf3befac4b09cb29a80276fd \
+ --hash=sha256:21c3302068f50d1e8728c67c87ba92aa87043abee517aa2576cca1855326b405 \
+ --hash=sha256:23a5dc68e08ed13331d61815c08f260f46b4a60fdd1640bbeb82cf89a9d90289 \
+ --hash=sha256:23cad0cc86046d4222f7f418910e46b89971c5a45d3c8abfad0f64b7b05e4a9b \
+ --hash=sha256:2593a0a6621545b9095b71ad74ed4226eba438a7d9fc3712a99bdb15508cf93a \
+ --hash=sha256:264c605ab9c0e4aa1a679636f4582c4d3313700009fac3ec9c3412ed0d8f3e1d \
+ --hash=sha256:26c5272c6a4bf4cf32d3f5a7890c942b0e04438691157d341616d02cca74d4bd \
+ --hash=sha256:26dd9f57ee3bd41e7d35b4c98a2ffd89ed11591649f421f0ec19f67d50ec67ac \
+ --hash=sha256:28902146ffbe5222df411c5d19e5352490122e14447e98cd118907ee3fd6ee62 \
+ --hash=sha256:29f5c00cb7d752bce2c70ebd2d31b0a42f9499ffdd3ecb2f31a5b73ee43031ad \
+ --hash=sha256:30e7b2ed63b6c8e97cca8af048589a788ab5c9c905f36d9cf1c2bb549f450d2f \
+ --hash=sha256:32662519149fd7a9db354175aa5e417d83485a8039b8aaa62f873ceee7ea4cad \
+ --hash=sha256:363e47283bde87051b821826e71dde47f107e08614e1aa312ba0c5711e77738c \
+ --hash=sha256:3648f20d25102a22b6061c688beb3a805099ea4beb0a01ce62975d926944d292 \
+ --hash=sha256:37448bf9c7d7adfc5254763901e2bbd6bb876228dfc1fc7f66e58c06368a7544 \
+ --hash=sha256:37fabd1452852636cf38ecdcc9dd5ca4bba7a35d6c53fa09725deeb894a87491 \
+ --hash=sha256:398443df51c538bd578529aa7e5f7afc6c292644174b47961f3bf87fe5741120 \
+ --hash=sha256:3ae5d8d5427f3cc317e7950f2da7ad276df0cfa37b8de2f5658959e618ea8512 \
+ --hash=sha256:3f00972f84450204cd5d93a5395965e348956aaceaadec693a22ec743f8ae3eb \
+ --hash=sha256:40d9189f80075f2e1f88db21ef815a2b17b28adf8e50aaf5c789bfe737027f32 \
+ --hash=sha256:419c58fc92cc3a2c3fa5f78c63dbf5da70c1fa9c1b25f25727ecee89a96c7de2 \
+ --hash=sha256:41dcc4c7b10484257cbd6c37b83ddb26df2b0e5aff5ac00d095689015af868ec \
+ --hash=sha256:43e4d297f11080ec9d64a4b1ad7ac02b4484c9f0e2179d9c4ef78e886e747b88 \
+ --hash=sha256:45e9dfbd1b661eb64ba0d4dbe762bd210c42d86dd1e5bd2bdf89d634231beb43 \
+ --hash=sha256:4642e04449a1e164b5ff71ffd901ddb772dfabf5c9adf1b7be5dffe1212bc037 \
+ --hash=sha256:468479e52ecf3ec23799c863336d02c05fc2f7ffd1a1424eeeb9a28d4eb69d13 \
+ --hash=sha256:47024feaae386a92a146af0d2aeed65229bf6fff738e6a11dda6b0015fb8fd03 \
+ --hash=sha256:481d6e2104285d9add34f41b42b247b76b61c5b5c26c303c2e9707bbf8bd9a64 \
+ --hash=sha256:4937460dc5df0cdd2f06a86c285c28afda06aefa3af949f9477d3e8df430c485 \
+ --hash=sha256:4a1503c56e4e2b38dc76f2f2da7bae69670c0f1933e27cfa34b2fa5876410b16 \
+ --hash=sha256:4b89b098105b8599dc57adac95d1813409ac476d3c948a498775d3d0c6124bfb \
+ --hash=sha256:4bd1bdb8a9e0e2dd229de19b5f8aebac80e916921b4b2c6ef8a52bc131d0c1f9 \
+ --hash=sha256:4e2c54d6b47361d0f1d3bc8d4e082ad87201e56ccdcca4d3b9ee3644ff595ec8 \
+ --hash=sha256:52b0ac6903cf74ebf997eb8c682d2fbac7d1ab7e4c552413eec55868a9b73f39 \
+ --hash=sha256:546b66c0dd1bb8d9fa89d7123e5fa19a8aff3a1f2141eb22df96112afb17b842 \
+ --hash=sha256:56971379bc5ee8037c5a0f09fa88f66cdb7d37c3e38af3e45cf539f41131ac1f \
+ --hash=sha256:5715e0e28736a070f3f34a7ccc09e2fdcba0e3060abbcf61a1a5718ff6d6b105 \
+ --hash=sha256:5cfa1a34df366d9dc0d5eaf420f4cf2bb1e1bebe1066d1c2fc28c179f8a4004c \
+ --hash=sha256:5d27bbe326c6b539c64b42638b18bc6003a8d88f76213a97ac9ed4f885efeab7 \
+ --hash=sha256:6262b87f9e5c1e5fe501d6c153247289af42eb44ad7660b9b3de17baaf92d6f6 \
+ --hash=sha256:63aeafc26aac0be8aff14af7871249e87ea1319be92090bfd632ec68e03b16a5 \
+ --hash=sha256:690022c7fae793b0489aa68a658822cea83e0d5933781811cabbf5ea3bcfe73d \
+ --hash=sha256:6fd8b1df8254ff4fd93fd31da1fc15770bde23ac045be9bb1f87425702f61cc9 \
+ --hash=sha256:73becf6d8c81d4c76b1014dbd3584cb26d904492dcf73ca85dc8bff08dcd6d2d \
+ --hash=sha256:73d658216fc173cf2c939e90e07b941c5e12736b0bf6a99e7af95459cfe8eabb \
+ --hash=sha256:75c4c7c619a744f972f4451bf5adf6d0fb00992a1ffc9fd78e13b0bc817cc99f \
+ --hash=sha256:76b958b4ea3104483c20f74866d55aa056546e15ebe83dd7aecd63698f43b755 \
+ --hash=sha256:77b9f99b17cbf14026d1e618035077060fc7195dd940d025149f3e2e830fbfcb \
+ --hash=sha256:7ba11752e346bd804ea312ec2eea2532dfa8b8d3261d81a32ef9e6ab16256280 \
+ --hash=sha256:7da13bb6fbadfafb474e0226a30570a3445cfd47c86296f2446dafbd77079ace \
+ --hash=sha256:7e39ab3a28af7784e206d8606ec0e4bcad0190f63a492bca95e94e5a4aef7f6e \
+ --hash=sha256:7f4a77d6f7edf9230cee3e1f7f6764722a41604ee5681844f18db9a81ea0ec33 \
+ --hash=sha256:80410c3a7e3c617af04de17caa9f9f20adaa817093293d69eae7d7d0522836f5 \
+ --hash=sha256:81ff55c70b67d19d52b6fd118a114c0a4c97d799cd3089ff9bd9e2ff4b414ee2 \
+ --hash=sha256:857efde87d365706590847b916baff69c0bc9252dc5af030e378c9800c0b10e3 \
+ --hash=sha256:89e8d73d09ac696a5ba42ec69787913d53284f12092f651506779314f10ba585 \
+ --hash=sha256:8c11b984b5ce6add4dccc7144c7be5d364d298f15b0c6a57da1991baedc750ce \
+ --hash=sha256:8c8984e1d8c4b3949e419158fda14d921ff703a9ed8a47236c6eb7a2b6cb4946 \
+ --hash=sha256:8e369cbd690e788c8d15e56222d91a09c6a417f49cbc543040cba0fe2e25a79e \
+ --hash=sha256:9147d8e386ec3b82c3b15d88927f734f565b0aaadef7def562b853adca45784a \
+ --hash=sha256:920354904d1cb86577d4b3cfe2830c2dbe81d6f4449e57ada428f1609b5985f7 \
+ --hash=sha256:942454ff253da14218f972b23dc72fa4edf6c943f37edd19cd697618b626fac5 \
+ --hash=sha256:972a6451204798675407beaad97b868d0c733d9a74dafefc63120b81b8c2de28 \
+ --hash=sha256:976a6b39b1b13e8c354ad8d3f261f3a4ac6609518af91bdb5094760a08f132c4 \
+ --hash=sha256:97faa0860e13b05b15a51fb4986421ef7a30f0b3334061c416e0981e9450ca4c \
+ --hash=sha256:9c03e048b6ce8e77b09c734e931584894ecd58d08296804ca2d0b184c933ce50 \
+ --hash=sha256:9e7b0a4ca6dcc007a4cef00a761bba2dea959de4bd2df98f926b33c92ca5dfb9 \
+ --hash=sha256:9eb667bf50856c4a58145f8ca2d5e5be160191e79eb9e30855a476191b3c3495 \
+ --hash=sha256:9f93d5b8b07f73e8c77e3c6556a3db269918390c804b5e5fcdd4858232cc8f16 \
+ --hash=sha256:a0092f2b107b69601adf562a57c956fbb596e05e3e6651cabd3054113b007e45 \
+ --hash=sha256:a02ca8fe48815bddcfca3248efe54451abb9dbf2f7d1c5744c8aa4142d476919 \
+ --hash=sha256:a1d9b99e5b2597e4f5aed2484fef835256fa1b68a19e4265c97628ef4bf8bcf4 \
+ --hash=sha256:a2853c8b2170cc6cd54a6b4d50d2c1a8a7aeca201f23804b4898525c7a152cfc \
+ --hash=sha256:a31286dbb5e74c8e9a5344465b77ab4c5bd511a253b355b5ca2fae7e579fafec \
+ --hash=sha256:a86f06f059e22a0d574990ee2df24ede03f7f3c68c1336293eee9536c4c776cd \
+ --hash=sha256:ab863fd37458fed6456525f297d21239d987800c46e67da5ef04fc6b3dd93ac8 \
+ --hash=sha256:ac4db068889f8772a4a698c5980ec302771bb545e10c4b095d4c8be26749616f \
+ --hash=sha256:b6c2f225662bc5ad416bdd06f72ca301b31b39ce4261f0e0097017fc2891b940 \
+ --hash=sha256:bb40648d96157f9081886defe13eac99253e663be969ff938a9289eff6e47b72 \
+ --hash=sha256:bba078de0031c219e5dd06cf3e6bf8fb8e6e64a77819b358f53bb132e3e03366 \
+ --hash=sha256:bc783ee3147e60a25aa0445ea82b3e8aabb83b240f2b95d32cb75587ff781814 \
+ --hash=sha256:be10838781cb3be19251e276910cd508fe127e27c3242e50521521a0f3781690 \
+ --hash=sha256:bfd57d8008c4965709a919c3e9a98f76c2c7cb319086b3d26858250620023b13 \
+ --hash=sha256:c08da09dc003c9e8c70e06b53a11db6fb3b250c21c4236b03c7d7b443c318e7a \
+ --hash=sha256:c3592631e652afa34999a088f98ba7dfc7d6aff0d535c410bea77a71743f3819 \
+ --hash=sha256:c4a699432846df86cc3de502ee85f445ebad748a1c6021d445f3e514d2cd4b1c \
+ --hash=sha256:c4e425db0c5445ef0ad56b0eec54f89b88b2d884656e536a90b2f52aecb4ca86 \
+ --hash=sha256:c53fa3a5a52122d590e847a57ccf955557b9634a7f99ff5a35131321b0a85317 \
+ --hash=sha256:c6854e9cf99c84beb004eecd7d3a3868ef1109bf2b1df92d7bc11e96a36c2180 \
+ --hash=sha256:c748ebcb6877de89f48ab90ca96642ac458fff5dec291a2b9337cd4d0934e383 \
+ --hash=sha256:c871299c595ee004d186f61840f0bfc4941aa3f17c8ba4a565ead7e4f4f820ee \
+ --hash=sha256:cbd7b79cdcb4986ad78a2662625882747f09db5e4cd7b2ae178a88c9c51b3dfe \
+ --hash=sha256:cc16682cc987a3da00aa56a3aa3075b08edb10d9b1e476938cfdbee8f3b67181 \
+ --hash=sha256:cec05be8c876f92a5aa07b01d60bbb4d11cfbdd654cad0561c0d7b5c043a61b9 \
+ --hash=sha256:d036ee7b99d5148072ac7c9b847193decdfeac633db350363f7bce4fff108f0e \
+ --hash=sha256:d0d799ff958655781296ec870d5e2448e75150da2b3d07f13ff5b0c2c35beefd \
+ --hash=sha256:d1392c569c032f78a11a25d1de1c43fff13294c793b39e19d84fade3045cbbc3 \
+ --hash=sha256:d2f17a16cd8751e8eb233a7e41aecdf8e511712e00088bf9be455f604cd0d28d \
+ --hash=sha256:d3829a6e6fd550a219564912d4002c537f65da4c6ae4e093cc34462f4fa027ad \
+ --hash=sha256:d43aa26dcda363f21e79afa0668f5029ed7394b3bb8c92a6927a3d34e8b610ea \
+ --hash=sha256:d6d8efe71429635f0559579092bb5e60560d7b9115ee38c4adbea35632e7fa24 \
+ --hash=sha256:dabecc48db5f42ba348d1f5d5afdc54c6c4cc758e676926c7cd327045749517d \
+ --hash=sha256:db88156fcf544cdbf0d95588051515cfdfd4c876fc66444eb98bceb5d6db76de \
+ --hash=sha256:de550d129f18d8ab819651ffe4f38b1b713c7e116707de3c0c6400d0ef34fbc1 \
+ --hash=sha256:e0af85773850417d994d019741239b901b22c6680206f46a34766926e466141d \
+ --hash=sha256:e3c4f84b24a1fcba435157d111c4b755099c6ff00a3daee1ad281817de75ed11 \
+ --hash=sha256:e3dd5fe19c9e0ac818a9c7f132a5e43c1339ec1cbbfecb1a938bd3a47875b7c9 \
+ --hash=sha256:e69aa6805905807186eb00e66c6d97a935c928275182eb02ee40ba00da9623b2 \
+ --hash=sha256:e80807d72f96b96ad5588cb85c75616e4f2795a7737d4630784c51497beb7776 \
+ --hash=sha256:ebe33f4ec1b2de38ceb225a1749a2965855bffeef435ba93cd2d5d540783bf2f \
+ --hash=sha256:f0cea5b1d3e6e77d71bd2b9972eb2446221a69dc52bb0b9c3c6f6e5700592d93 \
+ --hash=sha256:f15401d8d3dbf239e23c818afc10c7207f7b95f9a307e092122b6f86dd43209a \
+ --hash=sha256:f504d861d9f2a8f94020130adac88d66de93841707a23a86244263d1e54682f5 \
+ --hash=sha256:fc46da94826188ed45cb53bd8e3fc076ae22675aea2087843d4735627f867c6d \
+ --hash=sha256:fc7140d7a7386e6b545d41b7358f4d02b656d4053f5fa6859f92f4b9c2572c4d \
+ --hash=sha256:fcf3da95e93349e0647d48d4b36a12783105bcc74cb0c416952f9988410846a3 \
+ --hash=sha256:fe022f20bc4569ec66b63b3fb275a3d628d9d32da6326b2982584104db6d3086 \
+ --hash=sha256:ffb34ea45a82dd637c2c97ae1bbb920850c1e59bcae79ce1c15af531d83e7215
# via
# -c src/backend/requirements.txt
# python3-saml
@@ -1473,9 +1467,9 @@ opentelemetry-util-http==0.61b0 \
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
-packaging==26.0 \
- --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \
- --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+packaging==26.1 \
+ --hash=sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f \
+ --hash=sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de
# via
# -c src/backend/requirements.txt
# bleach
@@ -1605,9 +1599,9 @@ pip-licenses==5.5.5 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-platformdirs==4.9.4 \
- --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
- --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
+platformdirs==4.9.6 \
+ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
+ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
# via
# -c src/backend/requirements.txt
# pint
@@ -1717,9 +1711,9 @@ pynacl==1.6.2 \
# via
# -c src/backend/requirements.txt
# paramiko
-pypdf==6.10.0 \
- --hash=sha256:4c5a48ba258c37024ec2505f7e8fd858525f5502784a2e1c8d415604af29f6ef \
- --hash=sha256:90005e959e1596c6e6c84c8b0ad383285b3e17011751cedd17f2ce8fcdfc86de
+pypdf==6.10.2 \
+ --hash=sha256:7d09ce108eff6bf67465d461b6ef352dcb8d84f7a91befc02f904455c6eea11d \
+ --hash=sha256:aa53be9826655b51c96741e5d7983ca224d898ac0a77896e64636810517624aa
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -1749,9 +1743,9 @@ python-dotenv==1.2.2 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-python-fsutil==0.16.0 \
- --hash=sha256:a60e16bad77e3f00c3dca95433209c823bc45e0ae4158e52969002f3c7957a18 \
- --hash=sha256:dc957a3541215baa935f66f6f15ceb9a8b7f803919c3d99fa57c818fc545f288
+python-fsutil==0.16.1 \
+ --hash=sha256:4cc78b9a1e64011cb4fdaeba531e457e649a6a9a560424e841426e47f3a153ad \
+ --hash=sha256:bda20802a19f6dc1bd221f6d2a79e0cd2b2c6eaf2b7c353a385c749917047442
# via
# -c src/backend/requirements.txt
# django-maintenance-mode
@@ -1860,90 +1854,90 @@ qrcode[pil]==8.2 \
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
# django-allauth
-rapidfuzz==3.14.3 \
- --hash=sha256:010e12e2411a4854b0434f920e72b717c43f8ec48d57e7affe5c42ecfa05dd0e \
- --hash=sha256:02821366d928e68ddcb567fed8723dad7ea3a979fada6283e6914d5858674850 \
- --hash=sha256:07aa0b5d8863e3151e05026a28e0d924accf0a7a3b605da978f0359bb804df43 \
- --hash=sha256:0e38828d1381a0cceb8a4831212b2f673d46f5129a1897b0451c883eaf4a1747 \
- --hash=sha256:152555187360978119e98ce3e8263d70dd0c40c7541193fc302e9b7125cf8f58 \
- --hash=sha256:1704fc70d214294e554a2421b473779bcdeef715881c5e927dc0f11e1692a0ff \
- --hash=sha256:1b7ef2f4b8583a744338a18f12c69693c194fb6777c0e9ada98cd4d9e8f09d10 \
- --hash=sha256:1b86daa7419b5e8b180690efd1fdbac43ff19230803282521c5b5a9c83977655 \
- --hash=sha256:1d83b8b712fa37e06d59f29a4b49e2e9e8635e908fbc21552fe4d1163db9d2a1 \
- --hash=sha256:1e6eefec45625c634926a9fd46c9e4f31118ac8f3156fff9494422cee45207e6 \
- --hash=sha256:1ec0c8c0c3d4f97ced46b2e191e883f8c82dbbf6d5ebc1842366d7eff13cd5a6 \
- --hash=sha256:1f1925619627f8798f8c3a391d81071336942e5fe8467bc3c567f982e7ce2897 \
- --hash=sha256:1faa0f8f76ba75fd7b142c984947c280ef6558b5067af2ae9b8729b0a0f99ede \
- --hash=sha256:2491937177868bc4b1e469087601d53f925e8d270ccc21e07404b4b5814b7b5f \
- --hash=sha256:2dc37bc20272f388b8c3a4eba4febc6e77e50a8f450c472def4751e7678f55e4 \
- --hash=sha256:32eeafa3abce138bb725550c0e228fc7eaeec7059aa8093d9cbbec2b58c2371a \
- --hash=sha256:33a325ed0e8e1aa20c3e75f8ab057a7b248fdea7843c2a19ade0008906c14af0 \
- --hash=sha256:33da4bbaf44e9755b0ce192597f3bde7372fe2e381ab305f41b707a95ac57aa7 \
- --hash=sha256:37d3c653af15cd88592633e942f5407cb4c64184efab163c40fcebad05f25141 \
- --hash=sha256:3fecce764cf5a991ee2195a844196da840aba72029b2612f95ac68a8b74946bf \
- --hash=sha256:43d0305c36f504232f18ea04e55f2059bb89f169d3119c4ea96a0e15b59e2a91 \
- --hash=sha256:43e38c1305cffae8472572a0584d4ffc2f130865586a81038ca3965301f7c97c \
- --hash=sha256:442125473b247227d3f2de807a11da6c08ccf536572d1be943f8e262bae7e4ea \
- --hash=sha256:442cba39957a008dfc5bdef21a9c3f4379e30ffb4e41b8555dbaf4887eca9300 \
- --hash=sha256:489ce98a895c98cad284f0a47960c3e264c724cb4cfd47a1430fa091c0c25204 \
- --hash=sha256:4ad73afb688b36864a8d9b7344a9cf6da186c471e5790cbf541a635ee0f457f2 \
- --hash=sha256:4b39921df948388a863f0e267edf2c36302983459b021ab928d4b801cbe6a421 \
- --hash=sha256:4e49c9e992bc5fc873bd0fff7ef16a4405130ec42f2ce3d2b735ba5d3d4eb70f \
- --hash=sha256:52619d25a09546b8db078981ca88939d72caa6b8701edd8b22e16482a38e799f \
- --hash=sha256:54fa03062124e73086dae66a3451c553c1e20a39c077fd704dc7154092c34c63 \
- --hash=sha256:56fefb4382bb12250f164250240b9dd7772e41c5c8ae976fd598a32292449cc5 \
- --hash=sha256:576e4b9012a67e0bf54fccb69a7b6c94d4e86a9540a62f1a5144977359133583 \
- --hash=sha256:57f878330c8d361b2ce76cebb8e3e1dc827293b6abf404e67d53260d27b5d941 \
- --hash=sha256:5cfc3d57abd83c734d1714ec39c88a34dd69c85474918ebc21296f1e61eb5ca8 \
- --hash=sha256:656e52b054d5b5c2524169240e50cfa080b04b1c613c5f90a2465e84888d6f15 \
- --hash=sha256:685c93ea961d135893b5984a5a9851637d23767feabe414ec974f43babbd8226 \
- --hash=sha256:6a014ba09657abfcfeed64b7d09407acb29af436d7fc075b23a298a7e4a6b41c \
- --hash=sha256:6c5f545f454871e6af05753a0172849c82feaf0f521c5ca62ba09e1b382d6382 \
- --hash=sha256:6de00eb84c71476af7d3110cf25d8fe7c792d7f5fa86764ef0b4ca97e78ca3ed \
- --hash=sha256:73b07566bc7e010e7b5bd490fb04bb312e820970180df6b5655e9e6224c137db \
- --hash=sha256:769f31c60cd79420188fcdb3c823227fc4a6deb35cafec9d14045c7f6743acae \
- --hash=sha256:7ba009977601d8b0828bfac9a110b195b3e4e79b350dcfa48c11269a9f1918a0 \
- --hash=sha256:7ccbf68100c170e9a0581accbe9291850936711548c6688ce3bfb897b8c589ad \
- --hash=sha256:7cf174b52cb3ef5d49e45d0a1133b7e7d0ecf770ed01f97ae9962c5c91d97d23 \
- --hash=sha256:7d9af908c2f371bfb9c985bd134e295038e3031e666e4b2ade1e7cb7f5af2f1a \
- --hash=sha256:834d1e818005ed0d4ae38f6b87b86fad9b0a74085467ece0727d20e15077c094 \
- --hash=sha256:8383b6d0d92f6cd008f3c9216535be215a064b2cc890398a678b56e6d280cb63 \
- --hash=sha256:89acb8cbb52904f763e5ac238083b9fc193bed8d1f03c80568b20e4cef43a519 \
- --hash=sha256:948b00e8476a91f510dd1ec07272efc7d78c275d83b630455559671d4e33b678 \
- --hash=sha256:9ec02e62ae765a318d6de38df609c57fc6dacc65c0ed1fd489036834fd8a620c \
- --hash=sha256:a0a28add871425c2fe94358c6300bbeb0bc2ed828ca003420ac6825408f5a424 \
- --hash=sha256:a2135b138bcdcb4c3742d417f215ac2d8c2b87bde15b0feede231ae95f09ec41 \
- --hash=sha256:adb44d996fc610c7da8c5048775b21db60dd63b1548f078e95858c05c86876a3 \
- --hash=sha256:b5100fd6bcee4d27f28f4e0a1c6b5127bc8ba7c2a9959cad9eab0bf4a7ab3329 \
- --hash=sha256:b9fcd4d751a4fffa17aed1dde41647923c72c74af02459ad1222e3b0022da3a1 \
- --hash=sha256:beda6aa9bc44d1d81242e7b291b446be352d3451f8217fcb068fc2933927d53b \
- --hash=sha256:c5fb2d978a601820d2cfd111e2c221a9a7bfdf84b41a3ccbb96ceef29f2f1ac7 \
- --hash=sha256:c71ce6d4231e5ef2e33caa952bfe671cb9fd42e2afb11952df9fad41d5c821f9 \
- --hash=sha256:c7bd1816db05d6c5ffb3a4df0a2b7b56fb8c81ef584d08e37058afa217da91b1 \
- --hash=sha256:c7e40c0a0af02ad6e57e89f62bef8604f55a04ecae90b0ceeda591bbf5923317 \
- --hash=sha256:cc594bbcd3c62f647dfac66800f307beaee56b22aaba1c005e9c4c40ed733923 \
- --hash=sha256:cc65e72790ddfd310c2c8912b45106e3800fefe160b0c2ef4d6b6fec4e826457 \
- --hash=sha256:cec3c0da88562727dd5a5a364bd9efeb535400ff0bfb1443156dd139a1dd7b50 \
- --hash=sha256:cfe8df315ab4e6db4e1be72c5170f8e66021acde22cd2f9d04d2058a9fd8162e \
- --hash=sha256:d1fa009f8b1100e4880868137e7bf0501422898f7674f2adcd85d5a67f041296 \
- --hash=sha256:d7843a1abf0091773a530636fdd2a49a41bcae22f9910b86b4f903e76ddc82dc \
- --hash=sha256:da2a007434323904719158e50f3076a4dadb176ce43df28ed14610c773cc9825 \
- --hash=sha256:dbcb726064b12f356bf10fffdb6db4b6dce5390b23627c08652b3f6e49aa56ae \
- --hash=sha256:dc8c07801df5206b81ed6bd6c35cb520cf9b6c64b9b0d19d699f8633dc942897 \
- --hash=sha256:dea2d113e260a5da0c4003e0a5e9fdf24a9dc2bb9eaa43abd030a1e46ce7837d \
- --hash=sha256:dea97ac3ca18cd3ba8f3d04b5c1fe4aa60e58e8d9b7793d3bd595fdb04128d7a \
- --hash=sha256:dee362e7e79bae940a5e2b3f6d09c6554db6a4e301cc68343886c08be99844f1 \
- --hash=sha256:e195a77d06c03c98b3fc06b8a28576ba824392ce40de8c708f96ce04849a052e \
- --hash=sha256:e6b5e3036976f0fde888687d91be86d81f9ac5f7b02e218913c38285b756be6c \
- --hash=sha256:e6c31a4aa68cfa75d7eede8b0ed24b9e458447db604c2db53f358be9843d81d3 \
- --hash=sha256:e805e52322ae29aa945baf7168b6c898120fbc16d2b8f940b658a5e9e3999253 \
- --hash=sha256:ea188aa00e9bcae8c8411f006a5f2f06c4607a02f24eab0d8dc58566aa911f35 \
- --hash=sha256:ecd7453e02cf072258c3a6b8e930230d789d5d46cc849503729f9ce475d0e785 \
- --hash=sha256:ef6bf930b947bd0735c550683939a032090f1d688dfd8861d6b45307b96fd5c5 \
- --hash=sha256:f3d15d8527e2b293e38ce6e437631af0708df29eafd7c9fc48210854c94472f9 \
- --hash=sha256:f3eb0ff3b75d6fdccd40b55e7414bb859a1cda77c52762c9c82b85569f5088e7 \
- --hash=sha256:fa7c8f26f009f8c673fbfb443792f0cf8cf50c4e18121ff1e285b5e08a94fbdb \
- --hash=sha256:fce3152f94afcfd12f3dd8cf51e48fa606e3cb56719bccebe3b401f43d0714f9
+rapidfuzz==3.14.5 \
+ --hash=sha256:0084b687b02b4e569b46d8d6d4ad25659528e6081cd6d067ca453a69035f07e4 \
+ --hash=sha256:01550fe5f60fd176aa66b7611289d46dc4aa4b1b904874c7b6d1d54e581c5ec1 \
+ --hash=sha256:0298d357e2bc59d572da4db0bc631009b6f8f6c9bc8c11e99a12b833f16b6575 \
+ --hash=sha256:068b3e965ca9d9ee4debe40001ae7c3938ba646308afd33cf0c66618147db65c \
+ --hash=sha256:071d96b957a33b9296b9284b6350a0fb6d030b154a04efd7c15e56b98b79a517 \
+ --hash=sha256:09d6c9ba091854f07817055d795d604179c12a8f308ba4c7d56f3719dfea1646 \
+ --hash=sha256:0d3378f471ef440473a396ce2f8e97ee12f89a78b495540e0a5617bbfe895638 \
+ --hash=sha256:0ebd1a18e2e47bc0b292a07e6ed9c3642f8aaa672d12253885f599b50807a4f9 \
+ --hash=sha256:0f23e37019ec07712d58976b1ab2b889f8649a7f7c2f626a2f34ea9139e79279 \
+ --hash=sha256:11bfc2ed8fbe4ab86bd516fadefab126f90e6dcadffa761739fcb304707dfd35 \
+ --hash=sha256:13cb79c23ef5516e4c4e3830877be8b19aa75203636be1163d690d37803f6504 \
+ --hash=sha256:17a34330cd2a538c1ce5d400b61ba358c5b72c654b928ff87b362e88f8b864c7 \
+ --hash=sha256:1a31cc6d7d03e7318a0974c038959c59e19c752b81115f2e9138b3331cd64d45 \
+ --hash=sha256:1e910eebca9fd0eba245c0555e764597e8a0cccb673a92da2dc2397050725f48 \
+ --hash=sha256:1e989f86113be66574113b9c7bdf4793f3f863d248e47d911b355e05ca6b6b10 \
+ --hash=sha256:2e83cd2e25bb4edd97b689d9979d9c3acccdaaf26ceac08212ceece202febcfa \
+ --hash=sha256:39ef8658aaf67d51667e7bdaf7096f432333377d8302ac43c70b5df8a4cf89b8 \
+ --hash=sha256:3d50e5861872935fece391351cbb5ba21d1bced277cf5e1143d207a0a35f1925 \
+ --hash=sha256:3e91dcd2549b8f8d843f98ba03a17e01f3d8b72ce942adbbb6761bc58ffce813 \
+ --hash=sha256:419e4397a36e2665ec992d8d64c20ba4b2a42500c76ecadeca78a4f19cb9cc32 \
+ --hash=sha256:440d30faaf682ca496170a7f0cc5453ec942e3e079f0fd802c9a7f938dfb50a3 \
+ --hash=sha256:46b92a9970dcc34f0096901c792644094cab49554ac3547f35e3aebbdf0a3610 \
+ --hash=sha256:478b59bb018a6780d73f33e38d0b3ec5e968a6c1ed42876b993dd456b7aa20e8 \
+ --hash=sha256:48bee0b91bebfaec41e1081e351000659ab7570cc4598d617aa04d5bf827f9e6 \
+ --hash=sha256:4900143d82071bdda533b00300c40b14b963ff826b3642cc463b6dd0f036585e \
+ --hash=sha256:4a60f0057231188e3bd30216f7b4e0f279b11fa4ec818bb6c1d9f014d1562fbc \
+ --hash=sha256:56227a61fd3d17b0cd9793132431f3a3d07c8654be96794ba9f89fe0fc8b2d09 \
+ --hash=sha256:578e6051f6d5e6200c259b47a103cf06bb875ab5814d17333fc0b5c290b22f4c \
+ --hash=sha256:593c00dac4e30231c35bf3b4f1da8ec0998762e9e94425586a5d636fcd57f9d0 \
+ --hash=sha256:59b3dba758661a318995655435c6ab20a04ade79fa51e75bc8dc107cac8df280 \
+ --hash=sha256:5ab449c9abd0d4e1f8145dce0798a4c822a1a1933d613c764a641bea88b8bdab \
+ --hash=sha256:5dfa89d78f22cd773054caff44827b846161a29f2dcf7e78b8f90d086621e502 \
+ --hash=sha256:649712823f3abcdc48427147a5384fac15623ba435d0013959b52e6462521397 \
+ --hash=sha256:667f40fe9c81ad129b198d236881b00dd9e8314d9cc72d03c3e16bdfe5879051 \
+ --hash=sha256:6737b35d5af7479c5bf9710f7b17edd9d2c43128d974d25fb4ea653e42c64609 \
+ --hash=sha256:67f3f9d2b444268ab53e47d31bab89954888d23c04c6789f2c727e51fe4b1d13 \
+ --hash=sha256:7092a216728f80c960bd6b3807275d1ee318b168986bd5dc523349581d4890b8 \
+ --hash=sha256:738c96944d076deeaff70e92b65696ab4f7ecb8081d7791c5403a3257dfaf8ff \
+ --hash=sha256:77eac0526899b3c3ad1454bb2b03cdb491d67358ec8ef0c9c48bd61b632b431d \
+ --hash=sha256:7d5ca9c7832e6879a707296d1463685f7c243a27846227044504741640caec66 \
+ --hash=sha256:7e580cb04ad849ae9b786fa21383c6b994b6e6c1444ad1cb9f22392759d72741 \
+ --hash=sha256:8166efddea49fdbc61185559f47593239e4794fd7c9044dd5a789d1a90af852d \
+ --hash=sha256:823b1b9d9230809d8edcc18872770764bfe8ef4357995e16744047c8ccf0e489 \
+ --hash=sha256:88b7d31ff1cc5e9bc0e4406e6b1fa00b6d37163d50bb58091e9b976ff1129faa \
+ --hash=sha256:8c90cdf8516d9057e502aa6003cea71cf5ec27cc44699ca52412b502a04761bb \
+ --hash=sha256:8ce1d850b3c0178440efde9e884d98421b5e87ff925f364d6d79e23910d7593f \
+ --hash=sha256:8f4a8f5cc84c7ad6bffa0e9947b33eb343ad66e6b53e94fe54378a5508c5ed53 \
+ --hash=sha256:93d8da883a35116d6813432177f35e570db5b0a5e30ecb0cbd7cb39c815735df \
+ --hash=sha256:95d937e74c1a7a1287dfb03b62a827be08ede10a155cf1af73bbf47f2b73ee6e \
+ --hash=sha256:9669753caef7fdc6529f6adcc5883ed98d65976445d9322e7dbdb6b697feee13 \
+ --hash=sha256:97131ab2be39043054ee28d99e09efe316e6d53449b7e962dfcf3c2de8b2b246 \
+ --hash=sha256:97c6d85283629646fa87acc22c66b30ea9d4de7f6fdf887daa2e30fa041829b5 \
+ --hash=sha256:9981d38a703b86f0e315a3cd229fd1906fe1d91c989ed121fb975b3c849f89f5 \
+ --hash=sha256:9ad37a0be705b544af6296da8edddc260d10a8ae5462530fc9991f66498bb1f9 \
+ --hash=sha256:a2ae6f53f99c9a0eca7a0afc5b4e45fc73bc1dd4ac74c00509031d76df80ed98 \
+ --hash=sha256:aac0ad28c686a5e72b81668b906c030ee28050b244544b8af68e12fb32543895 \
+ --hash=sha256:af3b859726cd3374287e405e14b9634563c078c5531a4f62375508addebddad1 \
+ --hash=sha256:af6a90a4ed2a48fa1a2d17e9d824e6c7c950bea5bad0b707c77fd55751e6bfef \
+ --hash=sha256:b002c7994cc9f2bc9d9856f0fbaee6e8072c983873846c92f25cefba5b2a925f \
+ --hash=sha256:b486b5218808f6f4dc471b114b1054e63553db69705c97da0271f47bd706aedd \
+ --hash=sha256:b9c6bd754d11f6e78ac54e3d86b4b11dc1ba2f13e5fc958899574532897f5a99 \
+ --hash=sha256:ba10ac57884ce82112f7ed910b67e7fb6072d8ef2c06e30dc63c0f604a112e0e \
+ --hash=sha256:bf5018938208d4597b2e679a4f8cff9fd252f1df53583130ae56281a21801b64 \
+ --hash=sha256:c0919d1f89ddf91129906705723118ea09754171e4116f5a5dbc667c7bc9b261 \
+ --hash=sha256:c5801a89604c65ab4cc9e91b23bc4076d0ca80efd8c976fb63843d7879a85d7f \
+ --hash=sha256:c84af70bcf34e99aee894e46a0f1ac77f17d0ef828179c387407642e2466d28a \
+ --hash=sha256:cb2829fedd672dd7107267189dabe2bbe07972801d636014417c6861eb89e358 \
+ --hash=sha256:d45e06f60729e07d9b20c205f7e5cff90b6ef2584e852eecf46e045aea69627d \
+ --hash=sha256:d7ca16637c0ede8243f84074044bd0b2335a0341421f8227c85756de2d18c819 \
+ --hash=sha256:d8375e3da319593389727c3187ccaf3e0e84199accc530866b8e0f2b79af05e9 \
+ --hash=sha256:dfa552338f51aec280f17b02d28bace1e162d1a84ccd80e3339a57f98aedb56b \
+ --hash=sha256:dfef96543ced67d9513a422755db422ae1dc34dade0a1485e0b43e7342ed3ebf \
+ --hash=sha256:e012177c8e8a8a0754ae0d6027d63042aa5ff036d9f40f07cb3466a6082e21b8 \
+ --hash=sha256:e251126d48615e1f02b4a178f2cd0cd4f0332b8a019c01a2e10480f7552554b4 \
+ --hash=sha256:e52da10236aa6212de71b9e170bace65b64b129c0dea7fc243d6c9ce976f5074 \
+ --hash=sha256:eacb434410b8d9ca99a8d42352ef085cf423e3c76c1f0b86be2fcba3bff2952c \
+ --hash=sha256:ebd8fd343bf8492a1e60bcb6dc99f90f74f65d98d8241a6b3e1fed225b76ecd6 \
+ --hash=sha256:f0b2af76b7e7060c09e1a0dfa9410eb19369cbe6164509bff2ef94094b54d2b6 \
+ --hash=sha256:f2073495a7f9b75e57e600747ac09510d67683fd64d3228e009740b7ef88f9fe \
+ --hash=sha256:f4c1bca487a17fe4226b4ffb2d30e799d2b274d692cffa76bd0746f56235fca3 \
+ --hash=sha256:f9fff308486bbd2c8c24f25e8e152c7594d3fe8db265a2d6a1ce24d58671127f \
+ --hash=sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d \
+ --hash=sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -2095,9 +2089,9 @@ s3transfer==0.16.0 \
# via
# -c src/backend/requirements.txt
# boto3
-sentry-sdk==2.57.0 \
- --hash=sha256:4be8d1e71c32fb27f79c577a337ac8912137bba4bcbc64a4ec1da4d6d8dc5199 \
- --hash=sha256:812c8bf5ff3d2f0e89c82f5ce80ab3a6423e102729c4706af7413fd1eb480585
+sentry-sdk==2.58.0 \
+ --hash=sha256:688d1c704ddecf382ea3326f21a67453d4caa95592d722b7c780a36a9d23109e \
+ --hash=sha256:c1144d947352d54e5b7daa63596d9f848adf684989c06c4f5a659f0c85a18f6f
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -2377,9 +2371,9 @@ xmlsec==1.3.17 \
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
# python3-saml
-zipp==3.23.0 \
- --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \
- --hash=sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166
+zipp==3.23.1 \
+ --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \
+ --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110
# via
# -c src/backend/requirements.txt
# importlib-metadata
diff --git a/src/backend/requirements-dev-3.14.txt b/src/backend/requirements-dev-3.14.txt
index b2de8b148b..c79f0453cf 100644
--- a/src/backend/requirements-dev-3.14.txt
+++ b/src/backend/requirements-dev-3.14.txt
@@ -7,9 +7,9 @@ asgiref==3.11.1 \
# -c src/backend/requirements-3.14.txt
# -c src/backend/requirements.txt
# django
-build==1.4.2 \
- --hash=sha256:35b14e1ee329c186d3f08466003521ed7685ec15ecffc07e68d706090bf161d1 \
- --hash=sha256:7a4d8651ea877cb2a89458b1b198f2e69f536c95e89129dbf5d448045d60db88
+build==1.4.3 \
+ --hash=sha256:1bc22b19b383303de8f2c8554c9a32894a58d3f185fe3756b0b20d255bee9a38 \
+ --hash=sha256:5aa4231ae0e807efdf1fd0623e07366eca2ab215921345a2e38acdd5d0fa0a74
# via pip-tools
certifi==2026.2.25 \
--hash=sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa \
@@ -247,9 +247,9 @@ charset-normalizer==3.4.7 \
# -c src/backend/requirements.txt
# pdfminer-six
# requests
-click==8.3.1 \
- --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \
- --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
+click==8.3.2 \
+ --hash=sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5 \
+ --hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
# via pip-tools
coverage[toml]==7.13.5 \
--hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \
@@ -453,9 +453,9 @@ django-types==0.23.0 \
--hash=sha256:0727b13ae810c4b1f14eeac9872834ac928c99dc76584ea7c23afc4461e049dd \
--hash=sha256:f97fb746166fb15a5f40e470a1fd7a58226349aac9e0a9cb8ae81deb14d94fd0
# via -r src/backend/requirements-dev.in
-filelock==3.25.2 \
- --hash=sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694 \
- --hash=sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70
+filelock==3.28.0 \
+ --hash=sha256:4ed1010aae813c4ee8d9c660e4792475ee60c4a0ba76073ceaf862bd317e3ca6 \
+ --hash=sha256:de9af6712788e7171df1b28b15eba2446c69721433fa427a9bee07b17820a9db
# via
# python-discovery
# virtualenv
@@ -463,9 +463,9 @@ gprof2dot==2025.4.14 \
--hash=sha256:0742e4c0b4409a5e8777e739388a11e1ed3750be86895655312ea7c20bd0090e \
--hash=sha256:35743e2d2ca027bf48fa7cba37021aaf4a27beeae1ae8e05a50b55f1f921a6ce
# via django-silk
-identify==2.6.18 \
- --hash=sha256:873ac56a5e3fd63e7438a7ecbc4d91aca692eb3fefa4534db2b7913f3fc352fd \
- --hash=sha256:8db9d3c8ea9079db92cafb0ebf97abdc09d52e97f4dcf773a2e694048b7cd737
+identify==2.6.19 \
+ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \
+ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842
# via pre-commit
idna==3.11 \
--hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \
@@ -494,9 +494,9 @@ nodeenv==1.10.0 \
--hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \
--hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb
# via pre-commit
-packaging==26.0 \
- --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \
- --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+packaging==26.1 \
+ --hash=sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f \
+ --hash=sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de
# via
# -c src/backend/requirements-3.14.txt
# -c src/backend/requirements.txt
@@ -507,17 +507,17 @@ pdfminer-six==20260107 \
--hash=sha256:366585ba97e80dffa8f00cebe303d2f381884d8637af4ce422f1df3ef38111a9 \
--hash=sha256:96bfd431e3577a55a0efd25676968ca4ce8fd5b53f14565f85716ff363889602
# via -r src/backend/requirements-dev.in
-pip==26.0.1 \
- --hash=sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b \
- --hash=sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8
+pip==26.1 \
+ --hash=sha256:4e8486d821d814b77319acb7b9e8bf5a4ee7590a643e7cb21029f209be8573c1 \
+ --hash=sha256:81e13ebcca3ffa8cc85e4deff5c27e1ee26dea0aa7fc2f294a073ac208806ff3
# via pip-tools
pip-tools==7.5.3 \
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
# via -r src/backend/requirements-dev.in
-platformdirs==4.9.4 \
- --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
- --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
+platformdirs==4.9.6 \
+ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
+ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
# via
# -c src/backend/requirements-3.14.txt
# -c src/backend/requirements.txt
@@ -550,37 +550,37 @@ pyproject-hooks==1.2.0 \
# via
# build
# pip-tools
-pytest==9.0.2 \
- --hash=sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b \
- --hash=sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11
+pytest==9.0.3 \
+ --hash=sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9 \
+ --hash=sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c
# via
# pytest-codspeed
# pytest-django
-pytest-codspeed==4.3.0 \
- --hash=sha256:05baff2a61dc9f3e92b92b9c2ab5fb45d9b802438f5373073f5766a91319ed7a \
- --hash=sha256:10d19b48c9dc35b227a7ac863d4b3c58132256c2ba1aae3220aaddbf6f3f5f9a \
- --hash=sha256:34f2fd8497456eefbd325673f677ea80d93bb1bc08a578c1fa43a09cec3d1879 \
- --hash=sha256:5230d9d65f39063a313ed1820df775166227ec5c20a1122968f85653d5efee48 \
- --hash=sha256:527a3a02eaa3e4d4583adc4ba2327eef79628f3e1c682a4b959439551a72588e \
- --hash=sha256:619120775e92a3f43fb4ff4c256a251b1554c904d95e2154a382484283f0388a \
- --hash=sha256:6ac31ae566bf047e91c79b6d12d9a31efedad556ff9258294d6ecebeacb92fa4 \
- --hash=sha256:878aad5e4bb7b401ad8d82f3af5186030cd2bd0d0446782e10dabb9db8827466 \
- --hash=sha256:9858c2a6e1f391d5696757e7b6e9484749a7376c46f8b4dd9aebf093479a9667 \
- --hash=sha256:a2f5bb6d8898bea7db45e3c8b916ee48e36905b929477bb511b79c5a3ccacda4 \
- --hash=sha256:b2acecc4126658abebc683b38121adec405a46e18a619d49d6154c6e60c5deb2 \
- --hash=sha256:bec30f4fc9c4973143cd80f0d33fa780e9fa3e01e4dbe8cedf229e72f1212c62 \
- --hash=sha256:dbeff1eb2f2e36df088658b556fa993e6937bf64ffb07406de4db16fd2b26874 \
- --hash=sha256:df0d1f6ea594f29b745c634d66d5f5f1caa1c3abd2af82fea49d656038e8fc77 \
- --hash=sha256:df6a36a2a9da1406bc50428437f657f0bd8c842ae54bee5fb3ad30e01d50c0f5 \
- --hash=sha256:e6584e641cadf27d894ae90b87c50377232a97cbfd76ee0c7ecd0c056fa3f7f4
+pytest-codspeed==4.4.0 \
+ --hash=sha256:06943110e7a8a4b54f4b13aaa3ff8db39caa02b2f61705916887649e36b9713a \
+ --hash=sha256:215170441e57bfcbefd179dfd86ccd54ed0ee235e0602a068ce4448b35f13cb2 \
+ --hash=sha256:29b1bf8a36e18d11641a5e610e23a94036b04185e3099978d81a873a5bd3635c \
+ --hash=sha256:33c38e0e797c74506004f231fc53eab0e412987de281755f714018334381aa3a \
+ --hash=sha256:340dbb1cc5a21434e0e29bd68ab03c7dc7ad9bfde09d1980b7161352c4c2f048 \
+ --hash=sha256:413666266762f9cef1321ba971a9e127b97a1f1dad40ddfd2184c2bc5ac157f9 \
+ --hash=sha256:4afa9455a9b198c5e898224c751182fcf53f67f11fb27c2c3346284da1baa018 \
+ --hash=sha256:56d5dd94dcb69460f916acb9c69865d0171b98acec3ce256645d0c0275b553d7 \
+ --hash=sha256:6a5c1d51e7ca72ffe247c99b9a97a54191185e8f7a27528e2200d7416da2a68b \
+ --hash=sha256:83479a6719598d2910969a60cc410c7283c262c876422a9157dca2f2ab42fa1d \
+ --hash=sha256:98524af4ddd6006ea064791bb15a43957d78fab040cb6f499ca73a369da373e6 \
+ --hash=sha256:a6aab2fa73523f538e7729c20ccf4a1e8e921324c9877a816b05334135950fd9 \
+ --hash=sha256:e258e6c3d5a8a02ae02a64831be3acd44c19210ffbf13321bdbb8c111c5c6fe4 \
+ --hash=sha256:edb7c101d9c50439a42cf02cfa9c0ac92da618841636bbebf87c3fa54669442a \
+ --hash=sha256:ee3e1964446011ca192eebf0350227df231a5b88af57e518f2a4328fc8ca5131 \
+ --hash=sha256:f3ae6f4053042c3a9ae3b05416fb42253c5e514e89391eb25e9c9e3ac8de8677
# via -r src/backend/requirements-dev.in
pytest-django==4.12.0 \
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
# via -r src/backend/requirements-dev.in
-python-discovery==1.2.1 \
- --hash=sha256:180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e \
- --hash=sha256:b6a957b24c1cd79252484d3566d1b49527581d46e789aaf43181005e56201502
+python-discovery==1.2.2 \
+ --hash=sha256:876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb \
+ --hash=sha256:e1ae95d9af875e78f15e19aed0c6137ab1bb49c200f21f5061786490c9585c7a
# via virtualenv
pyyaml==6.0.3 \
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
@@ -671,9 +671,9 @@ requests-mock==1.12.1 \
--hash=sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563 \
--hash=sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401
# via -r src/backend/requirements-dev.in
-rich==14.3.3 \
- --hash=sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d \
- --hash=sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b
+rich==15.0.0 \
+ --hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \
+ --hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36
# via pytest-codspeed
setuptools==82.0.1 \
--hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \
@@ -711,13 +711,13 @@ ty==0.0.1a21 \
--hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
--hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
# via -r src/backend/requirements-dev.in
-types-psycopg2==2.9.21.20260223 \
- --hash=sha256:78ed70de2e56bc6b5c26c8c1da8e9af54e49fdc3c94d1504609f3519e2b84f02 \
- --hash=sha256:c6228ade72d813b0624f4c03feeb89471950ac27cd0506b5debed6f053086bc8
+types-psycopg2==2.9.21.20260408 \
+ --hash=sha256:49b086bfc9e0ce901c6537403ead1c19c75275571040b037af0248a8e48c322f \
+ --hash=sha256:bb65cd12f53b6633077fd782607a33065e1f3bf585219c9f786b61ad2b72211c
# via django-types
-types-pyyaml==6.0.12.20250915 \
- --hash=sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3 \
- --hash=sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6
+types-pyyaml==6.0.12.20260408 \
+ --hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \
+ --hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384
# via django-stubs
typing-extensions==4.15.0 \
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
@@ -735,9 +735,9 @@ urllib3==2.6.3 \
# -c src/backend/requirements-3.14.txt
# -c src/backend/requirements.txt
# requests
-virtualenv==21.2.0 \
- --hash=sha256:1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098 \
- --hash=sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f
+virtualenv==21.2.4 \
+ --hash=sha256:29d21e941795206138d0f22f4e45ff7050e5da6c6472299fb7103318763861ac \
+ --hash=sha256:b294ef68192638004d72524ce7ef303e9d0cf5a44c95ce2e54a7500a6381cada
# via pre-commit
wheel==0.46.3 \
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt
index 34203e179f..f2062c6b3c 100644
--- a/src/backend/requirements-dev.txt
+++ b/src/backend/requirements-dev.txt
@@ -6,9 +6,9 @@ asgiref==3.11.1 \
# via
# -c src/backend/requirements.txt
# django
-build==1.4.2 \
- --hash=sha256:35b14e1ee329c186d3f08466003521ed7685ec15ecffc07e68d706090bf161d1 \
- --hash=sha256:7a4d8651ea877cb2a89458b1b198f2e69f536c95e89129dbf5d448045d60db88
+build==1.4.3 \
+ --hash=sha256:1bc22b19b383303de8f2c8554c9a32894a58d3f185fe3756b0b20d255bee9a38 \
+ --hash=sha256:5aa4231ae0e807efdf1fd0623e07366eca2ab215921345a2e38acdd5d0fa0a74
# via pip-tools
certifi==2026.2.25 \
--hash=sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa \
@@ -243,9 +243,9 @@ charset-normalizer==3.4.7 \
# -c src/backend/requirements.txt
# pdfminer-six
# requests
-click==8.3.1 \
- --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \
- --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
+click==8.3.2 \
+ --hash=sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5 \
+ --hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
# via pip-tools
coverage[toml]==7.13.5 \
--hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \
@@ -431,13 +431,13 @@ django-silk==5.5.0 \
django-slowtests==1.1.1 \
--hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247
# via -r src/backend/requirements-dev.in
-django-stubs==6.0.1 \
- --hash=sha256:d885044bd0876610f3eb969d6b5ed22f386002a879fdcb369cd8efa0502dbbce \
- --hash=sha256:e1ca63634221b57a55e16562b9b6d1849aeee2cabfd0fc026084dbe8aa893366
+django-stubs==6.0.2 \
+ --hash=sha256:56d43b5e3741563af0063e5b6283f908c625b0439aa06314268673699d1bdccd \
+ --hash=sha256:c3bc84d80421758f3b2ad9e1358e001d719388a8eb106e67c873e606216108d4
# via -r src/backend/requirements-dev.in
-django-stubs-ext==6.0.1 \
- --hash=sha256:17415759b9a3f4b4da7998ac3b08c7dc5137f9a019490b918aece1a8a4c2ade4 \
- --hash=sha256:633b280f89c0cbb7e3ce2f2f842e0acc43d8091378e75f84921d6be675d052dc
+django-stubs-ext==6.0.2 \
+ --hash=sha256:70b7b7ae837e7a6036e2facb64435550bf7cf8143c1a6e802864d4824ce6058c \
+ --hash=sha256:b35bdec1995bf49765cc39fa89aa7c23f120a23d0cb0152ab7fb4e48ff7d667b
# via django-stubs
django-test-migrations==1.5.0 \
--hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \
@@ -447,9 +447,9 @@ django-types==0.23.0 \
--hash=sha256:0727b13ae810c4b1f14eeac9872834ac928c99dc76584ea7c23afc4461e049dd \
--hash=sha256:f97fb746166fb15a5f40e470a1fd7a58226349aac9e0a9cb8ae81deb14d94fd0
# via -r src/backend/requirements-dev.in
-filelock==3.25.2 \
- --hash=sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694 \
- --hash=sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70
+filelock==3.28.0 \
+ --hash=sha256:4ed1010aae813c4ee8d9c660e4792475ee60c4a0ba76073ceaf862bd317e3ca6 \
+ --hash=sha256:de9af6712788e7171df1b28b15eba2446c69721433fa427a9bee07b17820a9db
# via
# python-discovery
# virtualenv
@@ -457,9 +457,9 @@ gprof2dot==2025.4.14 \
--hash=sha256:0742e4c0b4409a5e8777e739388a11e1ed3750be86895655312ea7c20bd0090e \
--hash=sha256:35743e2d2ca027bf48fa7cba37021aaf4a27beeae1ae8e05a50b55f1f921a6ce
# via django-silk
-identify==2.6.18 \
- --hash=sha256:873ac56a5e3fd63e7438a7ecbc4d91aca692eb3fefa4534db2b7913f3fc352fd \
- --hash=sha256:8db9d3c8ea9079db92cafb0ebf97abdc09d52e97f4dcf773a2e694048b7cd737
+identify==2.6.19 \
+ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \
+ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842
# via pre-commit
idna==3.11 \
--hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \
@@ -487,9 +487,9 @@ nodeenv==1.10.0 \
--hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \
--hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb
# via pre-commit
-packaging==26.0 \
- --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \
- --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+packaging==26.1 \
+ --hash=sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f \
+ --hash=sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de
# via
# -c src/backend/requirements.txt
# build
@@ -499,17 +499,17 @@ pdfminer-six==20260107 \
--hash=sha256:366585ba97e80dffa8f00cebe303d2f381884d8637af4ce422f1df3ef38111a9 \
--hash=sha256:96bfd431e3577a55a0efd25676968ca4ce8fd5b53f14565f85716ff363889602
# via -r src/backend/requirements-dev.in
-pip==26.0.1 \
- --hash=sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b \
- --hash=sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8
+pip==26.1 \
+ --hash=sha256:4e8486d821d814b77319acb7b9e8bf5a4ee7590a643e7cb21029f209be8573c1 \
+ --hash=sha256:81e13ebcca3ffa8cc85e4deff5c27e1ee26dea0aa7fc2f294a073ac208806ff3
# via pip-tools
pip-tools==7.5.3 \
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
# via -r src/backend/requirements-dev.in
-platformdirs==4.9.4 \
- --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
- --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
+platformdirs==4.9.6 \
+ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
+ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
# via
# -c src/backend/requirements.txt
# python-discovery
@@ -540,37 +540,37 @@ pyproject-hooks==1.2.0 \
# via
# build
# pip-tools
-pytest==9.0.2 \
- --hash=sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b \
- --hash=sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11
+pytest==9.0.3 \
+ --hash=sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9 \
+ --hash=sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c
# via
# pytest-codspeed
# pytest-django
-pytest-codspeed==4.3.0 \
- --hash=sha256:05baff2a61dc9f3e92b92b9c2ab5fb45d9b802438f5373073f5766a91319ed7a \
- --hash=sha256:10d19b48c9dc35b227a7ac863d4b3c58132256c2ba1aae3220aaddbf6f3f5f9a \
- --hash=sha256:34f2fd8497456eefbd325673f677ea80d93bb1bc08a578c1fa43a09cec3d1879 \
- --hash=sha256:5230d9d65f39063a313ed1820df775166227ec5c20a1122968f85653d5efee48 \
- --hash=sha256:527a3a02eaa3e4d4583adc4ba2327eef79628f3e1c682a4b959439551a72588e \
- --hash=sha256:619120775e92a3f43fb4ff4c256a251b1554c904d95e2154a382484283f0388a \
- --hash=sha256:6ac31ae566bf047e91c79b6d12d9a31efedad556ff9258294d6ecebeacb92fa4 \
- --hash=sha256:878aad5e4bb7b401ad8d82f3af5186030cd2bd0d0446782e10dabb9db8827466 \
- --hash=sha256:9858c2a6e1f391d5696757e7b6e9484749a7376c46f8b4dd9aebf093479a9667 \
- --hash=sha256:a2f5bb6d8898bea7db45e3c8b916ee48e36905b929477bb511b79c5a3ccacda4 \
- --hash=sha256:b2acecc4126658abebc683b38121adec405a46e18a619d49d6154c6e60c5deb2 \
- --hash=sha256:bec30f4fc9c4973143cd80f0d33fa780e9fa3e01e4dbe8cedf229e72f1212c62 \
- --hash=sha256:dbeff1eb2f2e36df088658b556fa993e6937bf64ffb07406de4db16fd2b26874 \
- --hash=sha256:df0d1f6ea594f29b745c634d66d5f5f1caa1c3abd2af82fea49d656038e8fc77 \
- --hash=sha256:df6a36a2a9da1406bc50428437f657f0bd8c842ae54bee5fb3ad30e01d50c0f5 \
- --hash=sha256:e6584e641cadf27d894ae90b87c50377232a97cbfd76ee0c7ecd0c056fa3f7f4
+pytest-codspeed==4.4.0 \
+ --hash=sha256:06943110e7a8a4b54f4b13aaa3ff8db39caa02b2f61705916887649e36b9713a \
+ --hash=sha256:215170441e57bfcbefd179dfd86ccd54ed0ee235e0602a068ce4448b35f13cb2 \
+ --hash=sha256:29b1bf8a36e18d11641a5e610e23a94036b04185e3099978d81a873a5bd3635c \
+ --hash=sha256:33c38e0e797c74506004f231fc53eab0e412987de281755f714018334381aa3a \
+ --hash=sha256:340dbb1cc5a21434e0e29bd68ab03c7dc7ad9bfde09d1980b7161352c4c2f048 \
+ --hash=sha256:413666266762f9cef1321ba971a9e127b97a1f1dad40ddfd2184c2bc5ac157f9 \
+ --hash=sha256:4afa9455a9b198c5e898224c751182fcf53f67f11fb27c2c3346284da1baa018 \
+ --hash=sha256:56d5dd94dcb69460f916acb9c69865d0171b98acec3ce256645d0c0275b553d7 \
+ --hash=sha256:6a5c1d51e7ca72ffe247c99b9a97a54191185e8f7a27528e2200d7416da2a68b \
+ --hash=sha256:83479a6719598d2910969a60cc410c7283c262c876422a9157dca2f2ab42fa1d \
+ --hash=sha256:98524af4ddd6006ea064791bb15a43957d78fab040cb6f499ca73a369da373e6 \
+ --hash=sha256:a6aab2fa73523f538e7729c20ccf4a1e8e921324c9877a816b05334135950fd9 \
+ --hash=sha256:e258e6c3d5a8a02ae02a64831be3acd44c19210ffbf13321bdbb8c111c5c6fe4 \
+ --hash=sha256:edb7c101d9c50439a42cf02cfa9c0ac92da618841636bbebf87c3fa54669442a \
+ --hash=sha256:ee3e1964446011ca192eebf0350227df231a5b88af57e518f2a4328fc8ca5131 \
+ --hash=sha256:f3ae6f4053042c3a9ae3b05416fb42253c5e514e89391eb25e9c9e3ac8de8677
# via -r src/backend/requirements-dev.in
pytest-django==4.12.0 \
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
# via -r src/backend/requirements-dev.in
-python-discovery==1.2.1 \
- --hash=sha256:180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e \
- --hash=sha256:b6a957b24c1cd79252484d3566d1b49527581d46e789aaf43181005e56201502
+python-discovery==1.2.2 \
+ --hash=sha256:876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb \
+ --hash=sha256:e1ae95d9af875e78f15e19aed0c6137ab1bb49c200f21f5061786490c9585c7a
# via virtualenv
pyyaml==6.0.3 \
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
@@ -659,9 +659,9 @@ requests-mock==1.12.1 \
--hash=sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563 \
--hash=sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401
# via -r src/backend/requirements-dev.in
-rich==14.3.3 \
- --hash=sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d \
- --hash=sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b
+rich==15.0.0 \
+ --hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \
+ --hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36
# via pytest-codspeed
setuptools==82.0.1 \
--hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \
@@ -746,13 +746,13 @@ ty==0.0.1a21 \
--hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
--hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
# via -r src/backend/requirements-dev.in
-types-psycopg2==2.9.21.20260223 \
- --hash=sha256:78ed70de2e56bc6b5c26c8c1da8e9af54e49fdc3c94d1504609f3519e2b84f02 \
- --hash=sha256:c6228ade72d813b0624f4c03feeb89471950ac27cd0506b5debed6f053086bc8
+types-psycopg2==2.9.21.20260408 \
+ --hash=sha256:49b086bfc9e0ce901c6537403ead1c19c75275571040b037af0248a8e48c322f \
+ --hash=sha256:bb65cd12f53b6633077fd782607a33065e1f3bf585219c9f786b61ad2b72211c
# via django-types
-types-pyyaml==6.0.12.20250915 \
- --hash=sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3 \
- --hash=sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6
+types-pyyaml==6.0.12.20260408 \
+ --hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \
+ --hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384
# via django-stubs
typing-extensions==4.15.0 \
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
@@ -768,9 +768,9 @@ urllib3==2.6.3 \
# via
# -c src/backend/requirements.txt
# requests
-virtualenv==21.2.0 \
- --hash=sha256:1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098 \
- --hash=sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f
+virtualenv==21.2.4 \
+ --hash=sha256:29d21e941795206138d0f22f4e45ff7050e5da6c6472299fb7103318763861ac \
+ --hash=sha256:b294ef68192638004d72524ce7ef303e9d0cf5a44c95ce2e54a7500a6381cada
# via pre-commit
wheel==0.46.3 \
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt
index 640ab46e5a..b99296082f 100644
--- a/src/backend/requirements.txt
+++ b/src/backend/requirements.txt
@@ -95,15 +95,15 @@ blessed==1.38.0 \
--hash=sha256:89ce6ec6567f7aced0716b73577b7a1702eb23c667838bb46d7d9bd48c36d1b3 \
--hash=sha256:905884ae650e41284fa4fd7d0c3eed5e5b4a42be8c2bfb24c90d79fbf26a1490
# via -r src/backend/requirements.in
-boto3==1.42.82 \
- --hash=sha256:6df9ca0f5047c6afe6bd42244d8e059cde69e2cdb719ebd68d52c7d7beb529b2 \
- --hash=sha256:804341c8197c556e8e7ceb82388ee120f319a4efbb9dc368f6059760a11cfc7d
+boto3==1.42.90 \
+ --hash=sha256:bafb5bb1dea262ac95f9afb1e415f06a9490f05cb203bdd897d0afdcd17733c6 \
+ --hash=sha256:fde7f7bcad6ec8342d6bf18f56d118d0cb6df189310cfaf73e2eb6443b1cb418
# via
# django-anymail
# django-storages
-botocore==1.42.82 \
- --hash=sha256:824dbb58c99d894f193ed1dd75cf59650e25c1b5adb9d3a66b39fdede46f259b \
- --hash=sha256:a2bfe8537e95462ec06a46cc29c327f84746722bb4ce106491bfd3af8075ceed
+botocore==1.42.90 \
+ --hash=sha256:234c39492cd3088acb021d999e3392a4d50238ae3e70b9d9ae1504c30d9009d1 \
+ --hash=sha256:5c95504720346990adc8e3ae1023eb46f9409084b79688e4773ba7099c5fd3db
# via
# boto3
# s3transfer
@@ -550,9 +550,9 @@ django-cors-headers==4.9.0 \
--hash=sha256:15c7f20727f90044dcee2216a9fd7303741a864865f0c3657e28b7056f61b449 \
--hash=sha256:fe5d7cb59fdc2c8c646ce84b727ac2bca8912a247e6e68e1fb507372178e59e8
# via -r src/backend/requirements.in
-django-dbbackup==5.2.0 \
- --hash=sha256:540948869e44778b5b33333cbab0cfe44279defd47df635d309ede8666894370 \
- --hash=sha256:72b11dd31758abcf8f2d405fd2efbc49c9624bc17196f8c68542d3dc8d8d53c3
+django-dbbackup==5.3.0 \
+ --hash=sha256:2c880dba7650539e8a724174fedb5213062c4fcda3aa09e1c5f3f573192106cb \
+ --hash=sha256:ff80b5facd524e3f6479235aeb330b094a1c982f8b0b9503c24ba0dc613162ed
# via -r src/backend/requirements.in
django-error-report-2==0.4.2 \
--hash=sha256:1dd99c497af09b7ea99f5fbaf910501838150a9d5390796ea00e187bc62f6c1b \
@@ -719,9 +719,9 @@ feedparser==6.0.12 \
--hash=sha256:64f76ce90ae3e8ef5d1ede0f8d3b50ce26bcce71dd8ae5e82b1cd2d4a5f94228 \
--hash=sha256:6bbff10f5a52662c00a2e3f86a38928c37c48f77b3c511aedcd51de933549324
# via -r src/backend/requirements.in
-fido2==2.1.1 \
- --hash=sha256:f1379f845870cc7fc64c7f07323c3ce41e8c96c37054e79e0acd5630b3fec5ac \
- --hash=sha256:f85c16c8084abf6530b6c6ec3a0cf8575943321842e06916686943a8b784182c
+fido2==2.2.0 \
+ --hash=sha256:0d8122e690096ad82afde42ac9d6433a4eeffda64084f36341ea02546b181dd1 \
+ --hash=sha256:3587ccf0af7b71b5dd73f17e1dbec9f0fd157292f9163f02e7778f46d0d25fe5
# via django-allauth
flexcache==0.3 \
--hash=sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656 \
@@ -876,9 +876,9 @@ inflection==0.5.1 \
--hash=sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417 \
--hash=sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2
# via drf-spectacular
-invoke==2.2.1 \
- --hash=sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8 \
- --hash=sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707
+invoke==3.0.3 \
+ --hash=sha256:437b6a622223824380bfb4e64f612711a6b648c795f565efc8625af66fb57f0c \
+ --hash=sha256:f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053
# via paramiko
isodate==0.7.2 \
--hash=sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15 \
@@ -906,147 +906,141 @@ jwcrypto==1.5.7 \
--hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \
--hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0
# via django-oauth-toolkit
-lxml==6.0.2 \
- --hash=sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba \
- --hash=sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8 \
- --hash=sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0 \
- --hash=sha256:08b9d5e803c2e4725ae9e8559ee880e5328ed61aa0935244e0515d7d9dbec0aa \
- --hash=sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f \
- --hash=sha256:0aa7070978f893954008ab73bb9e3c24a7c56c054e00566a21b553dc18105fca \
- --hash=sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf \
- --hash=sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607 \
- --hash=sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8 \
- --hash=sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452 \
- --hash=sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700 \
- --hash=sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d \
- --hash=sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b \
- --hash=sha256:1ea99340b3c729beea786f78c38f60f4795622f36e305d9c9be402201efdc3b7 \
- --hash=sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d \
- --hash=sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6 \
- --hash=sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a \
- --hash=sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d \
- --hash=sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca \
- --hash=sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb \
- --hash=sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed \
- --hash=sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d \
- --hash=sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e \
- --hash=sha256:2c8458c2cdd29589a8367c09c8f030f1d202be673f0ca224ec18590b3b9fb694 \
- --hash=sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd \
- --hash=sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659 \
- --hash=sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c \
- --hash=sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314 \
- --hash=sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5 \
- --hash=sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849 \
- --hash=sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938 \
- --hash=sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a \
- --hash=sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34 \
- --hash=sha256:3fee0851639d06276e6b387f1c190eb9d7f06f7f53514e966b26bae46481ec90 \
- --hash=sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6 \
- --hash=sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba \
- --hash=sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285 \
- --hash=sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553 \
- --hash=sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d \
- --hash=sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c \
- --hash=sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5 \
- --hash=sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601 \
- --hash=sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba \
- --hash=sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37 \
- --hash=sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f \
- --hash=sha256:5921d924aa5468c939d95c9814fa9f9b5935a6ff4e679e26aaf2951f74043512 \
- --hash=sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a \
- --hash=sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438 \
- --hash=sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153 \
- --hash=sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9 \
- --hash=sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d \
- --hash=sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6 \
- --hash=sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f \
- --hash=sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534 \
- --hash=sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46 \
- --hash=sha256:66328dabea70b5ba7e53d94aa774b733cf66686535f3bc9250a7aab53a91caaf \
- --hash=sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f \
- --hash=sha256:6cdaefac66e8b8f30e37a9b4768a391e1f8a16a7526d5bc77a7928408ef68e93 \
- --hash=sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8 \
- --hash=sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f \
- --hash=sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1 \
- --hash=sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322 \
- --hash=sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f \
- --hash=sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9 \
- --hash=sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f \
- --hash=sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7 \
- --hash=sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f \
- --hash=sha256:817ef43a0c0b4a77bd166dc9a09a555394105ff3374777ad41f453526e37f9cb \
- --hash=sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916 \
- --hash=sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec \
- --hash=sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9 \
- --hash=sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d \
- --hash=sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679 \
- --hash=sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0 \
- --hash=sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192 \
- --hash=sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917 \
- --hash=sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c \
- --hash=sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d \
- --hash=sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338 \
- --hash=sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d \
- --hash=sha256:995e783eb0374c120f528f807443ad5a83a656a8624c467ea73781fc5f8a8304 \
- --hash=sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77 \
- --hash=sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba \
- --hash=sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456 \
- --hash=sha256:a656ca105115f6b766bba324f23a67914d9c728dafec57638e2b92a9dcd76c62 \
- --hash=sha256:a6b5b39cc7e2998f968f05309e666103b53e2edd01df8dc51b90d734c0825444 \
- --hash=sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a \
- --hash=sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f \
- --hash=sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c \
- --hash=sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d \
- --hash=sha256:ac02dc29fd397608f8eb15ac1610ae2f2f0154b03f631e6d724d9e2ad4ee2c84 \
- --hash=sha256:af85529ae8d2a453feee4c780d9406a5e3b17cee0dd75c18bd31adcd584debc3 \
- --hash=sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe \
- --hash=sha256:b2142a376b40b6736dfc214fd2902409e9e3857eff554fed2d3c60f097e62a62 \
- --hash=sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8 \
- --hash=sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178 \
- --hash=sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0 \
- --hash=sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7 \
- --hash=sha256:b42f4d86b451c2f9d06ffb4f8bbc776e04df3ba070b9fe2657804b1b40277c48 \
- --hash=sha256:b738f7e648735714bbb82bdfd030203360cfeab7f6e8a34772b3c8c8b820568c \
- --hash=sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9 \
- --hash=sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7 \
- --hash=sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048 \
- --hash=sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c \
- --hash=sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4 \
- --hash=sha256:bc532422ff26b304cfb62b328826bd995c96154ffd2bac4544f37dbb95ecaa8f \
- --hash=sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b \
- --hash=sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0 \
- --hash=sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564 \
- --hash=sha256:c54d83a2188a10ebdba573f16bd97135d06c9ef60c3dc495315c7a28c80a263f \
- --hash=sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee \
- --hash=sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5 \
- --hash=sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62 \
- --hash=sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272 \
- --hash=sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9 \
- --hash=sha256:d4aec24d6b72ee457ec665344a29acb2d35937d5192faebe429ea02633151aad \
- --hash=sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321 \
- --hash=sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a \
- --hash=sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312 \
- --hash=sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0 \
- --hash=sha256:daf42de090d59db025af61ce6bdb2521f0f102ea0e6ea310f13c17610a97da4c \
- --hash=sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37 \
- --hash=sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964 \
- --hash=sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484 \
- --hash=sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e \
- --hash=sha256:e237b807d68a61fc3b1e845407e27e5eb8ef69bc93fe8505337c1acb4ee300b6 \
- --hash=sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078 \
- --hash=sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6 \
- --hash=sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388 \
- --hash=sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924 \
- --hash=sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2 \
- --hash=sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df \
- --hash=sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd \
- --hash=sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1 \
- --hash=sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c \
- --hash=sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31 \
- --hash=sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed \
- --hash=sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2 \
- --hash=sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092 \
- --hash=sha256:fe659f6b5d10fb5a17f00a50eb903eb277a71ee35df4615db573c069bcf967ac
+lxml==6.1.0 \
+ --hash=sha256:00750d63ef0031a05331b9223463b1c7c02b9004cef2346a5b2877f0f9494dd2 \
+ --hash=sha256:022981127642fe19866d2907d76241bb07ed21749601f727d5d5dd1ce5d1b773 \
+ --hash=sha256:045e387d1f4f42a418380930fa3f45c73c9b392faf67e495e58902e68e8f44a7 \
+ --hash=sha256:05b9b8787e35bec69e68daf4952b2e6dfcfb0db7ecf1a06f8cdfbbac4eb71aad \
+ --hash=sha256:07f98f5496f96bf724b1e3c933c107f0cbf2745db18c03d2e13a291c3afd2635 \
+ --hash=sha256:08950a23f296b3f83521577274e3d3b0f3d739bf2e68d01a752e4288bc50d286 \
+ --hash=sha256:0d082495c5fcf426e425a6e28daaba1fcb6d8f854a4ff01effb1f1f381203eb9 \
+ --hash=sha256:0f0f08beb0182e3e9a86fae124b3c47a7b41b7b69b225e1377db983802404e54 \
+ --hash=sha256:1081dd10bc6fa437db2500e13993abf7cc30716d0a2f40e65abb935f02ec559c \
+ --hash=sha256:11a873c77a181b4fef9c2e357d08ed399542c2af1390101da66720a19c7c9618 \
+ --hash=sha256:183bfb45a493081943be7ea2b5adfc2b611e1cf377cefa8b8a8be404f45ef9a7 \
+ --hash=sha256:19f4164243fc206d12ed3d866e80e74f5bc3627966520da1a5f97e42c32a3f39 \
+ --hash=sha256:1ae225f66e5938f4fa29d37e009a3bb3b13032ac57eb4eb42afa44f6e4054e69 \
+ --hash=sha256:1bc4cc83fb7f66ffb16f74d6dd0162e144333fc36ebcce32246f80c8735b2551 \
+ --hash=sha256:1dd6a1c3ad4cb674f44525d9957f3e9c209bb6dd9213245195167a281fcc2bdc \
+ --hash=sha256:20cf4d0651987c906a2f5cba4e3a8d6ba4bfdf973cfe2a96c0d6053888ea2ecd \
+ --hash=sha256:2173a7bffe97667bbf0767f8a99e587740a8c56fdf3befac4b09cb29a80276fd \
+ --hash=sha256:21c3302068f50d1e8728c67c87ba92aa87043abee517aa2576cca1855326b405 \
+ --hash=sha256:23a5dc68e08ed13331d61815c08f260f46b4a60fdd1640bbeb82cf89a9d90289 \
+ --hash=sha256:23cad0cc86046d4222f7f418910e46b89971c5a45d3c8abfad0f64b7b05e4a9b \
+ --hash=sha256:2593a0a6621545b9095b71ad74ed4226eba438a7d9fc3712a99bdb15508cf93a \
+ --hash=sha256:264c605ab9c0e4aa1a679636f4582c4d3313700009fac3ec9c3412ed0d8f3e1d \
+ --hash=sha256:26c5272c6a4bf4cf32d3f5a7890c942b0e04438691157d341616d02cca74d4bd \
+ --hash=sha256:26dd9f57ee3bd41e7d35b4c98a2ffd89ed11591649f421f0ec19f67d50ec67ac \
+ --hash=sha256:28902146ffbe5222df411c5d19e5352490122e14447e98cd118907ee3fd6ee62 \
+ --hash=sha256:29f5c00cb7d752bce2c70ebd2d31b0a42f9499ffdd3ecb2f31a5b73ee43031ad \
+ --hash=sha256:30e7b2ed63b6c8e97cca8af048589a788ab5c9c905f36d9cf1c2bb549f450d2f \
+ --hash=sha256:32662519149fd7a9db354175aa5e417d83485a8039b8aaa62f873ceee7ea4cad \
+ --hash=sha256:363e47283bde87051b821826e71dde47f107e08614e1aa312ba0c5711e77738c \
+ --hash=sha256:3648f20d25102a22b6061c688beb3a805099ea4beb0a01ce62975d926944d292 \
+ --hash=sha256:37448bf9c7d7adfc5254763901e2bbd6bb876228dfc1fc7f66e58c06368a7544 \
+ --hash=sha256:37fabd1452852636cf38ecdcc9dd5ca4bba7a35d6c53fa09725deeb894a87491 \
+ --hash=sha256:398443df51c538bd578529aa7e5f7afc6c292644174b47961f3bf87fe5741120 \
+ --hash=sha256:3ae5d8d5427f3cc317e7950f2da7ad276df0cfa37b8de2f5658959e618ea8512 \
+ --hash=sha256:3f00972f84450204cd5d93a5395965e348956aaceaadec693a22ec743f8ae3eb \
+ --hash=sha256:40d9189f80075f2e1f88db21ef815a2b17b28adf8e50aaf5c789bfe737027f32 \
+ --hash=sha256:419c58fc92cc3a2c3fa5f78c63dbf5da70c1fa9c1b25f25727ecee89a96c7de2 \
+ --hash=sha256:41dcc4c7b10484257cbd6c37b83ddb26df2b0e5aff5ac00d095689015af868ec \
+ --hash=sha256:43e4d297f11080ec9d64a4b1ad7ac02b4484c9f0e2179d9c4ef78e886e747b88 \
+ --hash=sha256:45e9dfbd1b661eb64ba0d4dbe762bd210c42d86dd1e5bd2bdf89d634231beb43 \
+ --hash=sha256:4642e04449a1e164b5ff71ffd901ddb772dfabf5c9adf1b7be5dffe1212bc037 \
+ --hash=sha256:468479e52ecf3ec23799c863336d02c05fc2f7ffd1a1424eeeb9a28d4eb69d13 \
+ --hash=sha256:47024feaae386a92a146af0d2aeed65229bf6fff738e6a11dda6b0015fb8fd03 \
+ --hash=sha256:481d6e2104285d9add34f41b42b247b76b61c5b5c26c303c2e9707bbf8bd9a64 \
+ --hash=sha256:4937460dc5df0cdd2f06a86c285c28afda06aefa3af949f9477d3e8df430c485 \
+ --hash=sha256:4a1503c56e4e2b38dc76f2f2da7bae69670c0f1933e27cfa34b2fa5876410b16 \
+ --hash=sha256:4b89b098105b8599dc57adac95d1813409ac476d3c948a498775d3d0c6124bfb \
+ --hash=sha256:4bd1bdb8a9e0e2dd229de19b5f8aebac80e916921b4b2c6ef8a52bc131d0c1f9 \
+ --hash=sha256:4e2c54d6b47361d0f1d3bc8d4e082ad87201e56ccdcca4d3b9ee3644ff595ec8 \
+ --hash=sha256:52b0ac6903cf74ebf997eb8c682d2fbac7d1ab7e4c552413eec55868a9b73f39 \
+ --hash=sha256:546b66c0dd1bb8d9fa89d7123e5fa19a8aff3a1f2141eb22df96112afb17b842 \
+ --hash=sha256:56971379bc5ee8037c5a0f09fa88f66cdb7d37c3e38af3e45cf539f41131ac1f \
+ --hash=sha256:5715e0e28736a070f3f34a7ccc09e2fdcba0e3060abbcf61a1a5718ff6d6b105 \
+ --hash=sha256:5cfa1a34df366d9dc0d5eaf420f4cf2bb1e1bebe1066d1c2fc28c179f8a4004c \
+ --hash=sha256:5d27bbe326c6b539c64b42638b18bc6003a8d88f76213a97ac9ed4f885efeab7 \
+ --hash=sha256:6262b87f9e5c1e5fe501d6c153247289af42eb44ad7660b9b3de17baaf92d6f6 \
+ --hash=sha256:63aeafc26aac0be8aff14af7871249e87ea1319be92090bfd632ec68e03b16a5 \
+ --hash=sha256:690022c7fae793b0489aa68a658822cea83e0d5933781811cabbf5ea3bcfe73d \
+ --hash=sha256:6fd8b1df8254ff4fd93fd31da1fc15770bde23ac045be9bb1f87425702f61cc9 \
+ --hash=sha256:73becf6d8c81d4c76b1014dbd3584cb26d904492dcf73ca85dc8bff08dcd6d2d \
+ --hash=sha256:73d658216fc173cf2c939e90e07b941c5e12736b0bf6a99e7af95459cfe8eabb \
+ --hash=sha256:75c4c7c619a744f972f4451bf5adf6d0fb00992a1ffc9fd78e13b0bc817cc99f \
+ --hash=sha256:76b958b4ea3104483c20f74866d55aa056546e15ebe83dd7aecd63698f43b755 \
+ --hash=sha256:77b9f99b17cbf14026d1e618035077060fc7195dd940d025149f3e2e830fbfcb \
+ --hash=sha256:7ba11752e346bd804ea312ec2eea2532dfa8b8d3261d81a32ef9e6ab16256280 \
+ --hash=sha256:7da13bb6fbadfafb474e0226a30570a3445cfd47c86296f2446dafbd77079ace \
+ --hash=sha256:7e39ab3a28af7784e206d8606ec0e4bcad0190f63a492bca95e94e5a4aef7f6e \
+ --hash=sha256:7f4a77d6f7edf9230cee3e1f7f6764722a41604ee5681844f18db9a81ea0ec33 \
+ --hash=sha256:80410c3a7e3c617af04de17caa9f9f20adaa817093293d69eae7d7d0522836f5 \
+ --hash=sha256:81ff55c70b67d19d52b6fd118a114c0a4c97d799cd3089ff9bd9e2ff4b414ee2 \
+ --hash=sha256:857efde87d365706590847b916baff69c0bc9252dc5af030e378c9800c0b10e3 \
+ --hash=sha256:89e8d73d09ac696a5ba42ec69787913d53284f12092f651506779314f10ba585 \
+ --hash=sha256:8c11b984b5ce6add4dccc7144c7be5d364d298f15b0c6a57da1991baedc750ce \
+ --hash=sha256:8c8984e1d8c4b3949e419158fda14d921ff703a9ed8a47236c6eb7a2b6cb4946 \
+ --hash=sha256:8e369cbd690e788c8d15e56222d91a09c6a417f49cbc543040cba0fe2e25a79e \
+ --hash=sha256:9147d8e386ec3b82c3b15d88927f734f565b0aaadef7def562b853adca45784a \
+ --hash=sha256:920354904d1cb86577d4b3cfe2830c2dbe81d6f4449e57ada428f1609b5985f7 \
+ --hash=sha256:942454ff253da14218f972b23dc72fa4edf6c943f37edd19cd697618b626fac5 \
+ --hash=sha256:972a6451204798675407beaad97b868d0c733d9a74dafefc63120b81b8c2de28 \
+ --hash=sha256:976a6b39b1b13e8c354ad8d3f261f3a4ac6609518af91bdb5094760a08f132c4 \
+ --hash=sha256:97faa0860e13b05b15a51fb4986421ef7a30f0b3334061c416e0981e9450ca4c \
+ --hash=sha256:9c03e048b6ce8e77b09c734e931584894ecd58d08296804ca2d0b184c933ce50 \
+ --hash=sha256:9e7b0a4ca6dcc007a4cef00a761bba2dea959de4bd2df98f926b33c92ca5dfb9 \
+ --hash=sha256:9eb667bf50856c4a58145f8ca2d5e5be160191e79eb9e30855a476191b3c3495 \
+ --hash=sha256:9f93d5b8b07f73e8c77e3c6556a3db269918390c804b5e5fcdd4858232cc8f16 \
+ --hash=sha256:a0092f2b107b69601adf562a57c956fbb596e05e3e6651cabd3054113b007e45 \
+ --hash=sha256:a02ca8fe48815bddcfca3248efe54451abb9dbf2f7d1c5744c8aa4142d476919 \
+ --hash=sha256:a1d9b99e5b2597e4f5aed2484fef835256fa1b68a19e4265c97628ef4bf8bcf4 \
+ --hash=sha256:a2853c8b2170cc6cd54a6b4d50d2c1a8a7aeca201f23804b4898525c7a152cfc \
+ --hash=sha256:a31286dbb5e74c8e9a5344465b77ab4c5bd511a253b355b5ca2fae7e579fafec \
+ --hash=sha256:a86f06f059e22a0d574990ee2df24ede03f7f3c68c1336293eee9536c4c776cd \
+ --hash=sha256:ab863fd37458fed6456525f297d21239d987800c46e67da5ef04fc6b3dd93ac8 \
+ --hash=sha256:ac4db068889f8772a4a698c5980ec302771bb545e10c4b095d4c8be26749616f \
+ --hash=sha256:b6c2f225662bc5ad416bdd06f72ca301b31b39ce4261f0e0097017fc2891b940 \
+ --hash=sha256:bb40648d96157f9081886defe13eac99253e663be969ff938a9289eff6e47b72 \
+ --hash=sha256:bba078de0031c219e5dd06cf3e6bf8fb8e6e64a77819b358f53bb132e3e03366 \
+ --hash=sha256:bc783ee3147e60a25aa0445ea82b3e8aabb83b240f2b95d32cb75587ff781814 \
+ --hash=sha256:be10838781cb3be19251e276910cd508fe127e27c3242e50521521a0f3781690 \
+ --hash=sha256:bfd57d8008c4965709a919c3e9a98f76c2c7cb319086b3d26858250620023b13 \
+ --hash=sha256:c08da09dc003c9e8c70e06b53a11db6fb3b250c21c4236b03c7d7b443c318e7a \
+ --hash=sha256:c3592631e652afa34999a088f98ba7dfc7d6aff0d535c410bea77a71743f3819 \
+ --hash=sha256:c4a699432846df86cc3de502ee85f445ebad748a1c6021d445f3e514d2cd4b1c \
+ --hash=sha256:c4e425db0c5445ef0ad56b0eec54f89b88b2d884656e536a90b2f52aecb4ca86 \
+ --hash=sha256:c53fa3a5a52122d590e847a57ccf955557b9634a7f99ff5a35131321b0a85317 \
+ --hash=sha256:c6854e9cf99c84beb004eecd7d3a3868ef1109bf2b1df92d7bc11e96a36c2180 \
+ --hash=sha256:c748ebcb6877de89f48ab90ca96642ac458fff5dec291a2b9337cd4d0934e383 \
+ --hash=sha256:c871299c595ee004d186f61840f0bfc4941aa3f17c8ba4a565ead7e4f4f820ee \
+ --hash=sha256:cbd7b79cdcb4986ad78a2662625882747f09db5e4cd7b2ae178a88c9c51b3dfe \
+ --hash=sha256:cc16682cc987a3da00aa56a3aa3075b08edb10d9b1e476938cfdbee8f3b67181 \
+ --hash=sha256:cec05be8c876f92a5aa07b01d60bbb4d11cfbdd654cad0561c0d7b5c043a61b9 \
+ --hash=sha256:d036ee7b99d5148072ac7c9b847193decdfeac633db350363f7bce4fff108f0e \
+ --hash=sha256:d0d799ff958655781296ec870d5e2448e75150da2b3d07f13ff5b0c2c35beefd \
+ --hash=sha256:d1392c569c032f78a11a25d1de1c43fff13294c793b39e19d84fade3045cbbc3 \
+ --hash=sha256:d2f17a16cd8751e8eb233a7e41aecdf8e511712e00088bf9be455f604cd0d28d \
+ --hash=sha256:d3829a6e6fd550a219564912d4002c537f65da4c6ae4e093cc34462f4fa027ad \
+ --hash=sha256:d43aa26dcda363f21e79afa0668f5029ed7394b3bb8c92a6927a3d34e8b610ea \
+ --hash=sha256:d6d8efe71429635f0559579092bb5e60560d7b9115ee38c4adbea35632e7fa24 \
+ --hash=sha256:dabecc48db5f42ba348d1f5d5afdc54c6c4cc758e676926c7cd327045749517d \
+ --hash=sha256:db88156fcf544cdbf0d95588051515cfdfd4c876fc66444eb98bceb5d6db76de \
+ --hash=sha256:de550d129f18d8ab819651ffe4f38b1b713c7e116707de3c0c6400d0ef34fbc1 \
+ --hash=sha256:e0af85773850417d994d019741239b901b22c6680206f46a34766926e466141d \
+ --hash=sha256:e3c4f84b24a1fcba435157d111c4b755099c6ff00a3daee1ad281817de75ed11 \
+ --hash=sha256:e3dd5fe19c9e0ac818a9c7f132a5e43c1339ec1cbbfecb1a938bd3a47875b7c9 \
+ --hash=sha256:e69aa6805905807186eb00e66c6d97a935c928275182eb02ee40ba00da9623b2 \
+ --hash=sha256:e80807d72f96b96ad5588cb85c75616e4f2795a7737d4630784c51497beb7776 \
+ --hash=sha256:ebe33f4ec1b2de38ceb225a1749a2965855bffeef435ba93cd2d5d540783bf2f \
+ --hash=sha256:f0cea5b1d3e6e77d71bd2b9972eb2446221a69dc52bb0b9c3c6f6e5700592d93 \
+ --hash=sha256:f15401d8d3dbf239e23c818afc10c7207f7b95f9a307e092122b6f86dd43209a \
+ --hash=sha256:f504d861d9f2a8f94020130adac88d66de93841707a23a86244263d1e54682f5 \
+ --hash=sha256:fc46da94826188ed45cb53bd8e3fc076ae22675aea2087843d4735627f867c6d \
+ --hash=sha256:fc7140d7a7386e6b545d41b7358f4d02b656d4053f5fa6859f92f4b9c2572c4d \
+ --hash=sha256:fcf3da95e93349e0647d48d4b36a12783105bcc74cb0c416952f9988410846a3 \
+ --hash=sha256:fe022f20bc4569ec66b63b3fb275a3d628d9d32da6326b2982584104db6d3086 \
+ --hash=sha256:ffb34ea45a82dd637c2c97ae1bbb920850c1e59bcae79ce1c15af531d83e7215
# via
# python3-saml
# xmlsec
@@ -1307,9 +1301,9 @@ opentelemetry-util-http==0.61b0 \
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
-packaging==26.0 \
- --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \
- --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+packaging==26.1 \
+ --hash=sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f \
+ --hash=sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de
# via
# bleach
# gunicorn
@@ -1429,9 +1423,9 @@ pip-licenses==5.5.5 \
--hash=sha256:60750c006adf7a0910347b726e8ee9fee3bc8d2e7c8307a5c4ec0776c8e2a276 \
--hash=sha256:f4c4c6d9e6a03612cf59f29f19dc8ab54904d82e055b8e191498f2279a224e14
# via -r src/backend/requirements.in
-platformdirs==4.9.4 \
- --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
- --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
+platformdirs==4.9.6 \
+ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
+ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
# via pint
ppf-datamatrix==0.2 \
--hash=sha256:819be65eae444b760e178d5761853f78f8e5fca14fec2809b5e3369978fa9244 \
@@ -1523,9 +1517,9 @@ pynacl==1.6.2 \
--hash=sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2 \
--hash=sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9
# via paramiko
-pypdf==6.10.0 \
- --hash=sha256:4c5a48ba258c37024ec2505f7e8fd858525f5502784a2e1c8d415604af29f6ef \
- --hash=sha256:90005e959e1596c6e6c84c8b0ad383285b3e17011751cedd17f2ce8fcdfc86de
+pypdf==6.10.2 \
+ --hash=sha256:7d09ce108eff6bf67465d461b6ef352dcb8d84f7a91befc02f904455c6eea11d \
+ --hash=sha256:aa53be9826655b51c96741e5d7983ca224d898ac0a77896e64636810517624aa
# via -r src/backend/requirements.in
pyphen==0.17.2 \
--hash=sha256:3a07fb017cb2341e1d9ff31b8634efb1ae4dc4b130468c7c39dd3d32e7c3affd \
@@ -1546,9 +1540,9 @@ python-dotenv==1.2.2 \
--hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \
--hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3
# via -r src/backend/requirements.in
-python-fsutil==0.16.0 \
- --hash=sha256:a60e16bad77e3f00c3dca95433209c823bc45e0ae4158e52969002f3c7957a18 \
- --hash=sha256:dc957a3541215baa935f66f6f15ceb9a8b7f803919c3d99fa57c818fc545f288
+python-fsutil==0.16.1 \
+ --hash=sha256:4cc78b9a1e64011cb4fdaeba531e457e649a6a9a560424e841426e47f3a153ad \
+ --hash=sha256:bda20802a19f6dc1bd221f6d2a79e0cd2b2c6eaf2b7c353a385c749917047442
# via django-maintenance-mode
python-ipware==3.0.0 \
--hash=sha256:9117b1c4dddcb5d5ca49e6a9617de2fc66aec2ef35394563ac4eecabdf58c062 \
@@ -1647,90 +1641,90 @@ qrcode[pil]==8.2 \
# via
# -r src/backend/requirements.in
# django-allauth
-rapidfuzz==3.14.3 \
- --hash=sha256:010e12e2411a4854b0434f920e72b717c43f8ec48d57e7affe5c42ecfa05dd0e \
- --hash=sha256:02821366d928e68ddcb567fed8723dad7ea3a979fada6283e6914d5858674850 \
- --hash=sha256:07aa0b5d8863e3151e05026a28e0d924accf0a7a3b605da978f0359bb804df43 \
- --hash=sha256:0e38828d1381a0cceb8a4831212b2f673d46f5129a1897b0451c883eaf4a1747 \
- --hash=sha256:152555187360978119e98ce3e8263d70dd0c40c7541193fc302e9b7125cf8f58 \
- --hash=sha256:1704fc70d214294e554a2421b473779bcdeef715881c5e927dc0f11e1692a0ff \
- --hash=sha256:1b7ef2f4b8583a744338a18f12c69693c194fb6777c0e9ada98cd4d9e8f09d10 \
- --hash=sha256:1b86daa7419b5e8b180690efd1fdbac43ff19230803282521c5b5a9c83977655 \
- --hash=sha256:1d83b8b712fa37e06d59f29a4b49e2e9e8635e908fbc21552fe4d1163db9d2a1 \
- --hash=sha256:1e6eefec45625c634926a9fd46c9e4f31118ac8f3156fff9494422cee45207e6 \
- --hash=sha256:1ec0c8c0c3d4f97ced46b2e191e883f8c82dbbf6d5ebc1842366d7eff13cd5a6 \
- --hash=sha256:1f1925619627f8798f8c3a391d81071336942e5fe8467bc3c567f982e7ce2897 \
- --hash=sha256:1faa0f8f76ba75fd7b142c984947c280ef6558b5067af2ae9b8729b0a0f99ede \
- --hash=sha256:2491937177868bc4b1e469087601d53f925e8d270ccc21e07404b4b5814b7b5f \
- --hash=sha256:2dc37bc20272f388b8c3a4eba4febc6e77e50a8f450c472def4751e7678f55e4 \
- --hash=sha256:32eeafa3abce138bb725550c0e228fc7eaeec7059aa8093d9cbbec2b58c2371a \
- --hash=sha256:33a325ed0e8e1aa20c3e75f8ab057a7b248fdea7843c2a19ade0008906c14af0 \
- --hash=sha256:33da4bbaf44e9755b0ce192597f3bde7372fe2e381ab305f41b707a95ac57aa7 \
- --hash=sha256:37d3c653af15cd88592633e942f5407cb4c64184efab163c40fcebad05f25141 \
- --hash=sha256:3fecce764cf5a991ee2195a844196da840aba72029b2612f95ac68a8b74946bf \
- --hash=sha256:43d0305c36f504232f18ea04e55f2059bb89f169d3119c4ea96a0e15b59e2a91 \
- --hash=sha256:43e38c1305cffae8472572a0584d4ffc2f130865586a81038ca3965301f7c97c \
- --hash=sha256:442125473b247227d3f2de807a11da6c08ccf536572d1be943f8e262bae7e4ea \
- --hash=sha256:442cba39957a008dfc5bdef21a9c3f4379e30ffb4e41b8555dbaf4887eca9300 \
- --hash=sha256:489ce98a895c98cad284f0a47960c3e264c724cb4cfd47a1430fa091c0c25204 \
- --hash=sha256:4ad73afb688b36864a8d9b7344a9cf6da186c471e5790cbf541a635ee0f457f2 \
- --hash=sha256:4b39921df948388a863f0e267edf2c36302983459b021ab928d4b801cbe6a421 \
- --hash=sha256:4e49c9e992bc5fc873bd0fff7ef16a4405130ec42f2ce3d2b735ba5d3d4eb70f \
- --hash=sha256:52619d25a09546b8db078981ca88939d72caa6b8701edd8b22e16482a38e799f \
- --hash=sha256:54fa03062124e73086dae66a3451c553c1e20a39c077fd704dc7154092c34c63 \
- --hash=sha256:56fefb4382bb12250f164250240b9dd7772e41c5c8ae976fd598a32292449cc5 \
- --hash=sha256:576e4b9012a67e0bf54fccb69a7b6c94d4e86a9540a62f1a5144977359133583 \
- --hash=sha256:57f878330c8d361b2ce76cebb8e3e1dc827293b6abf404e67d53260d27b5d941 \
- --hash=sha256:5cfc3d57abd83c734d1714ec39c88a34dd69c85474918ebc21296f1e61eb5ca8 \
- --hash=sha256:656e52b054d5b5c2524169240e50cfa080b04b1c613c5f90a2465e84888d6f15 \
- --hash=sha256:685c93ea961d135893b5984a5a9851637d23767feabe414ec974f43babbd8226 \
- --hash=sha256:6a014ba09657abfcfeed64b7d09407acb29af436d7fc075b23a298a7e4a6b41c \
- --hash=sha256:6c5f545f454871e6af05753a0172849c82feaf0f521c5ca62ba09e1b382d6382 \
- --hash=sha256:6de00eb84c71476af7d3110cf25d8fe7c792d7f5fa86764ef0b4ca97e78ca3ed \
- --hash=sha256:73b07566bc7e010e7b5bd490fb04bb312e820970180df6b5655e9e6224c137db \
- --hash=sha256:769f31c60cd79420188fcdb3c823227fc4a6deb35cafec9d14045c7f6743acae \
- --hash=sha256:7ba009977601d8b0828bfac9a110b195b3e4e79b350dcfa48c11269a9f1918a0 \
- --hash=sha256:7ccbf68100c170e9a0581accbe9291850936711548c6688ce3bfb897b8c589ad \
- --hash=sha256:7cf174b52cb3ef5d49e45d0a1133b7e7d0ecf770ed01f97ae9962c5c91d97d23 \
- --hash=sha256:7d9af908c2f371bfb9c985bd134e295038e3031e666e4b2ade1e7cb7f5af2f1a \
- --hash=sha256:834d1e818005ed0d4ae38f6b87b86fad9b0a74085467ece0727d20e15077c094 \
- --hash=sha256:8383b6d0d92f6cd008f3c9216535be215a064b2cc890398a678b56e6d280cb63 \
- --hash=sha256:89acb8cbb52904f763e5ac238083b9fc193bed8d1f03c80568b20e4cef43a519 \
- --hash=sha256:948b00e8476a91f510dd1ec07272efc7d78c275d83b630455559671d4e33b678 \
- --hash=sha256:9ec02e62ae765a318d6de38df609c57fc6dacc65c0ed1fd489036834fd8a620c \
- --hash=sha256:a0a28add871425c2fe94358c6300bbeb0bc2ed828ca003420ac6825408f5a424 \
- --hash=sha256:a2135b138bcdcb4c3742d417f215ac2d8c2b87bde15b0feede231ae95f09ec41 \
- --hash=sha256:adb44d996fc610c7da8c5048775b21db60dd63b1548f078e95858c05c86876a3 \
- --hash=sha256:b5100fd6bcee4d27f28f4e0a1c6b5127bc8ba7c2a9959cad9eab0bf4a7ab3329 \
- --hash=sha256:b9fcd4d751a4fffa17aed1dde41647923c72c74af02459ad1222e3b0022da3a1 \
- --hash=sha256:beda6aa9bc44d1d81242e7b291b446be352d3451f8217fcb068fc2933927d53b \
- --hash=sha256:c5fb2d978a601820d2cfd111e2c221a9a7bfdf84b41a3ccbb96ceef29f2f1ac7 \
- --hash=sha256:c71ce6d4231e5ef2e33caa952bfe671cb9fd42e2afb11952df9fad41d5c821f9 \
- --hash=sha256:c7bd1816db05d6c5ffb3a4df0a2b7b56fb8c81ef584d08e37058afa217da91b1 \
- --hash=sha256:c7e40c0a0af02ad6e57e89f62bef8604f55a04ecae90b0ceeda591bbf5923317 \
- --hash=sha256:cc594bbcd3c62f647dfac66800f307beaee56b22aaba1c005e9c4c40ed733923 \
- --hash=sha256:cc65e72790ddfd310c2c8912b45106e3800fefe160b0c2ef4d6b6fec4e826457 \
- --hash=sha256:cec3c0da88562727dd5a5a364bd9efeb535400ff0bfb1443156dd139a1dd7b50 \
- --hash=sha256:cfe8df315ab4e6db4e1be72c5170f8e66021acde22cd2f9d04d2058a9fd8162e \
- --hash=sha256:d1fa009f8b1100e4880868137e7bf0501422898f7674f2adcd85d5a67f041296 \
- --hash=sha256:d7843a1abf0091773a530636fdd2a49a41bcae22f9910b86b4f903e76ddc82dc \
- --hash=sha256:da2a007434323904719158e50f3076a4dadb176ce43df28ed14610c773cc9825 \
- --hash=sha256:dbcb726064b12f356bf10fffdb6db4b6dce5390b23627c08652b3f6e49aa56ae \
- --hash=sha256:dc8c07801df5206b81ed6bd6c35cb520cf9b6c64b9b0d19d699f8633dc942897 \
- --hash=sha256:dea2d113e260a5da0c4003e0a5e9fdf24a9dc2bb9eaa43abd030a1e46ce7837d \
- --hash=sha256:dea97ac3ca18cd3ba8f3d04b5c1fe4aa60e58e8d9b7793d3bd595fdb04128d7a \
- --hash=sha256:dee362e7e79bae940a5e2b3f6d09c6554db6a4e301cc68343886c08be99844f1 \
- --hash=sha256:e195a77d06c03c98b3fc06b8a28576ba824392ce40de8c708f96ce04849a052e \
- --hash=sha256:e6b5e3036976f0fde888687d91be86d81f9ac5f7b02e218913c38285b756be6c \
- --hash=sha256:e6c31a4aa68cfa75d7eede8b0ed24b9e458447db604c2db53f358be9843d81d3 \
- --hash=sha256:e805e52322ae29aa945baf7168b6c898120fbc16d2b8f940b658a5e9e3999253 \
- --hash=sha256:ea188aa00e9bcae8c8411f006a5f2f06c4607a02f24eab0d8dc58566aa911f35 \
- --hash=sha256:ecd7453e02cf072258c3a6b8e930230d789d5d46cc849503729f9ce475d0e785 \
- --hash=sha256:ef6bf930b947bd0735c550683939a032090f1d688dfd8861d6b45307b96fd5c5 \
- --hash=sha256:f3d15d8527e2b293e38ce6e437631af0708df29eafd7c9fc48210854c94472f9 \
- --hash=sha256:f3eb0ff3b75d6fdccd40b55e7414bb859a1cda77c52762c9c82b85569f5088e7 \
- --hash=sha256:fa7c8f26f009f8c673fbfb443792f0cf8cf50c4e18121ff1e285b5e08a94fbdb \
- --hash=sha256:fce3152f94afcfd12f3dd8cf51e48fa606e3cb56719bccebe3b401f43d0714f9
+rapidfuzz==3.14.5 \
+ --hash=sha256:0084b687b02b4e569b46d8d6d4ad25659528e6081cd6d067ca453a69035f07e4 \
+ --hash=sha256:01550fe5f60fd176aa66b7611289d46dc4aa4b1b904874c7b6d1d54e581c5ec1 \
+ --hash=sha256:0298d357e2bc59d572da4db0bc631009b6f8f6c9bc8c11e99a12b833f16b6575 \
+ --hash=sha256:068b3e965ca9d9ee4debe40001ae7c3938ba646308afd33cf0c66618147db65c \
+ --hash=sha256:071d96b957a33b9296b9284b6350a0fb6d030b154a04efd7c15e56b98b79a517 \
+ --hash=sha256:09d6c9ba091854f07817055d795d604179c12a8f308ba4c7d56f3719dfea1646 \
+ --hash=sha256:0d3378f471ef440473a396ce2f8e97ee12f89a78b495540e0a5617bbfe895638 \
+ --hash=sha256:0ebd1a18e2e47bc0b292a07e6ed9c3642f8aaa672d12253885f599b50807a4f9 \
+ --hash=sha256:0f23e37019ec07712d58976b1ab2b889f8649a7f7c2f626a2f34ea9139e79279 \
+ --hash=sha256:11bfc2ed8fbe4ab86bd516fadefab126f90e6dcadffa761739fcb304707dfd35 \
+ --hash=sha256:13cb79c23ef5516e4c4e3830877be8b19aa75203636be1163d690d37803f6504 \
+ --hash=sha256:17a34330cd2a538c1ce5d400b61ba358c5b72c654b928ff87b362e88f8b864c7 \
+ --hash=sha256:1a31cc6d7d03e7318a0974c038959c59e19c752b81115f2e9138b3331cd64d45 \
+ --hash=sha256:1e910eebca9fd0eba245c0555e764597e8a0cccb673a92da2dc2397050725f48 \
+ --hash=sha256:1e989f86113be66574113b9c7bdf4793f3f863d248e47d911b355e05ca6b6b10 \
+ --hash=sha256:2e83cd2e25bb4edd97b689d9979d9c3acccdaaf26ceac08212ceece202febcfa \
+ --hash=sha256:39ef8658aaf67d51667e7bdaf7096f432333377d8302ac43c70b5df8a4cf89b8 \
+ --hash=sha256:3d50e5861872935fece391351cbb5ba21d1bced277cf5e1143d207a0a35f1925 \
+ --hash=sha256:3e91dcd2549b8f8d843f98ba03a17e01f3d8b72ce942adbbb6761bc58ffce813 \
+ --hash=sha256:419e4397a36e2665ec992d8d64c20ba4b2a42500c76ecadeca78a4f19cb9cc32 \
+ --hash=sha256:440d30faaf682ca496170a7f0cc5453ec942e3e079f0fd802c9a7f938dfb50a3 \
+ --hash=sha256:46b92a9970dcc34f0096901c792644094cab49554ac3547f35e3aebbdf0a3610 \
+ --hash=sha256:478b59bb018a6780d73f33e38d0b3ec5e968a6c1ed42876b993dd456b7aa20e8 \
+ --hash=sha256:48bee0b91bebfaec41e1081e351000659ab7570cc4598d617aa04d5bf827f9e6 \
+ --hash=sha256:4900143d82071bdda533b00300c40b14b963ff826b3642cc463b6dd0f036585e \
+ --hash=sha256:4a60f0057231188e3bd30216f7b4e0f279b11fa4ec818bb6c1d9f014d1562fbc \
+ --hash=sha256:56227a61fd3d17b0cd9793132431f3a3d07c8654be96794ba9f89fe0fc8b2d09 \
+ --hash=sha256:578e6051f6d5e6200c259b47a103cf06bb875ab5814d17333fc0b5c290b22f4c \
+ --hash=sha256:593c00dac4e30231c35bf3b4f1da8ec0998762e9e94425586a5d636fcd57f9d0 \
+ --hash=sha256:59b3dba758661a318995655435c6ab20a04ade79fa51e75bc8dc107cac8df280 \
+ --hash=sha256:5ab449c9abd0d4e1f8145dce0798a4c822a1a1933d613c764a641bea88b8bdab \
+ --hash=sha256:5dfa89d78f22cd773054caff44827b846161a29f2dcf7e78b8f90d086621e502 \
+ --hash=sha256:649712823f3abcdc48427147a5384fac15623ba435d0013959b52e6462521397 \
+ --hash=sha256:667f40fe9c81ad129b198d236881b00dd9e8314d9cc72d03c3e16bdfe5879051 \
+ --hash=sha256:6737b35d5af7479c5bf9710f7b17edd9d2c43128d974d25fb4ea653e42c64609 \
+ --hash=sha256:67f3f9d2b444268ab53e47d31bab89954888d23c04c6789f2c727e51fe4b1d13 \
+ --hash=sha256:7092a216728f80c960bd6b3807275d1ee318b168986bd5dc523349581d4890b8 \
+ --hash=sha256:738c96944d076deeaff70e92b65696ab4f7ecb8081d7791c5403a3257dfaf8ff \
+ --hash=sha256:77eac0526899b3c3ad1454bb2b03cdb491d67358ec8ef0c9c48bd61b632b431d \
+ --hash=sha256:7d5ca9c7832e6879a707296d1463685f7c243a27846227044504741640caec66 \
+ --hash=sha256:7e580cb04ad849ae9b786fa21383c6b994b6e6c1444ad1cb9f22392759d72741 \
+ --hash=sha256:8166efddea49fdbc61185559f47593239e4794fd7c9044dd5a789d1a90af852d \
+ --hash=sha256:823b1b9d9230809d8edcc18872770764bfe8ef4357995e16744047c8ccf0e489 \
+ --hash=sha256:88b7d31ff1cc5e9bc0e4406e6b1fa00b6d37163d50bb58091e9b976ff1129faa \
+ --hash=sha256:8c90cdf8516d9057e502aa6003cea71cf5ec27cc44699ca52412b502a04761bb \
+ --hash=sha256:8ce1d850b3c0178440efde9e884d98421b5e87ff925f364d6d79e23910d7593f \
+ --hash=sha256:8f4a8f5cc84c7ad6bffa0e9947b33eb343ad66e6b53e94fe54378a5508c5ed53 \
+ --hash=sha256:93d8da883a35116d6813432177f35e570db5b0a5e30ecb0cbd7cb39c815735df \
+ --hash=sha256:95d937e74c1a7a1287dfb03b62a827be08ede10a155cf1af73bbf47f2b73ee6e \
+ --hash=sha256:9669753caef7fdc6529f6adcc5883ed98d65976445d9322e7dbdb6b697feee13 \
+ --hash=sha256:97131ab2be39043054ee28d99e09efe316e6d53449b7e962dfcf3c2de8b2b246 \
+ --hash=sha256:97c6d85283629646fa87acc22c66b30ea9d4de7f6fdf887daa2e30fa041829b5 \
+ --hash=sha256:9981d38a703b86f0e315a3cd229fd1906fe1d91c989ed121fb975b3c849f89f5 \
+ --hash=sha256:9ad37a0be705b544af6296da8edddc260d10a8ae5462530fc9991f66498bb1f9 \
+ --hash=sha256:a2ae6f53f99c9a0eca7a0afc5b4e45fc73bc1dd4ac74c00509031d76df80ed98 \
+ --hash=sha256:aac0ad28c686a5e72b81668b906c030ee28050b244544b8af68e12fb32543895 \
+ --hash=sha256:af3b859726cd3374287e405e14b9634563c078c5531a4f62375508addebddad1 \
+ --hash=sha256:af6a90a4ed2a48fa1a2d17e9d824e6c7c950bea5bad0b707c77fd55751e6bfef \
+ --hash=sha256:b002c7994cc9f2bc9d9856f0fbaee6e8072c983873846c92f25cefba5b2a925f \
+ --hash=sha256:b486b5218808f6f4dc471b114b1054e63553db69705c97da0271f47bd706aedd \
+ --hash=sha256:b9c6bd754d11f6e78ac54e3d86b4b11dc1ba2f13e5fc958899574532897f5a99 \
+ --hash=sha256:ba10ac57884ce82112f7ed910b67e7fb6072d8ef2c06e30dc63c0f604a112e0e \
+ --hash=sha256:bf5018938208d4597b2e679a4f8cff9fd252f1df53583130ae56281a21801b64 \
+ --hash=sha256:c0919d1f89ddf91129906705723118ea09754171e4116f5a5dbc667c7bc9b261 \
+ --hash=sha256:c5801a89604c65ab4cc9e91b23bc4076d0ca80efd8c976fb63843d7879a85d7f \
+ --hash=sha256:c84af70bcf34e99aee894e46a0f1ac77f17d0ef828179c387407642e2466d28a \
+ --hash=sha256:cb2829fedd672dd7107267189dabe2bbe07972801d636014417c6861eb89e358 \
+ --hash=sha256:d45e06f60729e07d9b20c205f7e5cff90b6ef2584e852eecf46e045aea69627d \
+ --hash=sha256:d7ca16637c0ede8243f84074044bd0b2335a0341421f8227c85756de2d18c819 \
+ --hash=sha256:d8375e3da319593389727c3187ccaf3e0e84199accc530866b8e0f2b79af05e9 \
+ --hash=sha256:dfa552338f51aec280f17b02d28bace1e162d1a84ccd80e3339a57f98aedb56b \
+ --hash=sha256:dfef96543ced67d9513a422755db422ae1dc34dade0a1485e0b43e7342ed3ebf \
+ --hash=sha256:e012177c8e8a8a0754ae0d6027d63042aa5ff036d9f40f07cb3466a6082e21b8 \
+ --hash=sha256:e251126d48615e1f02b4a178f2cd0cd4f0332b8a019c01a2e10480f7552554b4 \
+ --hash=sha256:e52da10236aa6212de71b9e170bace65b64b129c0dea7fc243d6c9ce976f5074 \
+ --hash=sha256:eacb434410b8d9ca99a8d42352ef085cf423e3c76c1f0b86be2fcba3bff2952c \
+ --hash=sha256:ebd8fd343bf8492a1e60bcb6dc99f90f74f65d98d8241a6b3e1fed225b76ecd6 \
+ --hash=sha256:f0b2af76b7e7060c09e1a0dfa9410eb19369cbe6164509bff2ef94094b54d2b6 \
+ --hash=sha256:f2073495a7f9b75e57e600747ac09510d67683fd64d3228e009740b7ef88f9fe \
+ --hash=sha256:f4c1bca487a17fe4226b4ffb2d30e799d2b274d692cffa76bd0746f56235fca3 \
+ --hash=sha256:f9fff308486bbd2c8c24f25e8e152c7594d3fe8db265a2d6a1ce24d58671127f \
+ --hash=sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d \
+ --hash=sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a
# via -r src/backend/requirements.in
redis==7.4.0 \
--hash=sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad \
@@ -1873,9 +1867,9 @@ s3transfer==0.16.0 \
--hash=sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe \
--hash=sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920
# via boto3
-sentry-sdk==2.57.0 \
- --hash=sha256:4be8d1e71c32fb27f79c577a337ac8912137bba4bcbc64a4ec1da4d6d8dc5199 \
- --hash=sha256:812c8bf5ff3d2f0e89c82f5ce80ab3a6423e102729c4706af7413fd1eb480585
+sentry-sdk==2.58.0 \
+ --hash=sha256:688d1c704ddecf382ea3326f21a67453d4caa95592d722b7c780a36a9d23109e \
+ --hash=sha256:c1144d947352d54e5b7daa63596d9f848adf684989c06c4f5a659f0c85a18f6f
# via
# -r src/backend/requirements.in
# django-q-sentry
@@ -2126,9 +2120,9 @@ xmlsec==1.3.17 \
# via
# -r src/backend/requirements.in
# python3-saml
-zipp==3.23.0 \
- --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \
- --hash=sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166
+zipp==3.23.1 \
+ --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \
+ --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110
# via importlib-metadata
zopfli==0.4.1 \
--hash=sha256:02086247dd12fda929f9bfe8b3962b6bcdbfc8c82e99255aebcf367867cf0760 \
diff --git a/src/frontend/CHANGELOG.md b/src/frontend/CHANGELOG.md
index 7fd7be38d5..de7a54ed88 100644
--- a/src/frontend/CHANGELOG.md
+++ b/src/frontend/CHANGELOG.md
@@ -2,6 +2,31 @@
This file contains historical changelog information for the InvenTree UI components library.
+### 0.11.3 - April 2026
+
+Exposes additional type definitions related to rendering drawers from tables:
+- `DetailDrawer`
+- `TableState`
+
+Also exposes `StylishText`, which is required downstream for rendering the DetailDrawer component, and is used in a number of places within the InvenTree UI.
+
+### 0.11.2 - April 2026
+
+Exposes additional type definitions related to tables and filters:
+
+- TableFilterChoice
+- TableFilterType
+- TableFilter
+- FilterSetState
+
+### 0.11.1 - April 2026
+
+Fixes dependency issues for the `InvenTreeTable` component, which were introduced in `0.11.0`. This ensures that the component works correctly and does not cause issues with plugin builds.
+
+### 0.11.0 - April 2026
+
+Adds the `InvenTreeTable` component, which provides plugins with a method of implementing an API-driven data table which is consistent with the rest of the InvenTree UI. This component supports features such as pagination, sorting, and filtering, and can be used to display data from the InvenTree API in a tabular format.
+
### 0.10.1 - April 2026
Allows plugins to specify custom model rendering functions within the data import wizard, allowing import of data models not defined in the core InvenTree codebase.
diff --git a/src/frontend/src/components/Boundary.tsx b/src/frontend/lib/components/Boundary.tsx
similarity index 73%
rename from src/frontend/src/components/Boundary.tsx
rename to src/frontend/lib/components/Boundary.tsx
index b96ec01108..38b858f696 100644
--- a/src/frontend/src/components/Boundary.tsx
+++ b/src/frontend/lib/components/Boundary.tsx
@@ -1,5 +1,5 @@
import { t } from '@lingui/core/macro';
-import { Alert } from '@mantine/core';
+import { Alert, Stack } from '@mantine/core';
import { ErrorBoundary, type FallbackRender } from '@sentry/react';
import { IconExclamationCircle } from '@tabler/icons-react';
import { type ReactNode, useCallback } from 'react';
@@ -11,9 +11,12 @@ export function DefaultFallback({
}
- title={`${t`Error rendering component`}: ${title}`}
+ title={`INVE-E17: ${t`Error rendering component`}: ${title}`}
>
- {t`An error occurred while rendering this component. Refer to the console for more information.`}
+
+ {t`An error occurred while rendering this component. Refer to the console for more information.`}
+ {t`Try reloading the page, or contact your administrator if the problem persists.`}
+
);
}
diff --git a/src/frontend/src/components/buttons/CopyButton.tsx b/src/frontend/lib/components/CopyButton.tsx
similarity index 89%
rename from src/frontend/src/components/buttons/CopyButton.tsx
rename to src/frontend/lib/components/CopyButton.tsx
index a43b4b3099..da72f82a26 100644
--- a/src/frontend/src/components/buttons/CopyButton.tsx
+++ b/src/frontend/lib/components/CopyButton.tsx
@@ -10,8 +10,7 @@ import {
Text,
Tooltip
} from '@mantine/core';
-
-import { InvenTreeIcon } from '../../functions/icons';
+import { IconCheck, IconCopy } from '@tabler/icons-react';
import type { JSX } from 'react';
@@ -62,11 +61,7 @@ export function CopyButton({
variant={copied ? 'transparent' : (variant ?? 'transparent')}
size={size ?? 'sm'}
>
- {copied ? (
-
- ) : (
-
- )}
+ {copied ? : }
{content}
{label && (
diff --git a/src/frontend/src/tables/CopyableCell.tsx b/src/frontend/lib/components/CopyableCell.tsx
similarity index 95%
rename from src/frontend/src/tables/CopyableCell.tsx
rename to src/frontend/lib/components/CopyableCell.tsx
index e90d122296..eee9b0e26f 100644
--- a/src/frontend/src/tables/CopyableCell.tsx
+++ b/src/frontend/lib/components/CopyableCell.tsx
@@ -1,6 +1,6 @@
import { Group } from '@mantine/core';
import { useState } from 'react';
-import { CopyButton } from '../components/buttons/CopyButton';
+import { CopyButton } from './CopyButton';
/**
* A wrapper component that adds a copy button to cell content on hover
diff --git a/src/frontend/lib/components/InvenTreeTable.tsx b/src/frontend/lib/components/InvenTreeTable.tsx
new file mode 100644
index 0000000000..298d0b994e
--- /dev/null
+++ b/src/frontend/lib/components/InvenTreeTable.tsx
@@ -0,0 +1,63 @@
+import { Alert } from '@mantine/core';
+import {
+ INVENTREE_PLUGIN_VERSION,
+ type InvenTreePluginContext
+} from '../types/Plugins';
+import type {
+ InvenTreeTableProps,
+ TableColumn,
+ TableState
+} from '../types/Tables';
+
+/**
+ * Wrapper function which allows plugins to render an InvenTree component instance directly,
+ * in a similar way to the standard InvenTreeTable component.
+ *
+ * Note: The InventreePluginContext "context" object must be provided when rendering the table
+ *
+ */
+
+export default function InvenTreeTable({
+ url,
+ tableState,
+ tableData,
+ columns,
+ props,
+ context
+}: {
+ url?: string;
+ tableState: TableState;
+ tableData?: any[];
+ columns: TableColumn[];
+ props: InvenTreeTableProps;
+ context: InvenTreePluginContext;
+}) {
+ if (!context?.tables?.renderTable) {
+ return (
+
+ {
+ 'The component cannot be rendered because the plugin context is missing the "renderTable" function.'
+ }
+
+ {
+ 'This means that the InvenTree UI library version is incompatible with this plugin version.'
+ }
+
+ Plugin Version: {INVENTREE_PLUGIN_VERSION}
+
+ UI Version: {context?.version?.inventree || 'unknown'}
+
+
+ );
+ }
+
+ return context?.tables.renderTable({
+ url: url,
+ tableState: tableState,
+ tableData: tableData,
+ columns: columns,
+ props: props,
+ api: context.api,
+ navigate: context.navigate
+ });
+}
diff --git a/src/frontend/src/components/items/StylishText.tsx b/src/frontend/lib/components/StylishText.tsx
similarity index 100%
rename from src/frontend/src/components/items/StylishText.tsx
rename to src/frontend/lib/components/StylishText.tsx
diff --git a/src/frontend/src/tables/ColumnSelect.tsx b/src/frontend/lib/components/TableColumnSelect.tsx
similarity index 100%
rename from src/frontend/src/tables/ColumnSelect.tsx
rename to src/frontend/lib/components/TableColumnSelect.tsx
diff --git a/src/frontend/src/components/nav/DetailDrawer.css.ts b/src/frontend/lib/components/nav/DetailDrawer.css.ts
similarity index 100%
rename from src/frontend/src/components/nav/DetailDrawer.css.ts
rename to src/frontend/lib/components/nav/DetailDrawer.css.ts
diff --git a/src/frontend/src/components/nav/DetailDrawer.tsx b/src/frontend/lib/components/nav/DetailDrawer.tsx
similarity index 90%
rename from src/frontend/src/components/nav/DetailDrawer.tsx
rename to src/frontend/lib/components/nav/DetailDrawer.tsx
index dcc7d77e6a..d2d2b0d2d1 100644
--- a/src/frontend/src/components/nav/DetailDrawer.tsx
+++ b/src/frontend/lib/components/nav/DetailDrawer.tsx
@@ -4,10 +4,11 @@ import { useCallback, useMemo } from 'react';
import { Link, Route, Routes, useNavigate, useParams } from 'react-router-dom';
import type { To } from 'react-router-dom';
-import type { UiSizeType } from '@lib/types/Core';
+import type { UiSizeType } from '../../types/Core';
+
import { useShallow } from 'zustand/react/shallow';
-import { useLocalState } from '../../states/LocalState';
-import { StylishText } from '../items/StylishText';
+import { useLocalLibState } from '../../states/LocalLibState';
+import { StylishText } from '../StylishText';
import * as classes from './DetailDrawer.css';
/**
@@ -38,7 +39,7 @@ function DetailDrawerComponent({
const content = renderContent(id);
const opened = useMemo(() => !!id && !!content, [id, content]);
- const [detailDrawerStack, addDetailDrawer] = useLocalState(
+ const [detailDrawerStack, addDetailDrawer] = useLocalLibState(
useShallow((state) => [state.detailDrawerStack, state.addDetailDrawer])
);
@@ -91,7 +92,7 @@ export function DetailDrawerLink({
to,
text
}: Readonly<{ to: To; text: string }>) {
- const addDetailDrawer = useLocalState(
+ const addDetailDrawer = useLocalLibState(
useShallow((state) => state.addDetailDrawer)
);
diff --git a/src/frontend/lib/enums/ApiEndpoints.tsx b/src/frontend/lib/enums/ApiEndpoints.tsx
index 8a1a80ad73..addb35378b 100644
--- a/src/frontend/lib/enums/ApiEndpoints.tsx
+++ b/src/frontend/lib/enums/ApiEndpoints.tsx
@@ -153,6 +153,7 @@ export enum ApiEndpoints {
stock_merge = 'stock/merge/',
stock_assign = 'stock/assign/',
stock_status = 'stock/status/',
+ stock_convert = 'stock/:id/convert/',
stock_install = 'stock/:id/install/',
stock_uninstall = 'stock/:id/uninstall/',
stock_serialize = 'stock/:id/serialize/',
diff --git a/src/frontend/lib/enums/ModelType.tsx b/src/frontend/lib/enums/ModelType.tsx
index ea85b542fc..191d04545e 100644
--- a/src/frontend/lib/enums/ModelType.tsx
+++ b/src/frontend/lib/enums/ModelType.tsx
@@ -38,3 +38,16 @@ export enum ModelType {
selectionentry = 'selectionentry',
error = 'error'
}
+
+export enum PluginPanelKey {
+ // settings / admin
+ admincenter = 'admincenter',
+ systemsettings = 'systemsettings',
+ usersettings = 'usersettings',
+ // generic
+ core = 'core',
+ // landing pages
+ purchasing = 'purchasing',
+ sales = 'sales',
+ manufacturing = 'manufacturing'
+}
diff --git a/src/frontend/lib/enums/Roles.tsx b/src/frontend/lib/enums/Roles.tsx
index efa6c4a04b..0f5aedd94c 100644
--- a/src/frontend/lib/enums/Roles.tsx
+++ b/src/frontend/lib/enums/Roles.tsx
@@ -5,6 +5,7 @@ import { t } from '@lingui/core/macro';
*/
export enum UserRoles {
admin = 'admin',
+ bom = 'bom',
build = 'build',
part = 'part',
part_category = 'part_category',
diff --git a/src/frontend/lib/functions/Forms.tsx b/src/frontend/lib/functions/Forms.tsx
new file mode 100644
index 0000000000..78ad55ce2e
--- /dev/null
+++ b/src/frontend/lib/functions/Forms.tsx
@@ -0,0 +1,47 @@
+import type { ApiEndpoints } from '../enums/ApiEndpoints';
+import type { PathParams } from '../types/Core';
+import type { ApiFormFieldSet, ApiFormFieldType } from '../types/Forms';
+import { apiUrl } from './Api';
+
+/**
+ * Construct an API url from the provided ApiFormProps object
+ */
+export function constructFormUrl(
+ url: ApiEndpoints | string,
+ pk?: string | number,
+ pathParams?: PathParams,
+ queryParams?: URLSearchParams
+): string {
+ let formUrl = apiUrl(url, pk, pathParams);
+
+ if (queryParams) {
+ formUrl += `?${queryParams.toString()}`;
+ }
+
+ return formUrl;
+}
+
+export type NestedDict = { [key: string]: string | number | NestedDict };
+
+export function mapFields(
+ fields: ApiFormFieldSet,
+ fieldFunction: (path: string, value: ApiFormFieldType, key: string) => any,
+ _path?: string
+): NestedDict {
+ const res: NestedDict = {};
+
+ for (const [k, v] of Object.entries(fields)) {
+ const path = _path ? `${_path}.${k}` : k;
+ let value: any;
+
+ if (v.field_type === 'nested object' && v.children) {
+ value = mapFields(v.children, fieldFunction, path);
+ } else {
+ value = fieldFunction(path, v, k);
+ }
+
+ if (value !== undefined) res[k] = value;
+ }
+
+ return res;
+}
diff --git a/src/frontend/lib/functions/Notification.tsx b/src/frontend/lib/functions/Notification.tsx
new file mode 100644
index 0000000000..8e16570e7c
--- /dev/null
+++ b/src/frontend/lib/functions/Notification.tsx
@@ -0,0 +1,50 @@
+import { t } from '@lingui/core/macro';
+import { notifications } from '@mantine/notifications';
+
+/**
+ * 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',
+ id: 'not-implemented'
+ });
+}
+
+/**
+ * Show a notification that the user does not have permission to perform the action
+ */
+export function permissionDenied() {
+ notifications.show({
+ title: t`Permission Denied`,
+ message: t`You do not have permission to perform this action`,
+ color: 'red'
+ });
+}
+
+/**
+ * Display a notification on an invalid return code
+ */
+export function invalidResponse(returnCode: number) {
+ // TODO: Specific return code messages
+ notifications.show({
+ title: t`Invalid Return Code`,
+ message: t`Server returned status ${returnCode}`,
+ color: 'red'
+ });
+}
+
+/**
+ * Display a notification on timeout
+ */
+export function showTimeoutNotification() {
+ notifications.show({
+ title: t`Timeout`,
+ message: t`The request timed out`,
+ color: 'red'
+ });
+}
diff --git a/src/frontend/src/functions/tables.tsx b/src/frontend/lib/functions/String.tsx
similarity index 100%
rename from src/frontend/src/functions/tables.tsx
rename to src/frontend/lib/functions/String.tsx
diff --git a/src/frontend/src/hooks/UseFilterSet.tsx b/src/frontend/lib/hooks/UseFilterSet.tsx
similarity index 91%
rename from src/frontend/src/hooks/UseFilterSet.tsx
rename to src/frontend/lib/hooks/UseFilterSet.tsx
index 9d0300cb46..80a7791f1e 100644
--- a/src/frontend/src/hooks/UseFilterSet.tsx
+++ b/src/frontend/lib/hooks/UseFilterSet.tsx
@@ -1,8 +1,8 @@
-import type { FilterSetState, TableFilter } from '@lib/types/Filters';
import { useLocalStorage } from '@mantine/hooks';
import { useCallback, useMemo } from 'react';
+import type { FilterSetState, TableFilter } from '../types/Filters';
-export function useFilterSet(
+export default function useFilterSet(
filterKey: string,
initialFilters?: TableFilter[]
): FilterSetState {
diff --git a/src/frontend/src/hooks/UseTable.tsx b/src/frontend/lib/hooks/UseTable.tsx
similarity index 86%
rename from src/frontend/src/hooks/UseTable.tsx
rename to src/frontend/lib/hooks/UseTable.tsx
index 49a2c50569..52bdd6afa4 100644
--- a/src/frontend/src/hooks/UseTable.tsx
+++ b/src/frontend/lib/hooks/UseTable.tsx
@@ -1,10 +1,9 @@
import { randomId } from '@mantine/hooks';
import { useCallback, useMemo, useState } from 'react';
-import { useSearchParams } from 'react-router-dom';
-import type { FilterSetState, TableFilter } from '@lib/types/Filters';
-import type { TableState } from '@lib/types/Tables';
-import { useFilterSet } from './UseFilterSet';
+import type { FilterSetState, TableFilter } from '../types/Filters';
+import type { TableState } from '../types/Tables';
+import useFilterSet from './UseFilterSet';
export type TableStateExtraProps = {
idAccessor?: string;
@@ -17,7 +16,7 @@ export type TableStateExtraProps = {
* Refer to the TableState type definition for more information.
*/
-export function useTable(
+export default function useTable(
tableName: string,
tableProps: TableStateExtraProps = {
idAccessor: 'pk',
@@ -29,13 +28,6 @@ export function useTable(
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
@@ -133,9 +125,6 @@ export function useTable(
isLoading,
setIsLoading,
filterSet,
- queryFilters,
- setQueryFilters,
- clearQueryFilters,
expandedRecords,
setExpandedRecords,
isRowExpanded,
diff --git a/src/frontend/lib/index.ts b/src/frontend/lib/index.ts
index f9812e6df7..e6a6327f7d 100644
--- a/src/frontend/lib/index.ts
+++ b/src/frontend/lib/index.ts
@@ -15,10 +15,28 @@ export { UserRoles, UserPermissions } from './enums/Roles';
export type {
InvenTreePluginContext,
InvenTreeFormsContext,
+ InvenTreeTablesContext,
+ ImporterDrawerContext,
PluginVersion,
StockAdjustmentFormsContext
} from './types/Plugins';
-export type { RowAction, RowViewProps } from './types/Tables';
+
+export type {
+ RowAction,
+ RowViewProps,
+ TableColumn,
+ TableColumnProps,
+ TableState,
+ InvenTreeTableProps,
+ InvenTreeTableRenderProps
+} from './types/Tables';
+
+export type {
+ TableFilterChoice,
+ TableFilterType,
+ TableFilter,
+ FilterSetState
+} from './types/Filters';
export type {
ApiFormFieldChoice,
@@ -42,6 +60,14 @@ export {
getDetailUrl,
navigateToLink
} from './functions/Navigation';
+
+export {
+ notYetImplemented,
+ permissionDenied,
+ invalidResponse,
+ showTimeoutNotification
+} from './functions/Notification';
+
export {
checkPluginVersion,
initPlugin
@@ -53,16 +79,32 @@ export {
formatFileSize
} from './functions/Formatting';
+export {
+ constructFormUrl,
+ mapFields,
+ type NestedDict
+} from './functions/Forms';
+
+export {
+ shortenString,
+ hashString
+} from './functions/String';
+
// Common UI components
export {
ActionButton,
type ActionButtonProps
} from './components/ActionButton';
export { AddItemButton } from './components/AddItemButton';
+export { Boundary, DefaultFallback } from './components/Boundary';
export { ButtonMenu } from './components/ButtonMenu';
+export { CopyButton } from './components/CopyButton';
+export { CopyableCell } from './components/CopyableCell';
export { ProgressBar } from './components/ProgressBar';
export { PassFailButton, YesNoButton } from './components/YesNoButton';
export { SearchInput } from './components/SearchInput';
+export { TableColumnSelect } from './components/TableColumnSelect';
+export { default as InvenTreeTable } from './components/InvenTreeTable';
export {
RowViewAction,
RowDuplicateAction,
@@ -77,7 +119,28 @@ export {
default as useMonitorDataOutput,
type MonitorDataOutputProps
} from './hooks/MonitorDataOutput';
+
export {
default as useMonitorBackgroundTask,
type MonitorBackgroundTaskProps
} from './hooks/MonitorBackgroundTask';
+
+export { default as useFilterSet } from './hooks/UseFilterSet';
+
+export {
+ default as useTable,
+ type TableStateExtraProps
+} from './hooks/UseTable';
+
+export {
+ type DrawerProps,
+ DetailDrawer,
+ DetailDrawerLink
+} from './components/nav/DetailDrawer';
+export { StylishText } from './components/StylishText';
+
+// State management
+export {
+ type StoredTableStateProps,
+ useStoredTableState
+} from './states/StoredTableState';
diff --git a/src/frontend/lib/states/LocalLibState.tsx b/src/frontend/lib/states/LocalLibState.tsx
new file mode 100644
index 0000000000..76431c8d79
--- /dev/null
+++ b/src/frontend/lib/states/LocalLibState.tsx
@@ -0,0 +1,23 @@
+import { create } from 'zustand';
+import { persist } from 'zustand/middleware';
+
+export const useLocalLibState = create()(
+ persist(
+ (set, get) => ({
+ detailDrawerStack: 0,
+ addDetailDrawer: (value) => {
+ set({
+ detailDrawerStack:
+ value === false ? 0 : get().detailDrawerStack + value
+ });
+ }
+ }),
+ {
+ name: 'session-settings-inventreedb_lib'
+ }
+ )
+);
+export interface LocalLibStateProps {
+ detailDrawerStack: number;
+ addDetailDrawer: (value: number | false) => void;
+}
diff --git a/src/frontend/src/states/StoredTableState.tsx b/src/frontend/lib/states/StoredTableState.tsx
similarity index 98%
rename from src/frontend/src/states/StoredTableState.tsx
rename to src/frontend/lib/states/StoredTableState.tsx
index 7d9519dc09..f0e6c40e09 100644
--- a/src/frontend/src/states/StoredTableState.tsx
+++ b/src/frontend/lib/states/StoredTableState.tsx
@@ -13,7 +13,7 @@ const DEFAULT_PAGE_SIZE: number = 25;
* - columnNames: An object mapping table keys to arrays of column names.
* - sorting: An object mapping table keys to sorting configurations.
*/
-interface StoredTableStateProps {
+export interface StoredTableStateProps {
pageSize: number;
setPageSize: (size: number) => void;
tableSorting: Record;
diff --git a/src/frontend/lib/types/Forms.tsx b/src/frontend/lib/types/Forms.tsx
index 2b229dcb45..44e37a2b2f 100644
--- a/src/frontend/lib/types/Forms.tsx
+++ b/src/frontend/lib/types/Forms.tsx
@@ -37,7 +37,6 @@ export type ApiFormFieldHeader = {
* - All other attributes are optional, and may be provided by the API
* - However, they can be overridden by the user
*
- * @param name : The name of the field
* @param label : The label to display for the field
* @param value : The value of the field
* @param default : The default value of the field
@@ -46,16 +45,21 @@ export type ApiFormFieldHeader = {
* @param api_url : The API endpoint to fetch data from (for related fields)
* @param pk_field : The primary key field for the related field (default = "pk")
* @param model : The model to use for related fields
+ * @param modelRenderer : Optional function to render the related model instance (for related fields)
* @param filters : Optional API filters to apply to related fields
+ * @param child: Optional definition of a child field (for nested objects)
+ * @param children: Optional definitions of child fields (for nested objects with multiple fields)
* @param required : Whether the field is required
- * @param allow_null: Whether the field allows null values
- * @param allow_blank: Whether the field allows blank values
+ * @param error : Optional error message to display
* @param hidden : Whether the field is hidden
* @param disabled : Whether the field is disabled
- * @param error : Optional error message to display
+ * @param allow_null: Whether the field allows null values
+ * @param allow_blank: Whether the field allows blank values
* @param exclude : Whether to exclude the field from the submitted data
+ * @param read_only : Whether the field is read-only
* @param placeholder : The placeholder text to display
* @param placeholderAutofill: Whether to allow auto-filling of the placeholder value
+ * @param addCreateFields : Fields to display when creating a new related object (for related fields)
* @param description : The description to display for the field
* @param preFieldContent : Content to render before the field
* @param postFieldContent : Content to render after the field
@@ -63,11 +67,11 @@ export type ApiFormFieldHeader = {
* @param rightSection : Content to render in the right section of the field
* @param autoFill: Whether to automatically fill the field with data from the API
* @param autoFillFilters: Optional filters to apply when auto-filling the field
+ * @param adjustValue : Callback function to adjust the value of the field before it is sent to the API
* @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 addRow : Callback function to add a new row to a table field
- * @param onKeyDown : Callback function to get which key was pressed in the form to handle submission on enter
+ * @param headers : Optional definitions of table headers (for table fields)
* @param singleFetchFunction : Optional function to fetch a single value for this field (used for fetching the initial value when editing an existing object)
*/
export type ApiFormFieldType = {
@@ -114,6 +118,7 @@ export type ApiFormFieldType = {
placeholderAutofill?: boolean;
placeholderWarningCompare?: string | number;
placeholderWarning?: string;
+ addCreateFields?: ApiFormFieldSet;
description?: string;
preFieldContent?: JSX.Element;
postFieldContent?: JSX.Element;
diff --git a/src/frontend/lib/types/Plugins.tsx b/src/frontend/lib/types/Plugins.tsx
index 840d695d6d..575cf9f3c5 100644
--- a/src/frontend/lib/types/Plugins.tsx
+++ b/src/frontend/lib/types/Plugins.tsx
@@ -13,6 +13,7 @@ import type {
import type { UseModalReturn } from './Modals';
import type { RenderInstanceProps } from './Rendering';
import type { SettingsStateProps } from './Settings';
+import type { InvenTreeTableRenderProps } from './Tables';
import type { UserStateProps } from './User';
export interface PluginProps {
@@ -48,6 +49,10 @@ export type InvenTreeFormsContext = {
stockActions: StockAdjustmentFormsContext;
};
+export type InvenTreeTablesContext> = {
+ renderTable: (props: InvenTreeTableRenderProps) => React.ReactNode;
+};
+
export type ImporterDrawerContext = {
open: (sessionId: number, options?: { onClose?: () => void }) => void;
close: () => void;
@@ -61,20 +66,22 @@ export type ImporterDrawerContext = {
*
* @param version - The version of the running InvenTree software stack
* @param api - The Axios API instance (see ../states/ApiState.tsx)
+ * @param queryClient - The Tanstack QueryClient instance (see ../states/QueryState.tsx)
* @param user - The current user instance (see ../states/UserState.tsx)
* @param userSettings - The current user settings (see ../states/SettingsState.tsx)
* @param globalSettings - The global settings (see ../states/SettingsState.tsx)
- * @param navigate - The navigation function (see react-router-dom)
- * @param theme - The current Mantine theme
- * @param forms - A set of functions for opening various API forms (see ../components/Forms.tsx)
- * @param importer - A set of functions for controlling the global importer drawer (see ../components/importer/GlobalImporterDrawer.tsx)
- * @param colorScheme - The current Mantine color scheme (e.g. 'light' / 'dark')
+ * @param modelInformation - A dictionary of available model information
+ * @param renderInstance - A component function for rendering a model instance
* @param host - The current host URL
* @param i18n - The i18n instance for translations (from @lingui/core)
* @param locale - The current locale string (e.g. 'en' / 'de')
+ * @param navigate - The navigation function (see react-router-dom)
+ * @param theme - The current Mantine theme
+ * @param colorScheme - The current Mantine color scheme (e.g. 'light' / 'dark')
+ * @param forms - A set of functions for opening various API forms (see ../components/Forms.tsx)
+ * @param tables - A set of functions for rendering API tables
+ * @param importer - A set of functions for controlling the global importer drawer (see ../components/importer/GlobalImporterDrawer.tsx)
* @param model - The model type associated with the rendered component (if applicable)
- * @param modelInformation - A dictionary of available model information
- * @param renderInstance - A component function for rendering a model instance
* @param id - The ID (primary key) of the model instance for the plugin (if applicable)
* @param instance - The model instance data (if available)
* @param reloadContent - A function which can be called to reload the plugin content
@@ -95,9 +102,10 @@ export type InvenTreePluginContext = {
locale: string;
navigate: NavigateFunction;
theme: MantineTheme;
- forms: InvenTreeFormsContext;
- importer: ImporterDrawerContext;
colorScheme: MantineColorScheme;
+ forms: InvenTreeFormsContext;
+ tables: InvenTreeTablesContext;
+ importer: ImporterDrawerContext;
model?: ModelType | string;
id?: string | number | null;
instance?: any;
diff --git a/src/frontend/lib/types/Tables.tsx b/src/frontend/lib/types/Tables.tsx
index 99f02ce06d..798b72329d 100644
--- a/src/frontend/lib/types/Tables.tsx
+++ b/src/frontend/lib/types/Tables.tsx
@@ -1,10 +1,12 @@
import type { MantineStyleProp } from '@mantine/core';
+import type { AxiosInstance } from 'axios';
+import type { ShowContextMenuFunction } from 'mantine-contextmenu';
import type {
DataTableCellClickHandler,
DataTableRowExpansionProps
} from 'mantine-datatable';
import type { ReactNode } from 'react';
-import type { NavigateFunction, SetURLSearchParams } from 'react-router-dom';
+import type { NavigateFunction } from 'react-router-dom';
import type { ModelType } from '../enums/ModelType';
import type { FilterSetState, TableFilter } from './Filters';
import type { ApiFormFieldType } from './Forms';
@@ -17,9 +19,6 @@ import type { ApiFormFieldType } from './Forms';
* isLoading: A boolean flag to indicate if the table is currently loading data
* setIsLoading: A function to set the isLoading flag
* filterSet: A group of 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
@@ -49,9 +48,6 @@ export type TableState = {
isLoading: boolean;
setIsLoading: (value: boolean) => void;
filterSet: FilterSetState;
- queryFilters: URLSearchParams;
- setQueryFilters: SetURLSearchParams;
- clearQueryFilters: () => void;
expandedRecords: any[];
setExpandedRecords: (records: any[]) => void;
isRowExpanded: (pk: number) => boolean;
@@ -183,6 +179,7 @@ export type RowViewProps = RowAction & RowModelProps;
* @param onRowClick : (record: any, index: number, event: any) => void - Callback function when a row is clicked
* @param onCellClick : (event: any, record: any, index: number, column: any, columnIndex: number) => void - Callback function when a cell is clicked
* @param modelType: ModelType - The model type for the table
+ * @param height: string | number - Height of the table (default = 'auto')
* @param minHeight: number - Minimum height of the table (default 300px)
* @param noHeader: boolean - Hide the table header
*/
@@ -216,6 +213,22 @@ export type InvenTreeTableProps = {
rowStyle?: (record: T, index: number) => MantineStyleProp | undefined;
modelField?: string;
onCellContextMenu?: (record: T, event: any) => void;
+ height?: string | number;
minHeight?: number;
noHeader?: boolean;
};
+
+export type InvenTreeTableRenderProps> = {
+ url?: string;
+ tableState: TableState;
+ tableData?: T[];
+ columns: TableColumn[];
+ props: InvenTreeTableProps;
+ api: AxiosInstance;
+ navigate: NavigateFunction;
+
+ // The following attributes are for internal use only (plugins should not use these directly)
+ showContextMenu?: ShowContextMenuFunction;
+ searchParams?: URLSearchParams;
+ setSearchParams?: (params: URLSearchParams) => void;
+};
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 9e588afb9c..132cd11437 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "@inventreedb/ui",
"description": "UI components for the InvenTree project",
- "version": "0.10.1",
+ "version": "0.11.3",
"private": false,
"type": "module",
"license": "MIT",
@@ -84,7 +84,8 @@
"codemirror": "^6.0.2",
"dayjs": "^1.11.13",
"dompurify": "^3.2.4",
- "easymde": "^2.18.0",
+ "easymde": "^2.20.0",
+ "embla-carousel": "^8.5.2",
"embla-carousel-react": "^8.5.2",
"fuse.js": "^7.0.0",
"html5-qrcode": "^2.3.8",
@@ -102,6 +103,7 @@
"react-window": "1.8.11",
"recharts": "^3.1.2",
"styled-components": "^6.1.14",
+ "undici": "^6.24.0",
"zustand": "^5.0.8"
},
"devDependencies": {
@@ -130,13 +132,14 @@
"rollup": "^4.59.0",
"rollup-plugin-license": "^3.7.0",
"typescript": "^5.9.3",
- "vite": "7.3.2",
+ "vite": "^6.4.2",
"vite-plugin-babel-macros": "^1.0.6",
"vite-plugin-dts": "^4.5.4",
"vite-plugin-externals": "^0.6.2",
"vite-plugin-istanbul": "^8.0.0"
},
"resolutions": {
- "undici": "^6.24.0"
+ "undici": "^6.24.0",
+ "vite": "^6.4.2"
}
}
diff --git a/src/frontend/src/components/barcodes/BarcodeInput.tsx b/src/frontend/src/components/barcodes/BarcodeInput.tsx
index 6e5d5e012b..4fa4dd03b8 100644
--- a/src/frontend/src/components/barcodes/BarcodeInput.tsx
+++ b/src/frontend/src/components/barcodes/BarcodeInput.tsx
@@ -13,9 +13,9 @@ import {
import { IconCamera, IconScan } from '@tabler/icons-react';
import { useCallback, useMemo, useState } from 'react';
+import { Boundary } from '@lib/components/Boundary';
import { useLocalStorage } from '@mantine/hooks';
import { useGlobalSettingsState } from '../../states/SettingsStates';
-import { Boundary } from '../Boundary';
import BarcodeCameraInput from './BarcodeCameraInput';
import BarcodeKeyboardInput from './BarcodeKeyboardInput';
diff --git a/src/frontend/src/components/barcodes/BarcodeScanDialog.tsx b/src/frontend/src/components/barcodes/BarcodeScanDialog.tsx
index 6e2eb50640..1e3cbce14e 100644
--- a/src/frontend/src/components/barcodes/BarcodeScanDialog.tsx
+++ b/src/frontend/src/components/barcodes/BarcodeScanDialog.tsx
@@ -1,3 +1,4 @@
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType';
@@ -11,7 +12,6 @@ import { type NavigateFunction, useNavigate } from 'react-router-dom';
import { api } from '../../App';
import { extractErrorMessage } from '../../functions/api';
import { useUserState } from '../../states/UserState';
-import { StylishText } from '../items/StylishText';
import { BarcodeInput } from './BarcodeInput';
export type BarcodeScanResult = {
diff --git a/src/frontend/src/components/barcodes/QRCode.tsx b/src/frontend/src/components/barcodes/QRCode.tsx
index fd8e0a1387..11155e5d8f 100644
--- a/src/frontend/src/components/barcodes/QRCode.tsx
+++ b/src/frontend/src/components/barcodes/QRCode.tsx
@@ -18,11 +18,11 @@ import { useQuery } from '@tanstack/react-query';
import QR from 'qrcode';
import { useCallback, useEffect, useMemo, useState } from 'react';
+import { CopyButton } from '@lib/components/CopyButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { api } from '../../App';
import { useGlobalSettingsState } from '../../states/SettingsStates';
-import { CopyButton } from '../buttons/CopyButton';
import type { QrCodeType } from '../items/ActionDropdown';
import { extractErrorMessage } from '../../functions/api';
diff --git a/src/frontend/src/components/calendar/Calendar.tsx b/src/frontend/src/components/calendar/Calendar.tsx
index 50f416a175..a6cdb022f1 100644
--- a/src/frontend/src/components/calendar/Calendar.tsx
+++ b/src/frontend/src/components/calendar/Calendar.tsx
@@ -5,7 +5,9 @@ import interactionPlugin from '@fullcalendar/interaction';
import FullCalendar from '@fullcalendar/react';
import { ActionButton } from '@lib/components/ActionButton';
+import { Boundary } from '@lib/components/Boundary';
import { SearchInput } from '@lib/components/SearchInput';
+import { StylishText } from '@lib/components/StylishText';
import type { TableFilter } from '@lib/types/Filters';
import { t } from '@lingui/core/macro';
import {
@@ -36,8 +38,6 @@ import {
import type { CalendarState } from '../../hooks/UseCalendar';
import { useLocalState } from '../../states/LocalState';
import { FilterSelectDrawer } from '../../tables/FilterSelectDrawer';
-import { Boundary } from '../Boundary';
-import { StylishText } from '../items/StylishText';
export interface InvenTreeCalendarProps extends CalendarOptions {
enableDownload?: boolean;
diff --git a/src/frontend/src/components/dashboard/DashboardLayout.tsx b/src/frontend/src/components/dashboard/DashboardLayout.tsx
index 5edcf5cc26..ddccb3034c 100644
--- a/src/frontend/src/components/dashboard/DashboardLayout.tsx
+++ b/src/frontend/src/components/dashboard/DashboardLayout.tsx
@@ -97,11 +97,14 @@ export default function DashboardLayout() {
setWidgets([...widgets, newWidget]);
}
- // Update the layouts to include the new widget (and enforce initial size)
+ // Update the layouts to include the new widget.
+ // Pass overrideSize=false so existing widgets keep their user-set
+ // dimensions; only the newly added widget will receive default sizing
+ // via react-grid-layout's auto-placement.
const _layouts: any = { ...layouts };
Object.keys(_layouts).forEach((key) => {
- _layouts[key] = updateLayoutForWidget(_layouts[key], widgets, true);
+ _layouts[key] = updateLayoutForWidget(_layouts[key], widgets, false);
});
setLayouts(_layouts);
diff --git a/src/frontend/src/components/dashboard/DashboardMenu.tsx b/src/frontend/src/components/dashboard/DashboardMenu.tsx
index 04dd8780d6..f961cca4ce 100644
--- a/src/frontend/src/components/dashboard/DashboardMenu.tsx
+++ b/src/frontend/src/components/dashboard/DashboardMenu.tsx
@@ -17,9 +17,9 @@ import {
} from '@tabler/icons-react';
import { useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import useInstanceName from '../../hooks/UseInstanceName';
import { useUserState } from '../../states/UserState';
-import { StylishText } from '../items/StylishText';
/**
* A menu for editing the dashboard layout
diff --git a/src/frontend/src/components/dashboard/DashboardWidget.tsx b/src/frontend/src/components/dashboard/DashboardWidget.tsx
index d56f733587..cc806d01b9 100644
--- a/src/frontend/src/components/dashboard/DashboardWidget.tsx
+++ b/src/frontend/src/components/dashboard/DashboardWidget.tsx
@@ -2,7 +2,7 @@ import { t } from '@lingui/core/macro';
import { ActionIcon, Box, Group, Overlay, Paper, Tooltip } from '@mantine/core';
import { IconX } from '@tabler/icons-react';
-import { Boundary } from '../Boundary';
+import { Boundary } from '@lib/components/Boundary';
import type { ModelType } from '@lib/index';
import type { JSX } from 'react';
diff --git a/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx b/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx
index a3c9e69797..397111102e 100644
--- a/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx
+++ b/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx
@@ -15,8 +15,8 @@ import { useDebouncedValue } from '@mantine/hooks';
import { IconBackspace, IconLayoutGridAdd } from '@tabler/icons-react';
import { useMemo, useState } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { useDashboardItems } from '../../hooks/UseDashboardItems';
-import { StylishText } from '../items/StylishText';
/**
* Drawer allowing the user to add new widgets to the dashboard.
diff --git a/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx b/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx
index 7b2352a18f..979d4d0f6c 100644
--- a/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx
+++ b/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx
@@ -9,6 +9,7 @@ import GetStartedWidget from './widgets/GetStartedWidget';
import LanguageSelectDashboardWidget from './widgets/LanguageSelectWidget';
import NewsWidget from './widgets/NewsWidget';
import QueryCountDashboardWidget from './widgets/QueryCountDashboardWidget';
+import QueryDashboardWidget from './widgets/QueryDashboardWidget';
import StocktakeDashboardWidget from './widgets/StocktakeDashboardWidget';
/**
@@ -48,7 +49,15 @@ function BuiltinQueryCountWidgets(): DashboardWidgetProps[] {
bom_valid: false // Only show parts with invalid BOMs
}
}),
- // TODO: 'latest parts'
+ QueryDashboardWidget({
+ label: 'latest-parts',
+ title: t`Latest parts`,
+ description: t`Latest parts`,
+ modelType: ModelType.part,
+ params: {
+ ordering: '-id'
+ }
+ }),
// TODO: 'recently updated stock'
QueryCountDashboardWidget({
title: t`Low Stock`,
diff --git a/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx b/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx
index cc2c718e93..06d451e1f2 100644
--- a/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx
+++ b/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx
@@ -1,8 +1,8 @@
import { t } from '@lingui/core/macro';
import { Group } from '@mantine/core';
+import { StylishText } from '@lib/components/StylishText';
import { ColorToggle } from '../../items/ColorToggle';
-import { StylishText } from '../../items/StylishText';
import type { DashboardWidgetProps } from '../DashboardWidget';
function ColorToggleWidget(title: string) {
diff --git a/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx b/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx
index d1e1263026..4f083d627e 100644
--- a/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx
+++ b/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx
@@ -2,10 +2,10 @@ import { t } from '@lingui/core/macro';
import { Stack } from '@mantine/core';
import { useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { DocumentationLinks } from '../../../defaults/links';
import { GettingStartedCarousel } from '../../items/GettingStartedCarousel';
import type { MenuLinkItem } from '../../items/MenuLinks';
-import { StylishText } from '../../items/StylishText';
export default function GetStartedWidget() {
const docLinks: MenuLinkItem[] = useMemo(() => DocumentationLinks(), []);
diff --git a/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx b/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx
index cc33098de3..7f94231b4b 100644
--- a/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx
+++ b/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx
@@ -1,8 +1,8 @@
import { t } from '@lingui/core/macro';
import { Stack } from '@mantine/core';
+import { StylishText } from '@lib/components/StylishText';
import { LanguageSelect } from '../../items/LanguageSelect';
-import { StylishText } from '../../items/StylishText';
import type { DashboardWidgetProps } from '../DashboardWidget';
function LanguageSelectWidget(title: string) {
diff --git a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx
index e7ebac756a..5dab794dce 100644
--- a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx
+++ b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx
@@ -14,12 +14,12 @@ import { IconMailCheck } from '@tabler/icons-react';
import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { api } from '../../../App';
import { formatDate } from '../../../defaults/formatters';
import { useUserState } from '../../../states/UserState';
-import { StylishText } from '../../items/StylishText';
/**
* Render a link to an external news item
diff --git a/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx b/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx
index af38a5ce88..fa531ce69e 100644
--- a/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx
+++ b/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx
@@ -4,6 +4,7 @@ import { useQuery } from '@tanstack/react-query';
import { type ReactNode, useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
@@ -13,7 +14,6 @@ import { useDocumentVisibility } from '@mantine/hooks';
import { useApi } from '../../../contexts/ApiContext';
import { InvenTreeIcon } from '../../../functions/icons';
import { useUserState } from '../../../states/UserState';
-import { StylishText } from '../../items/StylishText';
import type { DashboardWidgetProps } from '../DashboardWidget';
/**
diff --git a/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx b/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx
new file mode 100644
index 0000000000..527041c50a
--- /dev/null
+++ b/src/frontend/src/components/dashboard/widgets/QueryDashboardWidget.tsx
@@ -0,0 +1,96 @@
+import { Anchor, Group } from '@mantine/core';
+import { type ReactNode, useCallback } from 'react';
+import { useNavigate } from 'react-router-dom';
+
+import { StylishText } from '@lib/components/StylishText';
+import { ModelInformationDict } from '@lib/enums/ModelInformation';
+import type { ModelType } from '@lib/enums/ModelType';
+import { navigateToLink } from '@lib/functions/Navigation';
+import type { InvenTreeIconType } from '@lib/types/Icons';
+import { InvenTreeIcon } from '../../../functions/icons';
+import type { DashboardWidgetProps } from '../DashboardWidget';
+
+/**
+ * A simple dashboard widget for displaying a link to a particular query
+ */
+function QueryWidget({
+ modelType,
+ title,
+ icon,
+ params
+}: Readonly<{
+ modelType: ModelType;
+ title: string;
+ icon?: keyof InvenTreeIconType;
+ params: any;
+}>): ReactNode {
+ const navigate = useNavigate();
+ const modelProperties = ModelInformationDict[modelType];
+
+ 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]
+ );
+
+ return (
+
+
+
+
+ {title}
+
+
+
+ );
+}
+
+/**
+ * Construct a dashboard widget descriptor, which displays just a link to a particular query
+ */
+export default function QueryDashboardWidget({
+ label,
+ title,
+ description,
+ modelType,
+ enabled = true,
+ params
+}: {
+ label: string;
+ title: string;
+ description: string;
+ modelType: ModelType;
+ enabled?: boolean;
+ params: any;
+}): DashboardWidgetProps {
+ return {
+ label: label,
+ title: title,
+ description: description,
+ enabled: enabled,
+ modelType: modelType,
+ minWidth: 2,
+ minHeight: 1,
+ render: () => (
+
+ )
+ };
+}
diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx
index 9222814fa4..d221ea543d 100644
--- a/src/frontend/src/components/details/Details.tsx
+++ b/src/frontend/src/components/details/Details.tsx
@@ -17,7 +17,9 @@ import { getValueAtPath } from 'mantine-datatable';
import { useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { CopyButton } from '@lib/components/CopyButton';
import { ProgressBar } from '@lib/components/ProgressBar';
+import { StylishText } from '@lib/components/StylishText';
import { YesNoButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
@@ -29,8 +31,6 @@ import { useApi } from '../../contexts/ApiContext';
import { formatDate, formatDecimal } from '../../defaults/formatters';
import { InvenTreeIcon } from '../../functions/icons';
import { useGlobalSettingsState } from '../../states/SettingsStates';
-import { CopyButton } from '../buttons/CopyButton';
-import { StylishText } from '../items/StylishText';
import { getModelInfo } from '../render/ModelType';
import { StatusRenderer } from '../render/StatusRenderer';
diff --git a/src/frontend/src/components/details/DetailsImage.tsx b/src/frontend/src/components/details/DetailsImage.tsx
index 2df961ff35..044406e5c7 100644
--- a/src/frontend/src/components/details/DetailsImage.tsx
+++ b/src/frontend/src/components/details/DetailsImage.tsx
@@ -22,6 +22,7 @@ import { modals } from '@mantine/modals';
import { useEffect, useMemo, useState } from 'react';
import { ActionButton } from '@lib/components/ActionButton';
+import { StylishText } from '@lib/components/StylishText';
import type { UserRoles } from '@lib/enums/Roles';
import { cancelEvent } from '@lib/functions/Events';
import { showNotification } from '@mantine/notifications';
@@ -34,7 +35,6 @@ import { useUserState } from '../../states/UserState';
import { PartThumbTable } from '../../tables/part/PartThumbTable';
import { vars } from '../../theme';
import { ApiImage } from '../images/ApiImage';
-import { StylishText } from '../items/StylishText';
/**
* Props for detail image
@@ -42,6 +42,7 @@ import { StylishText } from '../items/StylishText';
export type DetailImageProps = {
appRole?: UserRoles;
src: string;
+ thumbnail?: string;
apiPath: string;
refresh?: () => void;
imageActions?: DetailImageButtonProps;
@@ -465,7 +466,7 @@ export function DetailsImage(props: Readonly) {
const expandImage = (event: any) => {
cancelEvent(event);
modals.open({
- children: ,
+ children: ,
withCloseButton: false
});
};
@@ -484,6 +485,7 @@ export function DetailsImage(props: Readonly) {
<>
void;
}>) {
const api = useApi();
// In addition to the editable prop, we also need to check if the user has "enabled" editing
const [editing, setEditing] = useState(false);
+ const [localIsDirty, setLocalIsDirty] = useState(false);
const [markdown, setMarkdown] = useState('');
@@ -42,6 +45,10 @@ export default function NotesEditor({
setEditing(false);
}, [editable, modelId, modelType]);
+ useEffect(() => {
+ setDirtyCallback?.(localIsDirty);
+ }, [localIsDirty]);
+
const noteUrl: string = useMemo(() => {
const modelInfo = ModelInformationDict[modelType];
return apiUrl(modelInfo.api_endpoint, modelId);
@@ -121,6 +128,7 @@ export default function NotesEditor({
id: 'notes',
autoClose: 2000
});
+ setLocalIsDirty(false);
})
.catch((error) => {
notifications.hide('notes');
@@ -222,6 +230,7 @@ export default function NotesEditor({
getMdeInstance={(instance: SimpleMde) => setMdeInstance(instance)}
onChange={(value: string) => {
setMarkdown(value);
+ setLocalIsDirty(true);
}}
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 2cf8633136..786b4803da 100644
--- a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx
+++ b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx
@@ -25,12 +25,12 @@ import Split from '@uiw/react-split';
import type React from 'react';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
+import { Boundary } from '@lib/components/Boundary';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import { api } from '../../../App';
import type { TemplateI } from '../../../tables/settings/TemplateTable';
-import { Boundary } from '../../Boundary';
import { SplitButton } from '../../buttons/SplitButton';
import { StandaloneField } from '../../forms/StandaloneField';
diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx
index 43b2b22948..7531e9b927 100644
--- a/src/frontend/src/components/forms/ApiForm.tsx
+++ b/src/frontend/src/components/forms/ApiForm.tsx
@@ -22,26 +22,25 @@ import {
} from 'react-hook-form';
import { type NavigateFunction, useNavigate } from 'react-router-dom';
+import { Boundary } from '@lib/components/Boundary';
import { isTrue } from '@lib/functions/Conversion';
+import {
+ type NestedDict,
+ constructFormUrl,
+ mapFields
+} from '@lib/functions/Forms';
import { getDetailUrl } from '@lib/functions/Navigation';
+import {
+ invalidResponse,
+ showTimeoutNotification
+} from '@lib/functions/Notification';
import type {
ApiFormFieldSet,
ApiFormFieldType,
ApiFormProps
} from '@lib/types/Forms';
import { useApi } from '../../contexts/ApiContext';
-import {
- type NestedDict,
- constructField,
- constructFormUrl,
- extractAvailableFields,
- mapFields
-} from '../../functions/forms';
-import {
- invalidResponse,
- showTimeoutNotification
-} from '../../functions/notifications';
-import { Boundary } from '../Boundary';
+import { constructField, extractAvailableFields } from '../../functions/forms';
import { KeepFormOpenSwitch } from './KeepFormOpenSwitch';
import { ApiFormField } from './fields/ApiFormField';
diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx
index 05c2032b96..d1877347dd 100644
--- a/src/frontend/src/components/forms/fields/ApiFormField.tsx
+++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx
@@ -246,11 +246,6 @@ export function ApiFormField({
/>
);
default:
- // This should never happen - it represents a critical UI issue which should be caught in CI
- console.error(
- `Invalid field type for field '${fieldName}': '${fieldDefinition.field_type}'`
- );
-
return (
Invalid field type for field '{fieldName}': '
diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx
index df711af1c1..e04ea1562a 100644
--- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx
+++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx
@@ -8,17 +8,32 @@ import {
} from '@mantine/core';
import { useDebouncedValue, useId } from '@mantine/hooks';
import { useQuery } from '@tanstack/react-query';
-import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
+import {
+ type ReactNode,
+ useCallback,
+ useEffect,
+ useMemo,
+ useRef,
+ useState
+} from 'react';
import {
type FieldValues,
type UseControllerReturn,
+ type UseFormReturn,
useFormContext
} from 'react-hook-form';
import Select from 'react-select';
-import { ModelInformationDict } from '@lib/enums/ModelInformation';
+import { ActionButton } from '@lib/components/ActionButton';
+import {
+ ModelInformationDict,
+ type TranslatableModelInformationInterface
+} from '@lib/enums/ModelInformation';
+import { apiUrl } from '@lib/functions/Api';
import type { ApiFormFieldType } from '@lib/types/Forms';
+import { IconPlus } from '@tabler/icons-react';
import { useApi } from '../../../contexts/ApiContext';
+import { useCreateApiFormModal } from '../../../hooks/UseForm';
import {
useGlobalSettingsState,
useUserSettingsState
@@ -54,6 +69,10 @@ export function RelatedModelField({
// Keep track of the primary key value for this field
const [pk, setPk] = useState(null);
+ function setValueFromPK(pk: number) {
+ fetchSingleField(pk);
+ }
+
// Handle condition where the form is rebuilt dynamically
useEffect(() => {
const value = field.value || pk;
@@ -139,6 +158,17 @@ export function RelatedModelField({
return ModelInformationDict[definition.model];
}, [definition.model]);
+ // Determine whether an add button should be added for this field
+ const addButton = useMemo(() => {
+ if (!modelInfo) {
+ return false;
+ }
+ if (definition.addCreateFields) {
+ return true;
+ }
+ return false;
+ }, [definition.addCreateFields, modelInfo]);
+
// Determine whether a barcode field should be added
const addBarcodeField: boolean = useMemo(() => {
if (!modelInfo || !modelInfo.supports_barcode) {
@@ -296,15 +326,7 @@ export function RelatedModelField({
return null;
}
- let _filters = definition.filters ?? {};
-
- if (definition.adjustFilters) {
- _filters =
- definition.adjustFilters({
- filters: _filters,
- data: form.getValues()
- }) ?? _filters;
- }
+ const _filters = retrieveFilters(definition, form);
// If the filters have changed, clear the data
if (JSON.stringify(_filters) !== JSON.stringify(filters)) {
@@ -388,6 +410,7 @@ export function RelatedModelField({
const fieldDefinition = useMemo(() => {
return {
...definition,
+ addCreateFields: undefined,
autoFill: undefined,
modelRenderer: undefined,
onValueChange: undefined,
@@ -461,6 +484,14 @@ export function RelatedModelField({
styles={{ description: { paddingBottom: '5px' } }}
>
+ {addButton && modelInfo && (
+
+ )}
diff --git a/src/frontend/src/components/importer/ImportDataSelector.tsx b/src/frontend/src/components/importer/ImportDataSelector.tsx
index 0b09bf31e6..82aadf2d5c 100644
--- a/src/frontend/src/components/importer/ImportDataSelector.tsx
+++ b/src/frontend/src/components/importer/ImportDataSelector.tsx
@@ -20,6 +20,7 @@ import { YesNoButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { cancelEvent } from '@lib/functions/Events';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -29,7 +30,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import type { ImportSessionState } from '../../hooks/UseImportSession';
-import { useTable } from '../../hooks/UseTable';
import { InvenTreeTable } from '../../tables/InvenTreeTable';
import { RenderRemoteInstance } from '../render/Instance';
diff --git a/src/frontend/src/components/importer/ImporterDrawer.tsx b/src/frontend/src/components/importer/ImporterDrawer.tsx
index 624c7067fb..9581e1ecef 100644
--- a/src/frontend/src/components/importer/ImporterDrawer.tsx
+++ b/src/frontend/src/components/importer/ImporterDrawer.tsx
@@ -13,11 +13,11 @@ import {
import { IconCheck, IconExclamationCircle } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ModelType } from '@lib/enums/ModelType';
import type { ApiFormFieldSet } from '@lib/index';
import { useImportSession } from '../../hooks/UseImportSession';
import useStatusCodes from '../../hooks/UseStatusCodes';
-import { StylishText } from '../items/StylishText';
import ImporterDataSelector from './ImportDataSelector';
import ImporterColumnSelector from './ImporterColumnSelector';
import ImporterStatus from './ImporterStatus';
diff --git a/src/frontend/src/components/importer/ImporterStatus.tsx b/src/frontend/src/components/importer/ImporterStatus.tsx
index 9dbf5d9218..ac18326409 100644
--- a/src/frontend/src/components/importer/ImporterStatus.tsx
+++ b/src/frontend/src/components/importer/ImporterStatus.tsx
@@ -3,9 +3,9 @@ import { Center, Loader, Stack } from '@mantine/core';
import { useInterval } from '@mantine/hooks';
import { useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ModelType } from '@lib/enums/ModelType';
import type { ImportSessionState } from '../../hooks/UseImportSession';
-import { StylishText } from '../items/StylishText';
import { getStatusCodeLabel } from '../render/StatusRenderer';
export default function ImporterStatus({
diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx
index f9d5e41ef8..111eae6305 100644
--- a/src/frontend/src/components/items/ActionDropdown.tsx
+++ b/src/frontend/src/components/items/ActionDropdown.tsx
@@ -20,11 +20,11 @@ import {
} from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import type { ModelType } from '@lib/enums/ModelType';
import { identifierString } from '@lib/functions/Conversion';
import { InvenTreeIcon } from '../../functions/icons';
import { InvenTreeQRCode, QRCodeLink, QRCodeUnlink } from '../barcodes/QRCode';
-import { StylishText } from './StylishText';
export type ActionDropdownItem = {
icon?: ReactNode;
diff --git a/src/frontend/src/components/items/GettingStartedCarousel.tsx b/src/frontend/src/components/items/GettingStartedCarousel.tsx
index c48eafec0f..350f17ab9f 100644
--- a/src/frontend/src/components/items/GettingStartedCarousel.tsx
+++ b/src/frontend/src/components/items/GettingStartedCarousel.tsx
@@ -2,9 +2,9 @@ import { Trans } from '@lingui/react/macro';
import { Carousel } from '@mantine/carousel';
import { Anchor, Button, Paper, Text } from '@mantine/core';
+import { StylishText } from '@lib/components/StylishText';
import * as classes from './GettingStartedCarousel.css';
import type { MenuLinkItem } from './MenuLinks';
-import { StylishText } from './StylishText';
function StartedCard({ title, description, link }: Readonly) {
return (
diff --git a/src/frontend/src/components/items/InfoItem.tsx b/src/frontend/src/components/items/InfoItem.tsx
index 2d9132db58..0c9b3caf2d 100644
--- a/src/frontend/src/components/items/InfoItem.tsx
+++ b/src/frontend/src/components/items/InfoItem.tsx
@@ -3,7 +3,7 @@ import { Code, Flex, Group, Text } from '@mantine/core';
import { Link, type To } from 'react-router-dom';
import { YesNoButton } from '@lib/components/YesNoButton';
-import { DetailDrawerLink } from '../nav/DetailDrawer';
+import { DetailDrawerLink } from '@lib/components/nav/DetailDrawer';
export function InfoItem({
name,
diff --git a/src/frontend/src/components/items/MenuLinks.tsx b/src/frontend/src/components/items/MenuLinks.tsx
index 7830ceb563..3a8c8a1e21 100644
--- a/src/frontend/src/components/items/MenuLinks.tsx
+++ b/src/frontend/src/components/items/MenuLinks.tsx
@@ -11,10 +11,10 @@ import {
import { type JSX, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import { navigateToLink } from '@lib/functions/Navigation';
import type { InvenTreeIconType } from '@lib/types/Icons';
import { InvenTreeIcon } from '../../functions/icons';
-import { StylishText } from './StylishText';
export interface MenuLinkItem {
id: string;
diff --git a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx
index dc478d56b7..4233c12d1a 100644
--- a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx
+++ b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx
@@ -13,14 +13,14 @@ import {
import type { ContextModalProps } from '@mantine/modals';
import { useQuery } from '@tanstack/react-query';
+import { CopyButton } from '@lib/components/CopyButton';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { useShallow } from 'zustand/react/shallow';
import { api } from '../../App';
import { generateUrl } from '../../functions/urls';
import { useServerApiState } from '../../states/ServerApiState';
-import { CopyButton } from '../buttons/CopyButton';
-import { StylishText } from '../items/StylishText';
import type { JSX } from 'react';
import { OnlyStaff } from '../items/OnlyStaff';
diff --git a/src/frontend/src/components/nav/Layout.tsx b/src/frontend/src/components/nav/Layout.tsx
index 741f6d14ad..c3b084c835 100644
--- a/src/frontend/src/components/nav/Layout.tsx
+++ b/src/frontend/src/components/nav/Layout.tsx
@@ -9,6 +9,7 @@ import { IconSearch } from '@tabler/icons-react';
import { type JSX, useEffect, useMemo, useState } from 'react';
import { Navigate, Outlet, useLocation, useNavigate } from 'react-router-dom';
+import { Boundary } from '@lib/components/Boundary';
import { identifierString } from '@lib/functions/Conversion';
import { ApiEndpoints, apiUrl } from '@lib/index';
import { useQuery } from '@tanstack/react-query';
@@ -20,7 +21,6 @@ import {
useUserSettingsState
} from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
-import { Boundary } from '../Boundary';
import GlobalImporterDrawer from '../importer/GlobalImporterDrawer';
import { ApiIcon } from '../items/ApiIcon';
import { useInvenTreeContext } from '../plugins/PluginContext';
diff --git a/src/frontend/src/components/nav/NavigationDrawer.tsx b/src/frontend/src/components/nav/NavigationDrawer.tsx
index b488af6ab8..c7a8d3f057 100644
--- a/src/frontend/src/components/nav/NavigationDrawer.tsx
+++ b/src/frontend/src/components/nav/NavigationDrawer.tsx
@@ -3,6 +3,7 @@ import { Container, Drawer, Flex, Group, Space } from '@mantine/core';
import { useViewportSize } from '@mantine/hooks';
import { useEffect, useMemo, useRef, useState } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { AboutLinks, DocumentationLinks } from '../../defaults/links';
@@ -12,7 +13,6 @@ import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
import { InvenTreeLogo } from '../items/InvenTreeLogo';
import { type 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[] = [];
diff --git a/src/frontend/src/components/nav/NavigationTree.tsx b/src/frontend/src/components/nav/NavigationTree.tsx
index 9a4937a24a..edca9924c5 100644
--- a/src/frontend/src/components/nav/NavigationTree.tsx
+++ b/src/frontend/src/components/nav/NavigationTree.tsx
@@ -23,6 +23,7 @@ import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
@@ -34,7 +35,6 @@ import {
import { t } from '@lingui/core/macro';
import { useApi } from '../../contexts/ApiContext';
import { ApiIcon } from '../items/ApiIcon';
-import { StylishText } from '../items/StylishText';
/*
* A generic navigation tree component.
diff --git a/src/frontend/src/components/nav/NotificationDrawer.tsx b/src/frontend/src/components/nav/NotificationDrawer.tsx
index b8f93ea8ed..0977264700 100644
--- a/src/frontend/src/components/nav/NotificationDrawer.tsx
+++ b/src/frontend/src/components/nav/NotificationDrawer.tsx
@@ -23,6 +23,8 @@ import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { Boundary } from '@lib/components/Boundary';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType';
@@ -32,8 +34,6 @@ import { getBaseUrl } from '@lib/functions/Navigation';
import { navigateToLink } from '@lib/functions/Navigation';
import { api } from '../../App';
import { useUserState } from '../../states/UserState';
-import { Boundary } from '../Boundary';
-import { StylishText } from '../items/StylishText';
/**
* Render a single notification entry in the drawer
@@ -137,7 +137,7 @@ export function NotificationDrawer({
const markAllAsRead = useCallback(() => {
api
- .get(apiUrl(ApiEndpoints.notifications_readall), {
+ .post(apiUrl(ApiEndpoints.notifications_readall), {
params: {
read: false
}
diff --git a/src/frontend/src/components/nav/PageDetail.tsx b/src/frontend/src/components/nav/PageDetail.tsx
index d133a557d5..e91afa384a 100644
--- a/src/frontend/src/components/nav/PageDetail.tsx
+++ b/src/frontend/src/components/nav/PageDetail.tsx
@@ -1,11 +1,11 @@
import { Group, Paper, Space, Stack, Text } from '@mantine/core';
import { useHotkeys } from '@mantine/hooks';
+import { StylishText } from '@lib/components/StylishText';
+import { shortenString } from '@lib/functions/String';
import { Fragment, type ReactNode, useMemo } from 'react';
-import { shortenString } from '../../functions/tables';
import { useUserSettingsState } from '../../states/SettingsStates';
import { ApiImage } from '../images/ApiImage';
-import { StylishText } from '../items/StylishText';
import { type Breadcrumb, BreadcrumbList } from './BreadcrumbList';
import PageTitle from './PageTitle';
@@ -17,6 +17,7 @@ interface PageDetailInterface {
badges?: ReactNode[];
breadcrumbs?: Breadcrumb[];
lastCrumb?: Breadcrumb[];
+ thumbnailUrl?: string;
breadcrumbAction?: () => void;
actions?: ReactNode[];
editAction?: () => void;
@@ -35,6 +36,7 @@ export function PageDetail({
subtitle,
badges,
imageUrl,
+ thumbnailUrl,
breadcrumbs,
lastCrumb: last_crumb,
breadcrumbAction,
@@ -108,6 +110,7 @@ export function PageDetail({
{imageUrl && (
) : (
- )
+ ),
+ supportsDirty: true
};
}
diff --git a/src/frontend/src/components/panels/Panel.tsx b/src/frontend/src/components/panels/Panel.tsx
index 2fafd2283b..548dc4bac5 100644
--- a/src/frontend/src/components/panels/Panel.tsx
+++ b/src/frontend/src/components/panels/Panel.tsx
@@ -13,6 +13,7 @@ export type PanelType = {
hidden?: boolean;
disabled?: boolean;
showHeadline?: boolean;
+ supportsDirty?: boolean;
};
export type PanelGroupType = {
diff --git a/src/frontend/src/components/panels/PanelGroup.tsx b/src/frontend/src/components/panels/PanelGroup.tsx
index 8ec6084fae..585eafc466 100644
--- a/src/frontend/src/components/panels/PanelGroup.tsx
+++ b/src/frontend/src/components/panels/PanelGroup.tsx
@@ -32,19 +32,20 @@ import {
useParams
} from 'react-router-dom';
-import type { ModelType } from '@lib/enums/ModelType';
+import { Boundary } from '@lib/components/Boundary';
+import { StylishText } from '@lib/components/StylishText';
+import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType';
import { identifierString } from '@lib/functions/Conversion';
import { cancelEvent } from '@lib/functions/Events';
import { eventModified, getBaseUrl } from '@lib/functions/Navigation';
import { navigateToLink } from '@lib/functions/Navigation';
import { t } from '@lingui/core/macro';
+import { useWindowEvent } from '@mantine/hooks';
import { useShallow } from 'zustand/react/shallow';
import { generateUrl } from '../../functions/urls';
import { usePluginPanels } from '../../hooks/UsePluginPanels';
import { useLocalState } from '../../states/LocalState';
import { vars } from '../../theme';
-import { Boundary } from '../Boundary';
-import { StylishText } from '../items/StylishText';
import type { PanelGroupType, PanelType } from '../panels/Panel';
import * as classes from './PanelGroup.css';
@@ -60,6 +61,8 @@ import * as classes from './PanelGroup.css';
* @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)
+ * @param pluginPanelWithoutId - If true, the panel group will load plugin panels even with no id provided
+ * @param pluginPanelKey - The plugin panel key to use when loading plugin panels for this group from the backend
*/
export type PanelProps = {
pageKey: string;
@@ -67,11 +70,13 @@ export type PanelProps = {
groups?: PanelGroupType[];
instance?: any;
reloadInstance?: () => void;
- model?: ModelType | string;
+ model?: ModelType;
id?: number | null;
selectedPanel?: string;
onPanelChange?: (panel: string) => void;
collapsible?: boolean;
+ pluginPanelWithoutId?: boolean;
+ pluginPanelKey?: PluginPanelKey;
};
function BasePanelGroup({
@@ -84,7 +89,9 @@ function BasePanelGroup({
instance,
model,
id,
- collapsible = true
+ collapsible = true,
+ pluginPanelWithoutId = false,
+ pluginPanelKey
}: Readonly): ReactNode {
const localState = useLocalState();
const location = useLocation();
@@ -95,9 +102,17 @@ function BasePanelGroup({
const [expanded, setExpanded] = useState(true);
// Hook to load plugins for this panel
+ const _pluginId = useMemo(() => {
+ if (id === undefined && pluginPanelWithoutId) return null;
+ return id;
+ }, [id, pluginPanelWithoutId]);
+ const _pluginKey = useMemo(() => {
+ if (model === undefined && pluginPanelWithoutId) return pluginPanelKey;
+ return model;
+ }, [model, pluginPanelWithoutId, pluginPanelKey]);
const pluginPanelSet = usePluginPanels({
- id: id,
- model: model,
+ id: _pluginId,
+ model: _pluginKey,
instance: instance,
reloadFunc: reloadInstance
});
@@ -173,6 +188,17 @@ function BasePanelGroup({
const handlePanelChange = useCallback(
(targetPanel: string, event?: any) => {
cancelEvent(event);
+
+ // check if we are currently on a dirty panel, if so prompt the user to confirm navigation
+ if (isDirty) {
+ const confirm = globalThis.confirm(
+ t`You have unsaved changes, are you sure you want to navigate away from this panel?`
+ );
+ if (!confirm) {
+ return;
+ }
+ }
+
if (event && eventModified(event)) {
const url = `${location.pathname}/../${targetPanel}`;
navigateToLink(url, navigate, event);
@@ -186,6 +212,9 @@ function BasePanelGroup({
if (targetPanel && onPanelChange) {
onPanelChange(targetPanel);
}
+
+ // change dirty state
+ setIsDirty(false);
},
[activePanels, navigate, location, onPanelChange]
);
@@ -206,6 +235,13 @@ function BasePanelGroup({
}
}, [activePanels, panel]);
+ const [isDirty, setIsDirty] = useState(false);
+ useWindowEvent('beforeunload', (event) => {
+ if (isDirty) {
+ event.preventDefault();
+ }
+ });
+
return (
@@ -341,7 +377,7 @@ function BasePanelGroup({
>
)}
- {panel.content}
+ {getPanelContent(panel.content, panel, setIsDirty)}
@@ -353,6 +389,39 @@ function BasePanelGroup({
);
}
+/*
+ * Helper function to inject the setIsDirty callback into panel content if supported
+ * This allows panels to mark themselves as dirty when changes are made, which will trigger a confirmation prompt when navigating away from the panel
+ */
+function getPanelContent(
+ content: ReactNode,
+ panel: PanelType,
+ setIsDirty?: (dirty: boolean) => void
+): ReactNode {
+ if (content === null) {
+ return null;
+ }
+
+ // pass setIsDirty callback to content if supported
+ if (
+ panel.supportsDirty &&
+ typeof content === 'object' &&
+ 'props' in content &&
+ setIsDirty
+ ) {
+ return {
+ ...content,
+ props: {
+ ...(content.props || {}),
+ setDirtyCallback: setIsDirty
+ }
+ };
+ }
+
+ // normal content, just return as is
+ return content;
+}
+
function IndexPanelComponent({
pageKey,
selectedPanel,
diff --git a/src/frontend/src/components/plugins/PluginContext.tsx b/src/frontend/src/components/plugins/PluginContext.tsx
index d306db7d3f..0c527fb507 100644
--- a/src/frontend/src/components/plugins/PluginContext.tsx
+++ b/src/frontend/src/components/plugins/PluginContext.tsx
@@ -17,7 +17,9 @@ import {
INVENTREE_REACT_VERSION,
type InvenTreePluginContext
} from '@lib/types/Plugins';
+import type { InvenTreeTableRenderProps } from '@lib/types/Tables';
import { i18n } from '@lingui/core';
+import { useContextMenu } from 'mantine-contextmenu';
import { defaultLocale } from '../../contexts/LanguageContext';
import {
useAddStockItem,
@@ -43,6 +45,7 @@ import {
openGlobalImporter
} from '../../states/ImporterState';
import { useServerApiState } from '../../states/ServerApiState';
+import { InvenTreeTableInternal } from '../../tables/InvenTreeTable';
import { RenderInstance } from '../render/Instance';
export const useInvenTreeContext = () => {
@@ -54,6 +57,7 @@ export const useInvenTreeContext = () => {
const theme = useMantineTheme();
const globalSettings = useGlobalSettingsState();
const userSettings = useUserSettingsState();
+ const { showContextMenu } = useContextMenu();
const contextData = useMemo(() => {
return {
@@ -83,6 +87,14 @@ export const useInvenTreeContext = () => {
isOpen: () => getGlobalImporterState().isOpen,
sessionId: () => getGlobalImporterState().sessionId
},
+ tables: {
+ renderTable: (props: InvenTreeTableRenderProps) => (
+
+ )
+ },
forms: {
bulkEdit: useBulkEditApiFormModal,
create: useCreateApiFormModal,
diff --git a/src/frontend/src/components/plugins/PluginDrawer.tsx b/src/frontend/src/components/plugins/PluginDrawer.tsx
index 02a97b51e7..a1f78215fa 100644
--- a/src/frontend/src/components/plugins/PluginDrawer.tsx
+++ b/src/frontend/src/components/plugins/PluginDrawer.tsx
@@ -4,10 +4,10 @@ import { IconExclamationCircle } from '@tabler/icons-react';
import { useMemo } from 'react';
import { useParams } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { useInstance } from '../../hooks/UseInstance';
import { InfoItem } from '../items/InfoItem';
-import { StylishText } from '../items/StylishText';
import { PluginSettingList } from '../settings/SettingList';
import type { PluginInterface } from './PluginInterface';
import PluginSettingsPanel from './PluginSettingsPanel';
diff --git a/src/frontend/src/components/plugins/RemoteComponent.tsx b/src/frontend/src/components/plugins/RemoteComponent.tsx
index 0b0c03823f..671dc7c5a0 100644
--- a/src/frontend/src/components/plugins/RemoteComponent.tsx
+++ b/src/frontend/src/components/plugins/RemoteComponent.tsx
@@ -3,6 +3,7 @@ import { Alert, MantineProvider, Stack, Text } from '@mantine/core';
import { IconExclamationCircle } from '@tabler/icons-react';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
+import { Boundary } from '@lib/components/Boundary';
import { identifierString } from '@lib/functions/Conversion';
import type { InvenTreePluginContext } from '@lib/types/Plugins';
import { type Root, createRoot } from 'react-dom/client';
@@ -10,7 +11,6 @@ import { api, queryClient } from '../../App';
import { ApiProvider } from '../../contexts/ApiContext';
import { LanguageContext } from '../../contexts/LanguageContext';
import { useLocalState } from '../../states/LocalState';
-import { Boundary } from '../Boundary';
import { findExternalPluginFunction } from './PluginSource';
/**
diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx
index d368f7554c..b21c820fd5 100644
--- a/src/frontend/src/components/render/Instance.tsx
+++ b/src/frontend/src/components/render/Instance.tsx
@@ -21,8 +21,8 @@ import type {
RenderInstanceProps
} from '@lib/types/Rendering';
export type { InstanceRenderInterface } from '@lib/types/Rendering';
+import { shortenString } from '@lib/functions/String';
import { useApi } from '../../contexts/ApiContext';
-import { shortenString } from '../../functions/tables';
import { Thumbnail } from '../images/Thumbnail';
import { RenderBuildItem, RenderBuildLine, RenderBuildOrder } from './Build';
import {
diff --git a/src/frontend/src/components/render/Part.tsx b/src/frontend/src/components/render/Part.tsx
index 14be70f6ce..ed5ddf7d9c 100644
--- a/src/frontend/src/components/render/Part.tsx
+++ b/src/frontend/src/components/render/Part.tsx
@@ -5,7 +5,7 @@ import type { ReactNode } from 'react';
import { ModelType } from '@lib/enums/ModelType';
import { formatDecimal } from '@lib/functions/Formatting';
import { getDetailUrl } from '@lib/functions/Navigation';
-import { shortenString } from '../../functions/tables';
+import { shortenString } from '@lib/functions/String';
import { TableHoverCard } from '../../tables/TableHoverCard';
import { ApiIcon } from '../items/ApiIcon';
import { type InstanceRenderInterface, RenderInlineModel } from './Instance';
diff --git a/src/frontend/src/components/render/Stock.tsx b/src/frontend/src/components/render/Stock.tsx
index 1e5a13b25e..1ecd89809b 100644
--- a/src/frontend/src/components/render/Stock.tsx
+++ b/src/frontend/src/components/render/Stock.tsx
@@ -5,7 +5,7 @@ import type { ReactNode } from 'react';
import { ModelType } from '@lib/enums/ModelType';
import { formatDecimal } from '@lib/functions/Formatting';
import { getDetailUrl } from '@lib/functions/Navigation';
-import { shortenString } from '../../functions/tables';
+import { shortenString } from '@lib/functions/String';
import { TableHoverCard } from '../../tables/TableHoverCard';
import { ApiIcon } from '../items/ApiIcon';
import {
diff --git a/src/frontend/src/components/settings/FactItem.tsx b/src/frontend/src/components/settings/FactItem.tsx
index 6daa2a3065..7ec8b54841 100644
--- a/src/frontend/src/components/settings/FactItem.tsx
+++ b/src/frontend/src/components/settings/FactItem.tsx
@@ -1,6 +1,6 @@
import { Paper, Stack, Text } from '@mantine/core';
-import { StylishText } from '../items/StylishText';
+import { StylishText } from '@lib/components/StylishText';
export function FactItem({
title,
diff --git a/src/frontend/src/components/settings/SettingItem.tsx b/src/frontend/src/components/settings/SettingItem.tsx
index 8b9b3ef84e..d188eff8b2 100644
--- a/src/frontend/src/components/settings/SettingItem.tsx
+++ b/src/frontend/src/components/settings/SettingItem.tsx
@@ -13,13 +13,13 @@ import {
import { IconEdit } from '@tabler/icons-react';
import { useCallback, useEffect, useMemo, useState } from 'react';
+import { Boundary } from '@lib/components/Boundary';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import type { Setting } from '@lib/types/Settings';
import { api } from '../../App';
import { vars } from '../../theme';
-import { Boundary } from '../Boundary';
import { RenderInstance } from '../render/Instance';
type ConfirmResult = {
diff --git a/src/frontend/src/components/wizards/OrderPartsWizard.tsx b/src/frontend/src/components/wizards/OrderPartsWizard.tsx
index eaaa221733..e026cae9fb 100644
--- a/src/frontend/src/components/wizards/OrderPartsWizard.tsx
+++ b/src/frontend/src/components/wizards/OrderPartsWizard.tsx
@@ -1,5 +1,6 @@
import { ActionButton } from '@lib/components/ActionButton';
import { AddItemButton } from '@lib/components/AddItemButton';
+import { CopyButton } from '@lib/components/CopyButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
@@ -32,7 +33,6 @@ import { useCreateApiFormModal } from '../../hooks/UseForm';
import { useInstance } from '../../hooks/UseInstance';
import useWizard from '../../hooks/UseWizard';
import { RenderPartColumn } from '../../tables/ColumnRenderers';
-import { CopyButton } from '../buttons/CopyButton';
import RemoveRowButton from '../buttons/RemoveRowButton';
import { StandaloneField } from '../forms/StandaloneField';
import Expand from '../items/Expand';
@@ -166,7 +166,8 @@ function PartRequirementsInfo({
* - part: The part instance
* - supplier_part: The selected supplier part instance
* - purchase_order: The selected purchase order instance
- * - quantity: The quantity of the part to order
+ * - quantity: The quantity of the part to order (taking supplier pack size into account)
+ * - quantity_raw: The raw quantity entered by the user (before adjusting for supplier pack size)
* - errors: Error messages for each attribute
*/
interface PartOrderRecord {
@@ -174,6 +175,7 @@ interface PartOrderRecord {
supplier_part: any;
purchase_order: any;
quantity: number;
+ quantity_raw?: number;
errors: any;
}
@@ -277,6 +279,7 @@ function SelectPartsStep({
{
accessor: 'part',
title: t`Part`,
+ minWidth: 200,
render: (record: PartOrderRecord) => (
@@ -375,7 +378,7 @@ function SelectPartsStep({
{
accessor: 'quantity',
title: t`Quantity`,
- width: 150,
+ width: 175,
render: (record: PartOrderRecord) => (
{
if (record.part.pk === partId) {
records[index].quantity = quantity;
+
+ if (records[index].quantity_raw === undefined) {
+ records[index].quantity_raw = quantity;
+ }
}
});
@@ -499,6 +511,21 @@ export default function OrderPartsWizard({
records.forEach((record: PartOrderRecord, index: number) => {
if (record.part.pk === partId) {
records[index].supplier_part = supplierPart;
+
+ if (!records[index].quantity_raw && !!records[index].quantity) {
+ records[index].quantity_raw = records[index].quantity;
+ }
+
+ if (
+ supplierPart?.pack_quantity_native &&
+ records[index].quantity_raw
+ ) {
+ // Adjust the quantity based on the supplier pack size
+ records[index].quantity = Math.max(
+ 0,
+ records[index].quantity_raw / supplierPart.pack_quantity_native
+ );
+ }
}
});
@@ -536,7 +563,13 @@ export default function OrderPartsWizard({
/>
);
},
- [selectedParts]
+ [
+ selectedParts,
+ removePart,
+ selectQuantity,
+ selectSupplierPart,
+ selectPurchaseOrder
+ ]
);
const canStepForward = useCallback(
@@ -614,13 +647,17 @@ export default function OrderPartsWizard({
const on_order = part.ordering ?? 0;
const in_production = part.building ?? 0;
- const to_order = required - on_hand - on_order - in_production;
+ const to_order = Math.max(
+ 0,
+ required - on_hand - on_order - in_production
+ );
records.push({
part: part,
supplier_part: undefined,
purchase_order: undefined,
- quantity: Math.max(to_order, 0),
+ quantity: to_order,
+ quantity_raw: undefined,
errors: {}
});
}
diff --git a/src/frontend/src/components/wizards/WizardDrawer.tsx b/src/frontend/src/components/wizards/WizardDrawer.tsx
index 1d5ea53ae9..a09955d5e7 100644
--- a/src/frontend/src/components/wizards/WizardDrawer.tsx
+++ b/src/frontend/src/components/wizards/WizardDrawer.tsx
@@ -1,3 +1,5 @@
+import { Boundary } from '@lib/components/Boundary';
+import { StylishText } from '@lib/components/StylishText';
import { t } from '@lingui/core/macro';
import {
ActionIcon,
@@ -16,8 +18,6 @@ import {
IconCircleCheck
} from '@tabler/icons-react';
import { type ReactNode, useCallback, useMemo } from 'react';
-import { Boundary } from '../Boundary';
-import { StylishText } from '../items/StylishText';
/**
* Progress stepper displayed at the top of the wizard drawer.
diff --git a/src/frontend/src/contexts/LanguageContext.tsx b/src/frontend/src/contexts/LanguageContext.tsx
index ef6d8b902e..2bf33232ad 100644
--- a/src/frontend/src/contexts/LanguageContext.tsx
+++ b/src/frontend/src/contexts/LanguageContext.tsx
@@ -3,11 +3,11 @@ import { I18nProvider } from '@lingui/react';
import { LoadingOverlay, Text } from '@mantine/core';
import { type JSX, useEffect, useRef, useState } from 'react';
+import { useStoredTableState } from '@lib/states/StoredTableState';
import { useShallow } from 'zustand/react/shallow';
import { api } from '../App';
import { useLocalState } from '../states/LocalState';
import { useServerApiState } from '../states/ServerApiState';
-import { useStoredTableState } from '../states/StoredTableState';
import { fetchGlobalStates } from '../states/states';
export const defaultLocale = 'en';
diff --git a/src/frontend/src/defaults/links.tsx b/src/frontend/src/defaults/links.tsx
index 9198dad1c8..b4dd7ea616 100644
--- a/src/frontend/src/defaults/links.tsx
+++ b/src/frontend/src/defaults/links.tsx
@@ -2,6 +2,7 @@ import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
import { openContextModal } from '@mantine/modals';
+import { StylishText } from '@lib/components/StylishText';
import { UserRoles } from '@lib/enums/Roles';
import type { SettingsStateProps } from '@lib/types/Settings';
import type { UserStateProps } from '@lib/types/User';
@@ -15,7 +16,6 @@ import {
} from '@tabler/icons-react';
import type { ReactNode } from 'react';
import type { MenuLinkItem } from '../components/items/MenuLinks';
-import { StylishText } from '../components/items/StylishText';
type NavTab = {
name: string;
diff --git a/src/frontend/src/forms/BomForms.tsx b/src/frontend/src/forms/BomForms.tsx
index d512c66428..f701c9e517 100644
--- a/src/frontend/src/forms/BomForms.tsx
+++ b/src/frontend/src/forms/BomForms.tsx
@@ -12,6 +12,7 @@ import { RenderPart } from '../components/render/Part';
import { showApiErrorMessage } from '../functions/notifications';
import { useCreateApiFormModal } from '../hooks/UseForm';
import { useUserState } from '../states/UserState';
+import { usePartFields } from './PartForms';
/**
* Field set for BomItem form
@@ -21,6 +22,10 @@ export function bomItemFields({
}: {
showAssembly?: boolean;
}): ApiFormFieldSet {
+ const newPartFields = usePartFields({
+ create: true
+ });
+
return {
part: {
disabled: true,
@@ -30,7 +35,8 @@ export function bomItemFields({
filters: {
active: true, // Only show active parts when creating a new BOM item
component: true
- }
+ },
+ addCreateFields: newPartFields
},
quantity: {},
reference: {},
diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx
index 2fc4b447eb..0707f433db 100644
--- a/src/frontend/src/forms/BuildForms.tsx
+++ b/src/frontend/src/forms/BuildForms.tsx
@@ -8,7 +8,6 @@ import {
IconList,
IconSitemap,
IconTruckDelivery,
- IconUser,
IconUsersGroup
} from '@tabler/icons-react';
import { useEffect, useMemo, useState } from 'react';
@@ -128,12 +127,6 @@ export function useBuildOrderFields({
link: {
icon:
},
- issued_by: {
- icon: ,
- filters: {
- is_active: true
- }
- },
responsible: {
icon: ,
filters: {
diff --git a/src/frontend/src/forms/CommonForms.tsx b/src/frontend/src/forms/CommonForms.tsx
index 28b1ccee5d..8950c6fc65 100644
--- a/src/frontend/src/forms/CommonForms.tsx
+++ b/src/frontend/src/forms/CommonForms.tsx
@@ -12,6 +12,7 @@ import type {
} from '../components/render/StatusRenderer';
import { useApi } from '../contexts/ApiContext';
import { useGlobalStatusState } from '../states/GlobalStatusState';
+import { useUserState } from '../states/UserState';
export function projectCodeFields(): ApiFormFieldSet {
return {
@@ -97,6 +98,25 @@ export function extraLineItemFields(): ApiFormFieldSet {
};
}
+export function useParameterTemplateFields(): ApiFormFieldSet {
+ return useMemo(() => {
+ return {
+ name: {},
+ description: {},
+ units: {},
+ model_type: {},
+ choices: {},
+ checkbox: {},
+ selectionlist: {
+ filters: {
+ active: true
+ }
+ },
+ enabled: {}
+ };
+ }, []);
+}
+
export function useParameterFields({
modelType,
modelId
@@ -106,6 +126,10 @@ export function useParameterFields({
}): ApiFormFieldSet {
const api = useApi();
+ const user = useUserState.getState();
+
+ const templateCreateFields = useParameterTemplateFields();
+
const [selectionListId, setSelectionListId] = useState(null);
// Valid field choices
@@ -193,7 +217,8 @@ export function useParameterFields({
} else if (record?.selectionlist) {
setFieldType('related field');
}
- }
+ },
+ addCreateFields: user.isStaff() ? templateCreateFields : undefined
},
data: {
value: data,
@@ -244,5 +269,14 @@ export function useParameterFields({
},
note: {}
};
- }, [data, modelType, fieldType, choices, modelId, selectionListId]);
+ }, [
+ data,
+ modelType,
+ fieldType,
+ choices,
+ modelId,
+ selectionListId,
+ templateCreateFields,
+ user
+ ]);
}
diff --git a/src/frontend/src/forms/CompanyForms.tsx b/src/frontend/src/forms/CompanyForms.tsx
index e94bfedded..9cefd6147f 100644
--- a/src/frontend/src/forms/CompanyForms.tsx
+++ b/src/frontend/src/forms/CompanyForms.tsx
@@ -12,7 +12,7 @@ import {
IconPackage,
IconPhone
} from '@tabler/icons-react';
-import { useMemo } from 'react';
+import { useMemo, useState } from 'react';
/**
* Field set for SupplierPart instance
@@ -26,6 +26,8 @@ export function useSupplierPartFields({
manufacturerPartId?: number;
partId?: number;
}) {
+ const [part, setPart] = useState({});
+
return useMemo(() => {
const fields: ApiFormFieldSet = {
part: {
@@ -35,6 +37,9 @@ export function useSupplierPartFields({
part: partId,
purchaseable: true,
active: true
+ },
+ onValueChange: (value: any, record: any) => {
+ setPart(record);
}
},
manufacturer_part: {
@@ -50,12 +55,27 @@ export function useSupplierPartFields({
...adjust.filters,
part: adjust.data.part
};
+ },
+ addCreateFields: {
+ part: {
+ value: part?.pk,
+ disabled: !!part?.pk
+ },
+ manufacturer: {},
+ MPN: {},
+ description: {},
+ link: {}
}
},
supplier: {
filters: {
active: true,
is_supplier: true
+ },
+ addCreateFields: {
+ name: {},
+ description: {},
+ is_supplier: { value: true, hidden: true }
}
},
SKU: {
@@ -77,7 +97,7 @@ export function useSupplierPartFields({
};
return fields;
- }, [manufacturerId, manufacturerPartId, partId]);
+ }, [manufacturerId, manufacturerPartId, partId, part]);
}
export function useManufacturerPartFields() {
@@ -88,6 +108,11 @@ export function useManufacturerPartFields() {
filters: {
active: true,
is_manufacturer: true
+ },
+ addCreateFields: {
+ name: {},
+ description: {},
+ is_manufacturer: { value: true, hidden: true }
}
},
MPN: {},
diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx
index 0f87fd5673..d7ac96e597 100644
--- a/src/frontend/src/forms/PurchaseOrderForms.tsx
+++ b/src/frontend/src/forms/PurchaseOrderForms.tsx
@@ -37,6 +37,7 @@ import RemoveRowButton from '../components/buttons/RemoveRowButton';
import { StandaloneField } from '../components/forms/StandaloneField';
import { ProgressBar } from '@lib/components/ProgressBar';
+import { StylishText } from '@lib/components/StylishText';
import { apiUrl } from '@lib/functions/Api';
import { toNumber } from '@lib/functions/Conversion';
import type {
@@ -48,7 +49,6 @@ import {
type TableFieldRowProps
} from '../components/forms/fields/TableField';
import { Thumbnail } from '../components/images/Thumbnail';
-import { StylishText } from '../components/items/StylishText';
import { getStatusCodeOptions } from '../components/render/StatusRenderer';
import { InvenTreeIcon } from '../functions/icons';
import { useCreateApiFormModal } from '../hooks/UseForm';
@@ -142,6 +142,12 @@ export function usePurchaseOrderLineItemFields({
...adjust.filters,
supplier: supplierId
};
+ },
+ addCreateFields: {
+ part: {},
+ SKU: {},
+ description: {},
+ supplier: { hidden: true }
}
},
line: {},
@@ -241,6 +247,11 @@ export function usePurchaseOrderFields({
filters: {
is_supplier: true,
active: true
+ },
+ addCreateFields: {
+ name: {},
+ description: {},
+ is_supplier: { value: true, hidden: true }
}
},
supplier_reference: {},
diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx
index 5239a6101e..52cd670a19 100644
--- a/src/frontend/src/forms/SalesOrderForms.tsx
+++ b/src/frontend/src/forms/SalesOrderForms.tsx
@@ -48,6 +48,11 @@ export function useSalesOrderFields({
filters: {
is_customer: true,
active: true
+ },
+ addCreateFields: {
+ name: {},
+ description: {},
+ is_customer: { value: true, hidden: true }
}
},
customer_reference: {},
diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx
index 2813df940e..525f7231a9 100644
--- a/src/frontend/src/forms/StockForms.tsx
+++ b/src/frontend/src/forms/StockForms.tsx
@@ -31,6 +31,7 @@ import { api } from '../App';
import RemoveRowButton from '../components/buttons/RemoveRowButton';
import { StandaloneField } from '../components/forms/StandaloneField';
+import { StylishText } from '@lib/components/StylishText';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
import type {
@@ -45,7 +46,6 @@ import {
type TableFieldRowProps
} from '../components/forms/fields/TableField';
import { Thumbnail } from '../components/images/Thumbnail';
-import { StylishText } from '../components/items/StylishText';
import { StatusRenderer } from '../components/render/StatusRenderer';
import { RenderStockLocation } from '../components/render/Stock';
import { InvenTreeIcon } from '../functions/icons';
diff --git a/src/frontend/src/functions/auth.tsx b/src/frontend/src/functions/auth.tsx
index e2e58d4da4..6f541f049c 100644
--- a/src/frontend/src/functions/auth.tsx
+++ b/src/frontend/src/functions/auth.tsx
@@ -212,6 +212,10 @@ export const doLogout = async (navigate: NavigateFunction) => {
await authApi(apiUrl(ApiEndpoints.auth_session), undefined, 'delete').catch(
() => {}
);
+ // remove MFA token (mfa_trusted)
+ document.cookie =
+ 'mfa_trusted=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
+
showLoginNotification({
title: t`Logged Out`,
message: t`Successfully logged out`
diff --git a/src/frontend/src/functions/forms.tsx b/src/frontend/src/functions/forms.tsx
index 6b2c6fb563..a2c59cef73 100644
--- a/src/frontend/src/functions/forms.tsx
+++ b/src/frontend/src/functions/forms.tsx
@@ -1,28 +1,6 @@
-import type { AxiosResponse } from 'axios';
-
-import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
-import { apiUrl } from '@lib/functions/Api';
-import type { PathParams } from '@lib/types/Core';
+import { invalidResponse, permissionDenied } from '@lib/functions/Notification';
import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms';
-import { invalidResponse, permissionDenied } from './notifications';
-
-/**
- * Construct an API url from the provided ApiFormProps object
- */
-export function constructFormUrl(
- url: ApiEndpoints | string,
- pk?: string | number,
- pathParams?: PathParams,
- queryParams?: URLSearchParams
-): string {
- let formUrl = apiUrl(url, pk, pathParams);
-
- if (queryParams) {
- formUrl += `?${queryParams.toString()}`;
- }
-
- return formUrl;
-}
+import type { AxiosResponse } from 'axios';
/**
* Extract the available fields (for a given method) from the response object
@@ -104,30 +82,6 @@ export function extractAvailableFields(
return processFields(actions[method]);
}
-export type NestedDict = { [key: string]: string | number | NestedDict };
-export function mapFields(
- fields: ApiFormFieldSet,
- fieldFunction: (path: string, value: ApiFormFieldType, key: string) => any,
- _path?: string
-): NestedDict {
- const res: NestedDict = {};
-
- for (const [k, v] of Object.entries(fields)) {
- const path = _path ? `${_path}.${k}` : k;
- let value: any;
-
- if (v.field_type === 'nested object' && v.children) {
- value = mapFields(v.children, fieldFunction, path);
- } else {
- value = fieldFunction(path, v, k);
- }
-
- if (value !== undefined) res[k] = value;
- }
-
- return res;
-}
-
/*
* Build a complete field definition based on the provided data
*/
diff --git a/src/frontend/src/functions/notifications.tsx b/src/frontend/src/functions/notifications.tsx
index 90fc97ba68..e84c6faac0 100644
--- a/src/frontend/src/functions/notifications.tsx
+++ b/src/frontend/src/functions/notifications.tsx
@@ -1,56 +1,7 @@
-import { t } from '@lingui/core/macro';
import { notifications } from '@mantine/notifications';
import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react';
import { extractErrorMessage } from './api';
-/**
- * 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',
- id: 'not-implemented'
- });
-}
-
-/**
- * Show a notification that the user does not have permission to perform the action
- */
-export function permissionDenied() {
- notifications.show({
- title: t`Permission Denied`,
- message: t`You do not have permission to perform this action`,
- color: 'red'
- });
-}
-
-/**
- * Display a notification on an invalid return code
- */
-export function invalidResponse(returnCode: number) {
- // TODO: Specific return code messages
- notifications.show({
- title: t`Invalid Return Code`,
- message: t`Server returned status ${returnCode}`,
- color: 'red'
- });
-}
-
-/**
- * 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.
diff --git a/src/frontend/src/hooks/UseCalendar.tsx b/src/frontend/src/hooks/UseCalendar.tsx
index 9d86ccdd8c..5c7556b5b3 100644
--- a/src/frontend/src/hooks/UseCalendar.tsx
+++ b/src/frontend/src/hooks/UseCalendar.tsx
@@ -1,6 +1,7 @@
import type FullCalendar from '@fullcalendar/react';
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useFilterSet from '@lib/hooks/UseFilterSet';
import type { FilterSetState } from '@lib/types/Filters';
import type { UseModalReturn } from '@lib/types/Modals';
import type { DateValue } from '@mantine/dates';
@@ -10,7 +11,6 @@ import { useCallback, useMemo, useRef, useState } from 'react';
import { api } from '../App';
import { showApiErrorMessage } from '../functions/notifications';
import useDataExport from './UseDataExport';
-import { useFilterSet } from './UseFilterSet';
/*
* Type definition for representing the state of a calendar:
diff --git a/src/frontend/src/hooks/UseModal.tsx b/src/frontend/src/hooks/UseModal.tsx
index 60a36f46c6..4bfb510cb5 100644
--- a/src/frontend/src/hooks/UseModal.tsx
+++ b/src/frontend/src/hooks/UseModal.tsx
@@ -2,8 +2,8 @@ import { Modal } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { useCallback } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import type { UseModalProps, UseModalReturn } from '@lib/types/Modals';
-import { StylishText } from '../components/items/StylishText';
import { useUserSettingsState } from '../states/SettingsStates';
export function useModal(props: UseModalProps): UseModalReturn {
diff --git a/src/frontend/src/hooks/UsePluginPanels.tsx b/src/frontend/src/hooks/UsePluginPanels.tsx
index c8559703e3..d94deea967 100644
--- a/src/frontend/src/hooks/UsePluginPanels.tsx
+++ b/src/frontend/src/hooks/UsePluginPanels.tsx
@@ -2,7 +2,7 @@ import { type UseQueryResult, useQuery } from '@tanstack/react-query';
import { useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
-import type { ModelType } from '@lib/enums/ModelType';
+import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import type { InvenTreePluginContext } from '@lib/types/Plugins';
import { api } from '../App';
@@ -39,7 +39,7 @@ export function usePluginPanels({
}: {
instance?: any;
reloadFunc?: () => void;
- model?: ModelType | string;
+ model?: ModelType | PluginPanelKey;
id?: string | number | null;
}): PluginPanelSet {
const globalSettings = useGlobalSettingsState();
diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po
index e4312b0435..4c2c1d172b 100644
--- a/src/frontend/src/locales/ar/messages.po
+++ b/src/frontend/src/locales/ar/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "نسخه مطابقة"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "تعديل"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "حذف"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "إلغاء"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "الإجراءات"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "بحث"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "تم رفع الصورة بنجاح"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "تمكين التعديل"
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr "الخيارات"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "اختر موقع المصدر لتخصيص المخزون"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "اختر موقع المصدر لتخصيص المخزون"
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "تم تخصيص عناصر المخزون"
@@ -4658,8 +4713,8 @@ msgstr "تم تخصيص عناصر المخزون"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po
index 280baef831..b4c2798afe 100644
--- a/src/frontend/src/locales/bg/messages.po
+++ b/src/frontend/src/locales/bg/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po
index e6bc8f35dd..340b9f0a3a 100644
--- a/src/frontend/src/locales/cs/messages.po
+++ b/src/frontend/src/locales/cs/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Chyba při vykreslování komponenty"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Došlo k chybě při vykreslování této komponenty. Více informací najdete v konzoli."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr "Zkuste znovu načíst stránku, pokud problém přetrvává, kontaktujte správce."
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Zkopírováno"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopírovat"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplikovat"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Upravit"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Odstranit"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Zrušit"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Akce"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Hledat"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Vybrat sloupce"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "V pořádku"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Ne"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Ne"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Díl"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Díly"
@@ -158,9 +184,9 @@ msgstr "Parametr"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametry"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Šablony testu položky"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Díly výrobce"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Kategorie dílu"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Kategorie dílů"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Skladová položka"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Skladové položky"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Umístění skladu"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Skladová umístění"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Typy skladových umístění"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Historie skladu"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Firmy"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Kód projektu"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Kódy projektu"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Objednávka"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Objednávky"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Řádky objednávky"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Prodejní objednávka"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Prodejní objednávky"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Vrácená objednávka"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Vrácené objednávky"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakty"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Správce"
@@ -458,7 +483,7 @@ msgstr "Správci"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Uživatel"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Uživatelé"
@@ -486,7 +511,7 @@ msgstr "Skupina"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Šablona štítku"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Šablony štítků"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Šablona hlášení"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Šablony hlášení"
@@ -547,17 +572,17 @@ msgstr "Výběrová pole"
#: lib/enums/ModelInformation.tsx:291
msgid "Selection Entry"
-msgstr ""
+msgstr "Výběr záznamu"
#: lib/enums/ModelInformation.tsx:292
msgid "Selection Entries"
-msgstr ""
+msgstr "Výběr záznamů"
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Chyba"
msgid "Errors"
msgstr "Chyby"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Administrace"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Vytvořené objednávky"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Není implementováno"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Tato funkce ještě není implementována"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Přístup odepřen"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "K provedení této akce nemáte oprávnění"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Neplatný kód odpovědi"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server vrátil stav {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Vypršel časový limit"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Vypršel časový limit žádosti."
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Proces se nezdařil"
msgid "Process completed successfully"
msgstr "Proces byl úspěšně dokončen"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Chyba při vykreslování komponenty"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Zadat data čárového kódu"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Skenovat čárový kód"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Čárkový kód neodpovídá očekávanému typu modelu"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Dokončeno"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Skenování čárového kódu se nezdařilo"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Skenování čárového kódu se nezdařilo"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Nepodařilo se propojit čárový kód"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Odkaz"
@@ -774,7 +824,7 @@ msgstr "Tímto odstraníte odkaz na přidružený čárový kód"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Odstranit čárový kód"
@@ -786,14 +836,6 @@ msgstr "Otevřít v administrátorském rozhraní"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Zkopírováno"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopírovat"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Tisk štítků"
@@ -889,11 +931,11 @@ msgstr "Odběr aktualizován"
#: src/components/buttons/StarredToggleButton.tsx:38
msgid "Subscription removed"
-msgstr ""
+msgstr "Odběr odstraněn"
#: src/components/buttons/StarredToggleButton.tsx:38
msgid "Subscription added"
-msgstr ""
+msgstr "Odběr přidán"
#: src/components/buttons/StarredToggleButton.tsx:57
#~ msgid "Unsubscribe from part"
@@ -930,7 +972,7 @@ msgstr "Příští měsíc"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Exportovat data"
@@ -947,15 +989,15 @@ msgstr "Chyba při aktualizaci objednávky"
msgid "Overdue"
msgstr "Po splatnosti"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Nepodařilo se načíst widgety hlavního panelu."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Nejsou vybrány žádné widgety"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Pomocí menu přidáte widgety do nástěnky"
@@ -1271,7 +1313,7 @@ msgstr "Superuser"
#: src/tables/settings/UserTable.tsx:285
#: src/tables/settings/UserTable.tsx:406
msgid "Administrator"
-msgstr ""
+msgstr "Administrátor"
#: src/components/details/Details.tsx:130
#: src/pages/core/UserDetail.tsx:87
@@ -1288,15 +1330,15 @@ msgstr "E-mail: "
msgid "No name defined"
msgstr "Žádný název není definován"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Odstranit obrázek"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
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:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,81 +1354,81 @@ msgstr "Odstranit přidružený obrázek z této položky?"
msgid "Remove"
msgstr "Odstranit"
-#: src/components/details/DetailsImage.tsx:88
-msgid "Image removed"
-msgstr ""
-
#: src/components/details/DetailsImage.tsx:89
+msgid "Image removed"
+msgstr "Obrázek odstraněn"
+
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
-msgstr ""
+msgstr "Obrázek byl úspěšně odstraněn"
#: src/components/details/DetailsImage.tsx:115
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
-msgstr ""
+msgstr "Přetažením nahrajete nebo vložte obrázek ze schránky"
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klepnutím vyberte soubor(y)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Obrázek byl nahrán"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Obrázek byl úspěšně nahrán"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Chyba nahrávání"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Vymazat"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Odeslat"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Vybrat z existujících obrázků"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Vybrat obrázek"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Stáhnout vzdálený obrázek"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Nahrát nový obrázek"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Nahrát obrázek"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Smazat obrázek"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Stáhnout obrázek"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Obraz byl úspěšně stažen"
@@ -1418,23 +1460,23 @@ msgstr "Obraz byl úspěšně stažen"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Nahrání obrázku se nezdařilo"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Obrázek byl úspěšně nahrán"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Poznámky byly úspěšně uloženy"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Nepodařilo se uložit poznámky"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Chyba při ukládání poznámek"
@@ -1442,15 +1484,15 @@ msgstr "Chyba při ukládání poznámek"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Uložit poznámky"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Zavřít editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Povolit úpravy"
@@ -1587,11 +1629,6 @@ msgstr "Stránka nebyla nalezena"
msgid "This page does not exist"
msgstr "Tato stránka neexistuje"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Přístup odepřen"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Nemáte oprávnění k prohlížení této stránky."
@@ -1604,8 +1641,8 @@ msgstr "Chyba serveru"
msgid "A server error occurred"
msgstr "Došlo k chybě serveru"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Chyba formuláře"
@@ -1613,11 +1650,11 @@ msgstr "Chyba formuláře"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Existují chyby pro jedno nebo více polí formuláře"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Přihlášení se nezdařilo"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Zkontrolujte vstup a zkuste to znovu."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "E-mail byl doručen úspěšně"
@@ -1808,7 +1845,7 @@ msgstr "Server"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Uložit výběr hostitele"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "Verze rozhraní API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Pluginy"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Vyberte balení"
msgid "{0} icons"
msgstr "Ikony {0}"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Načítání"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nebyly nalezeny žádné výsledky"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Položka"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr "Vytvořit nový {model}"
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Položka modelRenderer je požadovaná pro tabulky"
@@ -2060,7 +2107,7 @@ msgstr "Zpracovávání dat"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Vyskytla se chyba"
@@ -2148,7 +2195,7 @@ msgstr "Data byla úspěšně importována"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Zavřít"
@@ -2182,8 +2229,8 @@ msgstr "Možnosti"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Akce čárového kódu"
@@ -2276,7 +2323,7 @@ msgstr "Zvolit jazyk"
#: src/components/items/OnlyStaff.tsx:11
msgid "This information is only available for administrative users"
-msgstr ""
+msgstr "Tyto informace jsou k dispozici pouze pro administrativní uživatele"
#: 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."
@@ -2298,7 +2345,7 @@ msgstr "Aktualizace skupinových rolí"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Aktualizováno"
@@ -2344,9 +2391,9 @@ msgstr "Žádné položky"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Pracovník na pozadí není spuštěn"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Nastavení e-mailu"
@@ -2605,8 +2652,8 @@ msgstr "Další informace o {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,16 +2664,16 @@ msgstr "Notifikace"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
-msgstr ""
+msgid "Superuser Mode"
+msgstr "Režim superuživatele"
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
-msgstr ""
+msgid "Admin Mode"
+msgstr "Režim administrátora"
#: src/components/nav/Header.tsx:237
msgid "The current user has elevated privileges and should not be used for regular usage."
-msgstr ""
+msgstr "Aktuální uživatel má vyšší oprávnění a neměl by být používán pro běžné používání."
#: src/components/nav/Layout.tsx:144
msgid "Nothing found..."
@@ -2653,8 +2700,8 @@ msgstr "Nastavení"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Uživatelská nastavení"
@@ -2671,8 +2718,8 @@ msgstr "Uživatelská nastavení"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Nastavení systému"
@@ -2684,8 +2731,8 @@ msgstr "Nastavení systému"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centrum správce"
@@ -2722,24 +2769,26 @@ msgstr "Odhlásit"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Zásoby"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Výroba"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Nákup"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Odstranit skupinu vyhledávání"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Přílohy"
msgid "Notes"
msgstr "Poznámky"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plugin poskytnutý"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr "Máte neuložené změny, jste si jisti, že chcete opustit tento panel?"
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Sbalit panely"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Rozbalit panely"
@@ -2914,18 +2968,18 @@ msgstr "Informace o pluginu"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Datum"
@@ -2950,7 +3004,7 @@ msgstr "Datum"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Balík"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Nastavení pluginů"
@@ -3090,8 +3143,8 @@ msgstr "Doprava"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Neaktivní"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuální"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Není skladem"
@@ -3111,8 +3164,8 @@ msgstr "Není skladem"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "V objednávce"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detaily"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategorie"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategorie"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Lokace"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Sériové číslo"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Množství"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Další"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Upravit díl"
@@ -3891,8 +3946,8 @@ msgstr "Požadavky prodeje"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Na skladě"
msgid "Required Quantity"
msgstr "Požadované množství"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Nová objednávka"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Objednávka byla vytvořena"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Nová položka dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Položka dodavatele vytvořena"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Přidat do objednávky"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Položka přidána k objednávce"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Vyberte položku dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Kopírovat číslo dílu dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Nová položka dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Vyberte nákupní objednávku"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Nová objednávka"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Přidat do zvolené objednávky"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Nebyly vybrány žádné položky"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Nebyly vybrány žádné nakoupitelné položky"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Přidané položky"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Všechny vybrané části byly přidány do objednávky"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Musíte vybrat alespoň jednu položku pro objednávku"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Je vyžadována položka dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Je vyžadováno množství"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Neplatný výběr položky"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Opravte chyby ve vybraných položkách"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4279,15 +4334,15 @@ msgstr "Spravovat pluginy InvenTree"
#: src/defaults/defaultHostList.tsx:10
msgid "Local Server"
-msgstr ""
+msgstr "Místní server"
#: src/defaults/defaultHostList.tsx:12
msgid "InvenTree Demo"
-msgstr ""
+msgstr "Demo InvenTree"
#: src/defaults/defaultHostList.tsx:14
msgid "Current Server"
-msgstr ""
+msgstr "Aktuální server"
#: src/defaults/links.tsx:17
#~ msgid "GitHub"
@@ -4480,19 +4535,19 @@ msgstr "O InvenTree.org"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Náhradní díl"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Upravit náhrady kusovníku"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Přidat náhradu"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Náhrada přidána"
@@ -4506,33 +4561,33 @@ msgstr "Náhrada přidána"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Výstup sestavy"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Množství k dokončení"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Množství k dokončení"
msgid "Status"
msgstr "Stav"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Dokončit výstupy sestavy"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Výrobní příkaz byl dokončen"
@@ -4560,64 +4615,64 @@ msgstr "Výrobní příkaz byl dokončen"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Množství k vyřazení"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Vyřazení výstupů výrobních příkazů"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Vybrané výstupy výrobních příkazů budou vyhotoveny, ale označeny za vyřazené"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Přidělené skladové položky budou spotřebovány"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Výrobní příkaz byl vyřazen"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Výrobní příkaz byl vyřazen"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Zrušit výrobní příkazy"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Vybrané výrobní příkazy budou odstraněny"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Přidělené skladové položky budou vráceny do skladu"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Výrobní příkaz byl zrušen"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
-msgstr "IČO"
+msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IČO"
msgid "Allocated"
msgstr "Přiděleno"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Zdrojové umístění"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Vyberte umístění pro přiřazení zásob"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Vyberte umístění pro přiřazení zásob"
msgid "Allocate Stock"
msgstr "Přidělit zásoby"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Zásoba přidělena"
@@ -4658,8 +4713,8 @@ msgstr "Zásoba přidělena"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Spotřebovat zásoby"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Plně spotřebovány"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Spotřebovány"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Vyberte kód projektu pro tuto položku"
@@ -4698,7 +4753,7 @@ msgstr "Vyberte kód projektu pro tuto položku"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,74 +4792,74 @@ msgstr "Přihlásit se k odběru oznámení pro tuto kategorii"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Zvolte umístění"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Cíl položky byl vybrán"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Vybráno výchozí umístění kategorie dílu"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Vybráno skladové umístění"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Výchozí lokace vybrána"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtuální díl"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
-msgstr ""
+msgstr "Tento díl je virtuální, žádné fyzické zásoby nebudou přijaty."
#: src/forms/PurchaseOrderForms.tsx:566
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Nastavit umístění"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Přiřadit kód dávky"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Nastavit umístění"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Přiřadit kód dávky"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Přiřadit sériové čísla"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Nastavit datum expirace"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Upravit balení"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Změnit stav"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Přidat poznámku"
@@ -4812,22 +4867,22 @@ msgstr "Přidat poznámku"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Uložit ve výchozím umístění"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Uložit na cíl řádkového předmětu "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Uložit již s přijatými zásobami"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Uložit již s přijatými zásobami"
msgid "Batch Code"
msgstr "Kód dávky"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Zadat kód dávky pro příchozí položky skladu"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Sériová čísla"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Zadat sériová čísla pro příchozí skladové položky"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Datum expirace"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Zadejte datum expirace pro přijaté položky"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Balení"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Poznámka"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Číslo zboží (SKU)"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Číslo zboží (SKU)"
msgid "Received"
msgstr "Přijaté"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Řádek přijatých položek"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Přijaté položky"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Položka byla přijata na skladě"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr "Cena založena na dílu a množství se liší{0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Zkontrolovat zásilku"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Označení zásilky jako zkontrolovanou znamená, že jste ověřily, že všechny položky v této zásilce jsou správné"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Zásilka označena jako zkontrolována"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Odznačit zásilku"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Označení zásilky jako nezkontrolované znamená, že zásilka vyžaduje další ověření"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Zásilka označená jako nezkontrolována"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
-msgstr ""
+msgstr "Dokončování zásilky"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
-msgstr ""
+msgstr "Zásilka byla úspěšně dokončena"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Dokončit zásilku"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Ponechte prázdné pro použití adresy objednávky"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Stav skladu"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Vrátit"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Počet"
@@ -5229,7 +5284,7 @@ msgstr "Interní chyba serveru"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Odhlášen(a)"
@@ -5257,81 +5312,81 @@ msgstr "MFA přihlášení úspěšné"
msgid "MFA details were automatically provided in the browser"
msgstr "Údaje o MFA byly automaticky poskytnuty v prohlížeči"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Úspěšně odhlášen/a"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Jazyk změněn"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Váš aktivní jazyk byl změněn podle nastavení Vašeho profilu"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Motiv změněn"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Váš aktivní jazyk byl změněn podle nastavení Vašeho profilu"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Zkontrolujte doručenou poštu pro odkaz pro obnovení. Funguje to pouze v případě, že máte účet. Zkontrolujte také ve spamu."
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Obnovení selhalo"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Již přihlášeno!"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Vyskytl se konflikt relací na serveru pro tento prohlížeč, prosím nejdřív se odhlašte."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Přihlášen"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Úspěšně přihlášen/a"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Nepodařilo se nastavit MFA"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "Nastavení MFA bylo úspěšné"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "MFA přes TOTP bylo úspěšně nastaveno; budete se muset znovu přihlásit."
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Nastavení hesla"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Heslo bylo úspěšně nastaveno. Nyní se můžete přihlásit s novým heslem"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Heslo nelze změnit"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Dvě pole s hesly se neshodují"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Heslo bylo změněno"
@@ -5351,38 +5406,10 @@ msgstr "Heslo bylo změněno"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Není implementováno"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Tato funkce ještě není implementována"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "K provedení této akce nemáte oprávnění"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Neplatný kód odpovědi"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server vrátil stav {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Vypršel časový limit"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Vypršel časový limit žádosti."
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Exportování dat"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Odstranit vybrané skladové položky"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Akce skladu"
@@ -5811,73 +5838,73 @@ msgstr "Došlo k neočekávané chybě"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Skladová položka již byla naskenována"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Chyba API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Nepodařilo se načíst data instance"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Chyba skenování"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Vybrané prvky nejsou známé"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Vybráno více typů objektů"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Akce ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Akce ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Skenování čárového kódu"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Vstup čárového kódu"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Akce"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Nejsou vybrány žádné položky"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Skenovat a vybrat položky k provedení akcí"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Skenovat a vybrat položky k provedení akcí"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "Vybráno {0} položek"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Naskenované položky"
@@ -6593,7 +6620,7 @@ msgstr "Tečky"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Měna"
@@ -6661,11 +6688,11 @@ msgstr "Rychlé akce"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Domů"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Uživatelé / Přístup"
@@ -6673,27 +6700,27 @@ msgstr "Uživatelé / Přístup"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Import dat"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Export dat"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Skeny čárového kódu"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Úlohy na pozadí"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Hlášení chyb"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Měny"
@@ -6701,11 +6728,11 @@ msgstr "Měny"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Vlastní stavy"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Vlastní jednotky"
@@ -6715,12 +6742,12 @@ msgstr "Vlastní jednotky"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parametry kategorie"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Typy umístění"
@@ -6728,35 +6755,35 @@ msgstr "Typy umístění"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Stroje"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Operace"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Správa dat"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Reporty"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Rozšířit / integrovat"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Pokročilá nastavení"
@@ -6860,7 +6887,7 @@ msgstr "Připojit k modelu"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:32
msgid "Background worker running"
-msgstr ""
+msgstr "Pracovník na pozadí běží"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35
#~ msgid "Background Worker Not Running"
@@ -6949,11 +6976,15 @@ msgstr "Tokeny"
msgid "The settings below are specific to each available plugin"
msgstr "Níže uvedená nastavení jsou specifická pro každý dostupný plugin"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Ověření totožnosti"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr "Nastavení jednotného přihlášení (SSO)"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Čárové kódy"
@@ -6965,8 +6996,8 @@ msgstr "Čárové kódy"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Níže uvedená nastavení jsou specifická pro každou dostupnou metodu oznámení"
@@ -6974,21 +7005,29 @@ msgstr "Níže uvedená nastavení jsou specifická pro každou dostupnou metodu
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Ceník"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Štítky"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr "Vytvoření dílu"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr "Expirace zásob"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr "Inventura dílu"
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Sledování skladových položek"
@@ -6996,15 +7035,15 @@ msgstr "Sledování skladových položek"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Účet"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Zabezpečení"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Možnosti zobrazení"
@@ -7040,15 +7079,15 @@ msgstr "Označit jako nepřečtenou"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Žádné požadované položky"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Tato objednávka k sestavení nemá žádné požadované položky."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "Sestavená část nemusí mít definovaný kusovník (BOM) nebo je kusovník prázdný."
@@ -7056,6 +7095,18 @@ msgstr "Sestavená část nemusí mít definovaný kusovník (BOM) nebo je kusov
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Kusovník není ověřen"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr "Kusovník pro tuto sestavu nebyl potvrzen."
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "Sestavená část nemusí mít definovaný kusovník (BOM) nebo je kusov
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revize"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Vlastní status"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Vlastní status"
msgid "External"
msgstr "Externí"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Reference"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Nadřazená sestava"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Množství sestav"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Lze postavit"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Dokončené výstupy"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Vystavil"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Odpovědný"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Libovolné místo"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Cílové umístění"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Libovolné místo"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Vytvořeno"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Cílové umístění"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Vytvořeno"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Počáteční datum"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Cílové datum"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Dokončeno"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Detaily sestavy"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Požadované díly"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Přidělené zásoby"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Použité zásoby"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Neúplné výstupy"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Externí objednávky"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Podřízené objednávky sestavy"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Výsledky testu"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Upravit výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Přidat výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Zrušit výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Objednávka zrušena"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Zrušit tuto objednávku"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Pozastavit výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Pozastavit tento výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Objednávka pozastavena"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Zadat výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Zadat tuto objednávku"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Objednávka zadána"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Dokončit výrobní příkaz"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Označit tuto objednávku za dokončenou"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Objednávka dokončena"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Zadat objednávku"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Dokončit objednávku"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Akce výrobní objednávky"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Upravit objednávku"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplikovat objednávku"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Pozastavit objednávku"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Zrušit objednávku"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Zobrazit externí výrobní příkazy"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Zobrazit externí výrobní příkazy"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Zobrazení tabulky"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Zobrazení kalendáře"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Zobrazení kalendáře"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Parametrické zobrazení"
@@ -7470,7 +7522,7 @@ msgstr "Výrobce"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Externí odkaz"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Podrobnosti dílu"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Přidat položku"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Není skladem"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Skupinové role"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Informace o uživateli"
@@ -7678,7 +7730,7 @@ msgstr "Údaje o uživateli"
#: src/pages/core/UserDetail.tsx:206
msgid "Normal user"
-msgstr ""
+msgstr "Běžný uživatel"
#: src/pages/core/UserDetail.tsx:206
#~ msgid "Basic user"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Nadřazená kategorie"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Podkategorie"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Výchozí umístění"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Kategorie dílu nejvyšší úrovně"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Upravit kategorii dílu"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Přesunout položky do nadřazené kategorie"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Odstranit položky"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Odstranit kategorii dílu"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Akce s položkou"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Akce pro položky v této kategorii"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Akce pro podkategorie"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Akce pro podkategorie v této kategorii"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Akce kategorie."
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Podrobnosti o kategorii"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Přidělení výrobního přikazu"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Přidělení prodejní objednávky"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Schválit kusovník"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Chcete ověřit kusovník materiálu? (BOM)"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Kusovník ověřen"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "Kusovník pro tento díl byl potvrzen"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Kusovník není ověřen"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "Kusovník pro tento díl již byl ověřen, ale potřebuje překontrolovat"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "Kusovník pro tento díl ještě nebyl potvrzen"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Potvrzeno"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Potvrdil(a)"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Potvrdil(a)"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Varianty"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revize"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Potvrdil(a)"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Varianty"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revize"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Výchozí umístění"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Kategorie výchozího umístění"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Jednotky"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Klíčová slova"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Dostupná zásoba"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Na objednávku"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Vyžadováno pro objednávky"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Přířazeno výrobním objednávkám"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Přiřazeno prodejním objednávkám"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimální zásoby"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Uzamčeno"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Šablona dílu"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Montážní díl"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Komponenta dílu"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testovatelný díl"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Sledovací díl"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Zakoupitelný díl"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Prodejní díl"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Datum vytvoření"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Vytvořil(a)"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Výchozí expirace"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "dny"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Cenový rozsah"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Poslední sériové číslo"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Vybrat revizi části"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varianty"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Přiřazení"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Kusovník"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Poslední sériové číslo"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Vybrat revizi části"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varianty"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Přiřazení"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Kusovník"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Použito v"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Cena dílu"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Testovací šablony"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Související díly"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Díl je uzamčen"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Parametr dílu nemůže být upraven, díl je uzamčen"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Požadováno"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Deficit"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Parametr dílu nemůže být upraven, díl je uzamčen"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Požadováno"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Deficit"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Přidat díl"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Odstranit díl"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Odstranění této části nelze vrátit zpět"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Objednávka"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Objednat zásoby"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Vyhledat podle sériového čísla"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Akce s položkou"
@@ -8172,7 +8177,7 @@ msgstr "Množství na skladu"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Hodnota skladu"
@@ -8205,10 +8210,152 @@ msgstr "Záznamy inventur"
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr "Ověřování kusovníku"
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr "Kusovník ověřen"
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Schválit kusovník"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Chcete ověřit kusovník materiálu? (BOM)"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Kusovník ověřen"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "Kusovník pro tento díl byl potvrzen"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "Kusovník pro tento díl již byl ověřen, ale potřebuje překontrolovat"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "Kusovník pro tento díl ještě nebyl potvrzen"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Potvrzeno"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Potvrdil(a)"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Povolit varianty"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Zděděno"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Volitelné"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Spotřební"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Nastavit množství"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Přirozené ztráty"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Zaokrouhlení více"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maximální cena"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Nákupní cena"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Datum vystavení"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Není zkontrolováno"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Nadřazené umístění"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sublokace"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Typ umístění"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Skladové místo nejvyšší úrovně"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Podrobnosti o umístění"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Výchozí součásti"
@@ -8768,86 +8915,86 @@ msgstr "Výchozí součásti"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Upravit Skladovou pozici"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Přesunout položky na nadřazenou pozici"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Smazat skladovou pozici"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Akce položek"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Akce pro skladové položky na tomto místě"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Akce umístění"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Akce pro potomky na tomto místě"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Akce pro potomky na tomto místě"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Skenovat skladovou položku"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Skenovat tuto položku do umístění"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Chyba při skenování skladové položky"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Skenovat skladové místo"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Skenovat umístění položky do umístění"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Chyba při skenování skladové položky"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
-msgstr ""
+msgstr "Skenovat skladové položky"
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
-msgstr ""
+msgstr "Skenovat položku do tohoto umístění"
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
-msgstr ""
+msgstr "Skenovat v kontejneru"
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
-msgstr ""
+msgstr "Skenovat kontejner do tohoto umístění"
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Základní díl"
@@ -8867,7 +9014,7 @@ msgstr "Základní díl"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Předchozí sériové číslo"
@@ -8875,35 +9022,35 @@ msgstr "Předchozí sériové číslo"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Najít sériové číslo"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Další sériové číslo"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Přiděleno k objednávkám"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Instalováno v"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Nadřazená položka"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Nadřazená skladová položka"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Použito v"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Poslední inventura"
@@ -8911,7 +9058,7 @@ msgstr "Poslední inventura"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Podrobnosti zásob"
@@ -8919,15 +9066,15 @@ msgstr "Podrobnosti zásob"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Instalované položky"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Podřízené položky"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Upravit skladovou položku"
@@ -8941,20 +9088,24 @@ msgstr "Upravit skladovou položku"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr "Převést skladovou položku"
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Položky vytvořeny"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Vytvořeno {n} skladových položek"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Odstranit skladovou položku"
@@ -8966,44 +9117,44 @@ msgstr "Odstranit skladovou položku"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Serializovat skladovou položku"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Serializovat skladovou položku"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Skladová položka serializována"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Skenovat do umístění"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Skenovat do umístění"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Skenovat tuto položku do umístění"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Úpravy zásob"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Skenovat do umístění"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Skenovat tuto položku do umístění"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Úpravy zásob"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serializovat"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Serializace skladu"
@@ -9011,14 +9162,22 @@ msgstr "Serializace skladu"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Akce skladové položky"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Akce skladové položky"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr "Převést"
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr "Převést tuto skladovou položku k jinému dílu"
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Akce skladové položky"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Zastaralé"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Expirováno"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Není k dispozici"
@@ -9116,26 +9275,21 @@ msgstr "Není na skladě"
msgid "This stock item has been depleted"
msgstr "Tato skladová položka byla vyčerpána"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Informace o skladu"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Přidělené řádky"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
-msgstr ""
-
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Vybrat sloupce"
+msgstr "Řádková položka"
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtr"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtry tabulek"
@@ -9435,12 +9589,12 @@ msgstr "Přidat filtr"
msgid "Clear Filters"
msgstr "Vymazat filtry"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Nebyl nalezen žádný záznam"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Chyba při načítání možností tabulky"
@@ -9468,7 +9622,7 @@ msgstr "Chyba při načítání možností tabulky"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Server vrátil nesprávný datový typ"
@@ -9477,7 +9631,7 @@ msgstr "Server vrátil nesprávný datový typ"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Chyba při načítání údajů tabulky"
@@ -9494,49 +9648,49 @@ msgstr "Chyba při načítání údajů tabulky"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Zobrazit podrobnosti"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "Zobrazit {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Odstranit vybrané položky"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Jste si jisti, že chcete odstranit vybrané položky?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Tuto akci nelze vrátit zpět"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Položky smazány"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Odstranění položek se nezdařilo"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Vlastní tabulkové filtry jsou aktivní"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Odstranit vybrané záznamy"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Aktualizovat data"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Aktivní filtry"
@@ -9548,71 +9702,66 @@ msgstr "Aktivní filtry"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Tato položka BOM je definována pro jinou nadřazenou položku"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Informace o dílu"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Tato položka kusovníku ještě nebyla schválena"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Informace o dílu"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Náhrady"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Virtuální díl"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Externí zásoby"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Zahrnuje náhradní zásoby"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Zahrnuje variantu zásob"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Sestavení"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Zahrnuje náhradní zásoby"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Zahrnuje variantu zásob"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Sestavení"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Sestavení"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Spotřební materiál"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Není k dispozici skladem"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Zobrazovat testovatelné položky"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Zobrazit sledovatelné předměty"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktivní díl"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr "Zobrazit aktivní položky"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Zobrazit smontované položky"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Zobrazit virtuální díly"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Zobrazit položky s dostupnými zásobami"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Zobrazit položky v objednávce"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Ověřeno"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Zobrazit ověřené položky"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Zděděno"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Zobrazit zděděné položky"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Povolit varianty"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Zobrazit položky, které umožňují výměnu variant"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Volitelné"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Zobrazit volitelné položky"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Spotřební"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Zobrazit spotřební položky"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Má cenu"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Zobrazit položky s cenou"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Importovat BOM data"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Přidat BOM položku"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Položka BOM vytvořena"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Upravit BOM položku"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Položka byla aktualizována"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Odstranit BOM položku"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Položka BOM odstraněna"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Položka kusovníku ověřena"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Chyba při ověřování položky kusovníku"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Zobrazit kusovník"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Ověřit řádek kuosvníku"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Upravit náhrady"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "Přidat BOM položky"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Přidat jednu BOM položku"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Importovat ze souboru"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "Importovat BOM položky ze souboru"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr "Upravit kusovník"
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr "Dokončit úpravu kusovníku"
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Kusovník nemůže být upraven, díl je uzamčen"
@@ -9882,12 +10024,12 @@ msgstr "Jste si jisti, že chcete odstranit tuto přiřazenou skladovou zásobu
#: src/tables/build/BuildAllocatedStockTable.tsx:199
#: src/tables/build/BuildLineTable.tsx:690
msgid "Consuming allocated stock"
-msgstr ""
+msgstr "Spotřebovat přidělené zásoby"
#: src/tables/build/BuildAllocatedStockTable.tsx:200
#: src/tables/build/BuildLineTable.tsx:691
msgid "Stock consumed successfully"
-msgstr ""
+msgstr "Zásoby byly úspěšně spotřebovány"
#: src/tables/build/BuildAllocatedStockTable.tsx:260
msgid "Consume"
@@ -9966,18 +10108,6 @@ msgstr "Zděděný"
msgid "Unit Quantity"
msgstr "Jednotkové množství"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Nastavit množství"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Přirozené ztráty"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Zaokrouhlení více"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Informace kusovníku"
@@ -9995,12 +10125,12 @@ msgstr "Vytvořit výrobní příkaz"
#: src/tables/build/BuildLineTable.tsx:577
#: src/tables/build/BuildOutputTable.tsx:223
msgid "Allocating stock to build order"
-msgstr ""
+msgstr "Přidělování zásob k sestavě"
#: src/tables/build/BuildLineTable.tsx:578
#: src/tables/build/BuildOutputTable.tsx:224
msgid "Stock allocation complete"
-msgstr ""
+msgstr "Přidělování zásob dokončeno"
#: src/tables/build/BuildLineTable.tsx:585
#~ msgid "Auto allocation in progress"
@@ -10361,10 +10491,6 @@ msgstr "Nebyly nalezeny žádné přílohy"
msgid "Drag attachment file here to upload"
msgstr "Pro nahrání přetáhněte soubor přílohy zde"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Položka"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10456,59 +10582,59 @@ msgstr "Vytvořit nový parametr"
msgid "Import parameters from a file"
msgstr "Importovat parametr ze souboru"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Přidat šablonu parametru"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Duplikovat šablonu parametru"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Odstranit šablonu parametru"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Upravit šablonu parametru"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Zaškrtávací políčko"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Zobrazit zaškrtávací šablony"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Má volby"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Zobrazit šablony s volbami"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Má jednotky"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Zobrazit šablony s jednotkami"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Zobrazit povolené šablony"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Typ modelu"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Filtrovat podle typu modelu"
@@ -11188,11 +11314,11 @@ msgstr "Šablony dílu nelze upravit, díl je uzamčen"
#: src/tables/part/PartThumbTable.tsx:123
msgid "Image updated"
-msgstr ""
+msgstr "Obrázek aktualizován"
#: src/tables/part/PartThumbTable.tsx:124
msgid "The image has been updated successfully"
-msgstr ""
+msgstr "Obrázek byl úspěšně aktualizován"
#: src/tables/part/PartThumbTable.tsx:233
msgid "Select"
@@ -11623,7 +11749,7 @@ msgstr "Filtrovat podle stavu položky"
msgid "Receive selected items"
msgstr "Přijmout vybrané položky"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Přijmout položku"
@@ -11693,7 +11819,7 @@ msgstr "Přiřadit sériová čísla"
#: src/tables/sales/SalesOrderLineItemTable.tsx:297
msgid "Stock allocated successfully"
-msgstr ""
+msgstr "Zásoby byly úspěšně přiděleny"
#: src/tables/sales/SalesOrderLineItemTable.tsx:341
msgid "Show lines which are fully allocated"
@@ -11725,7 +11851,7 @@ msgstr "Vytvořit zásilku"
#: src/tables/sales/SalesOrderShipmentTable.tsx:80
msgid "Shipment created"
-msgstr ""
+msgstr "Zásilka vytvořena"
#: src/tables/sales/SalesOrderShipmentTable.tsx:159
msgid "Items"
@@ -12172,7 +12298,7 @@ msgstr "Při načítání podrobností šablony došlo k chybě"
#: src/tables/settings/TemplateTable.tsx:272
msgid "Filename"
-msgstr ""
+msgstr "Název souboru"
#: src/tables/settings/TemplateTable.tsx:295
msgid "Modify"
@@ -12241,7 +12367,7 @@ msgstr "Určuje, zda má být tento uživatel považován za aktivního. Zrušte
#: src/tables/settings/UserTable.tsx:183
msgid "Is Administrator"
-msgstr ""
+msgstr "Je administrátor"
#: src/tables/settings/UserTable.tsx:183
#~ msgid "Is Staff"
@@ -12313,7 +12439,7 @@ msgstr "Zobrazit aktivní uživatele"
#: src/tables/settings/UserTable.tsx:407
msgid "Show administrators"
-msgstr ""
+msgstr "Zobrazit administrátory"
#: src/tables/settings/UserTable.tsx:412
msgid "Show superusers"
@@ -12524,7 +12650,7 @@ msgstr "Zobrazit zásoby na externích lokacích"
#: src/tables/stock/StockItemTable.tsx:420
msgid "Stock item created"
-msgstr ""
+msgstr "Skladová položka vytvořena"
#: src/tables/stock/StockItemTable.tsx:442
msgid "Order items"
diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po
index 09fd938be1..cdbbe24403 100644
--- a/src/frontend/src/locales/da/messages.po
+++ b/src/frontend/src/locales/da/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Render fejl af komponent"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Der opstod en fejl under render af denne komponent. Se konsollen for mere information."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopieret"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopier"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Dupliker"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Rediger"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Slet"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Annuller"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Handlinger"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Søg"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Ok"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nej"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nej"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Del"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Dele"
@@ -158,9 +184,9 @@ msgstr "Parameter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parameter"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Del Testskabeloner"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Producent Dele"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Del Kategori"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Del Kategorier"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Lagervarer"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Lagervarer"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lagerlokation"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lagerlokationer"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Lager Lokationstyper"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Lager Historik"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Firmaer"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Projektkode"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Projektkoder"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Købsordre"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Købsordrer"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Indkøbsordre linjer"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Salgsordrer"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Salgsordrer"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Returordre"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Returordre"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakter"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Ejer"
@@ -458,7 +483,7 @@ msgstr "Ejer"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Bruger"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Brugerne"
@@ -486,7 +511,7 @@ msgstr "Gruppe"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Etiket Skabelon"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Etiket Skabeloner"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Rapport skabelon"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Rapporter Skabeloner"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Fejl"
msgid "Errors"
msgstr "Fejl"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Produktionsordrer"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Ikke implementeret"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Denne funktion er endnu ikke implementeret"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Adgang nægtet"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Du har ikke tilladelse til at udføre denne handling"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Ugyldig Svar Kode"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server returnerede status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Timeout"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Anmodningen udløb"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Proces fejlede"
msgid "Process completed successfully"
msgstr "Processen er gennemført"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Render fejl af komponent"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Der opstod en fejl under render af denne komponent. Se konsollen for mere information."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Indtast stregkode data"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Scan stregkode"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Stregkode matcher ikke den forventede modeltype"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Succes"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Kunne ikke håndtere stregkode"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Kunne ikke scanne stregkode"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Kunne ikke linke stregkode"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Tilknytning"
@@ -774,7 +824,7 @@ msgstr "Dette vil fjerne linket til den tilknyttede stregkode"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Fjern linket til stregkode"
@@ -786,14 +836,6 @@ msgstr "Åbn i admin interface"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopieret"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopier"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Udskriver Etiketter"
@@ -930,7 +972,7 @@ msgstr "Næste måned"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Eksporter Data"
@@ -947,15 +989,15 @@ msgstr "Fejl ved opdatering af ordre"
msgid "Overdue"
msgstr "Overskredet"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Kunne ikke indlæse dashboard widgets."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Ingen Widgets Valgt"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Brug menuen til at tilføje widgets til dashboardet"
@@ -1288,15 +1330,15 @@ msgstr "E-mail: "
msgid "No name defined"
msgstr "Intet navn defineret"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Fjern billede"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Fjern det tilknyttede billede fra denne vare?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Fjern det tilknyttede billede fra denne vare?"
msgid "Remove"
msgstr "Fjern"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klik for at vælge fil(er)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Billede uploadet"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Billede downloadet"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Upload fejl"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Ryd"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Indsend"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Vælg fra eksisterende billeder"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Vælg billede"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Download eksternt billede"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Upload nyt billede"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Upload billede"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Slet billede"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Download billede"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Billede downloadet"
@@ -1418,23 +1460,23 @@ msgstr "Billede downloadet"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Upload af billede fejlede"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Billede blev uploadet"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Noter er gemt"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Kunne ikke gemme noter"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Kunne Ikke Gemme Noter"
@@ -1442,15 +1484,15 @@ msgstr "Kunne Ikke Gemme Noter"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Gem noter"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Luk redigering"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Aktiver Redigering"
@@ -1587,11 +1629,6 @@ msgstr "Side ikke fundet"
msgid "This page does not exist"
msgstr "Siden eksisterer ikke"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Adgang nægtet"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Du har ikke tilladelse til at se denne side."
@@ -1604,8 +1641,8 @@ msgstr "Serverfejl"
msgid "A server error occurred"
msgstr "Der opstod en serverfejl"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Formular Fejl"
@@ -1613,11 +1650,11 @@ msgstr "Formular Fejl"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Fejl findes i et eller flere formularfelter"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Login mislykkedes"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Tjek din indtastning og prøv igen."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Mail levering succesfuld"
@@ -1808,7 +1845,7 @@ msgstr "Vært"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Gem værtsvalg"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API Version"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Vælg pakke"
msgid "{0} icons"
msgstr "{0} ikoner"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Indlæser"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Ingen resultater fundet"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr "Behandler Data"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "En feil opstod"
@@ -2148,7 +2195,7 @@ msgstr "Data er blevet importeret"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Luk"
@@ -2182,8 +2229,8 @@ msgstr "Indstillinger"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Stregkode Handlinger"
@@ -2298,7 +2345,7 @@ msgstr "Opdaterer grupperoller"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Opdateret"
@@ -2344,9 +2391,9 @@ msgstr "Ingen varer"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Baggrunds processen kører ikke"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-mail indstillinger"
@@ -2605,8 +2652,8 @@ msgstr "Lær mere om {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notifikationer"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Indstillinger"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Brugerindstillinger"
@@ -2671,8 +2718,8 @@ msgstr "Brugerindstillinger"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Systemindstillinger"
@@ -2684,8 +2731,8 @@ msgstr "Systemindstillinger"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Admin Center"
@@ -2722,24 +2769,26 @@ msgstr "Log ud"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Lager"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Produktion"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Indkøb"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Fjern søgegruppe"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Vedhæftninger"
msgid "Notes"
msgstr "Noter"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plugin Leveret"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Skjul paneler"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Vis paneler"
@@ -2914,18 +2968,18 @@ msgstr "Plugin Information"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Forfatter"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Dato"
@@ -2950,7 +3004,7 @@ msgstr "Dato"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Pakke"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Plugin indstillinger"
@@ -3090,8 +3143,8 @@ msgstr "Forsendelse"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inaktiv"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuel"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Intet lager"
@@ -3111,8 +3164,8 @@ msgstr "Intet lager"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "På Ordre"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detaljer"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategori"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Lokation"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Antal"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Næste"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Rediger Del"
@@ -3891,8 +3946,8 @@ msgstr "Salgs Krav"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "På Lager"
msgid "Required Quantity"
msgstr "Krævet Antal"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Ny Indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Indkøbsordre oprettet"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Vis Leverandør Del"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Leverandør del oprettet"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Føj til indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Del tilføjet til indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Vælg leverandørdel"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Kopier leverandørens del nummer"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Ny leverandørdel"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Vælg indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Ny indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Tilføj til den valgte indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Ingen dele valgt"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Ingen dele, der kan købes, er valgt"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Dele Tilføjet"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Alle valgte dele føjet til en indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Du skal vælge mindst en del for at bestille"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Leverandør del er påkrævet"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Mængde er påkrævet"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Ugyldig del valg"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Ret venligst fejlene i de valgte dele"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Om InvenTree projektet"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Erstat Del"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Rediger stukliste erstatninger"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Tilføj Erstatning"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Erstatning tilføjet"
@@ -4506,33 +4561,33 @@ msgstr "Erstatning tilføjet"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Bygge Output"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Antal til fuldførelse"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Antal til fuldførelse"
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Færdiggøre Bygge Output"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Byggeresultater er udført"
@@ -4560,64 +4615,64 @@ msgstr "Byggeresultater er udført"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Antal til skrot"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Skrot Byggeoutput"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Valgte Byggeoutput vil blive fuldført, men markeret som skrot"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Allokerede lagervarer vil blive forbrugt"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Byggeoutput er blevet skrottet"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Byggeoutput er blevet skrottet"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Annuller Bygge Output"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Valgte byggeresultater vil blive fjernet"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Tildelte lagervarer vil blive returneret til lager"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Byggeoutput er blevet aflyst"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Allokere"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Kilde Lokation"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Vælg kildelokationen for lagertildelingen"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Vælg kildelokationen for lagertildelingen"
msgid "Allocate Stock"
msgstr "Tildel lager"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Lagervarer tildelt"
@@ -4658,8 +4713,8 @@ msgstr "Lagervarer tildelt"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Forbrug Lager"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Fuldt forbrugte"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Forbrugt"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Vælg projektkode for dette linjeelement"
@@ -4698,7 +4753,7 @@ msgstr "Vælg projektkode for dette linjeelement"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Abonner på notifikationer for denne kategori"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Vælg lokation"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Modtaget lager placering valgt"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Standard lokation valgt"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Indstil Lokation"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Tildel Batchkode"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Indstil Lokation"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Tildel Batchkode"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Tildel Serienumre"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Sæt Udløbsdato"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Juster Emballering"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Ændre Status"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Tilføj Note"
@@ -4812,22 +4867,22 @@ msgstr "Tilføj Note"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Gem på standard lokation"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr "Batch kode"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Indtast batch kode for modtagne varer"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Serienummer"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Indtast serienumre for modtagne elementer"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Udløbsdato"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Indtast en udløbsdato for modtagne vare"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Emballage"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Note"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Modtaget"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Modtag linje element"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Varer modtaget"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Vare modtaget på lager"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Tjek Forsendelse"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Markering af forsendelsen indikerer, at du har kontrolleret, at alle varer i denne forsendelse er korrekte"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Forsendelse markeret som kontrolleret"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Fjern Markering Af Forsendelse"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Mærkning af forsendelsen som ikke-kontrolleret viser, at forsendelsen kræver yderligere verifikation"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Forsendelse markeret som ikke-kontrolleret"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Efterlad blank for at bruge ordreadressen"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Lager Status"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Retur"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Antal"
@@ -5229,7 +5284,7 @@ msgstr "Intern serverfejl"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Logget af"
@@ -5257,81 +5312,81 @@ msgstr "Multifaktorgodkendelse Login succesfuld"
msgid "MFA details were automatically provided in the browser"
msgstr "Multifaktorgodkendelse detaljer blev automatisk givet i browseren"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Du er nu logget af"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Sprog ændret"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Dit aktive sprog er blevet ændret til det der er sat i din profil"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Tema ændret"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Dit aktive tema er blevet ændret til det der er sat i din profil"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Tjek din indbakke for et nulstillingslink. Dette virker kun, hvis du har en konto. Tjek også spam."
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Nulstilling fejlede"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Allerede logget ind"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Der er en konfliktfyldt session på serveren for denne browser. Log ud af det først."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Logget ind"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Logget ind"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Kunne ikke oprette Multifaktorgodkendelse"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Adgangskode sat"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Adgangskoden blev oprettet. Du kan nu logge ind med din nye adgangskode"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Adgangskoden kunne ikke ændres"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "De to adgangskodefelter matcher ikke"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Adgangskode ændret"
@@ -5351,38 +5406,10 @@ msgstr "Adgangskode ændret"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Ikke implementeret"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Denne funktion er endnu ikke implementeret"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Du har ikke tilladelse til at udføre denne handling"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Ugyldig Svar Kode"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server returnerede status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Timeout"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Anmodningen udløb"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Eksporterer data"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Slet valgte lagervarer"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Lager Handlinger"
@@ -5811,73 +5838,73 @@ msgstr "En uventet fejl opstod"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Elementet er allerede scannet"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API fejl"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Scanningsfejl"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Valgte elementer er ikke kendte"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Flere objekter typer valgt"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Stregkode Scanninger"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Stregkode input"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Handling"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Ingen Elementer Valgt"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Skan og vælg elementer til at udføre handlinger"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Skan og vælg elementer til at udføre handlinger"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} elementer valgt"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Scannede Elementer"
@@ -6593,7 +6620,7 @@ msgstr "Prikker"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuta"
@@ -6661,11 +6688,11 @@ msgstr "Hurtige Handlinger"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Hjem"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Brugere / Adgang"
@@ -6673,27 +6700,27 @@ msgstr "Brugere / Adgang"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Data Import"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Data Eksport"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Stregkode Scanninger"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Baggrundsopgaver"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Fejlrapporter"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Valutaer"
@@ -6701,11 +6728,11 @@ msgstr "Valutaer"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Kategori Parametre"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Lokationstyper"
@@ -6728,35 +6755,35 @@ msgstr "Lokationstyper"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Maskiner"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Operatør"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Rapportering"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Udvid / Integrer"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Avancerede indstillinger"
@@ -6949,11 +6976,15 @@ msgstr "Tokens"
msgid "The settings below are specific to each available plugin"
msgstr "Indstillinger nedenfor er specifikke for hvert tilgængeligt plugin"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Autentificering"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Stregkoder"
@@ -6965,8 +6996,8 @@ msgstr "Stregkoder"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Indstillingerne nedenfor er specifikke for hver tilgængelige underretningsmetode"
@@ -6974,21 +7005,29 @@ msgstr "Indstillingerne nedenfor er specifikke for hver tilgængelige underretni
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Prissætning"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Label"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Lager Sporing"
@@ -6996,15 +7035,15 @@ msgstr "Lager Sporing"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Konto"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Sikkerhed"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Visningsindstillinger"
@@ -7040,15 +7079,15 @@ msgstr "Marker som ulæst"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Ingen Påkrævede Varer"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Denne byggeordre har ingen påkrævede varer."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "Den samlede del har muligvis ikke en defineret stykliste, eller styklisten er tom."
@@ -7056,6 +7095,18 @@ msgstr "Den samlede del har muligvis ikke en defineret stykliste, eller styklist
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Stykliste Ikke Valideret"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "Den samlede del har muligvis ikke en defineret stykliste, eller styklist
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revision"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "Ekstern"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Reference"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Overordnet produktion"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Produktions antal"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Kan Bygge"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Gennemførte Output"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Udstedt Af"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Ansvarlig"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Enhver placering"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Destinations Placering"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Enhver placering"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Oprettet"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Destinations Placering"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Oprettet"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Startdato"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Måldato"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Fuldført"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Bygge Detaljer"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Nødvendige Dele"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Tildelt Lager"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Forbrugt Lager"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Ufuldstændige Output"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Eksterne Ordrer"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Byg Underordnede Ordrer"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Testresultater"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Rediger Byggeordre"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Tilføj Byggeordre"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Annuller Byggeordre"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Ordren annulleret"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Annuller denne ordre"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Hold Byg Ordre"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Placer denne ordre på hold"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Ordre placeret på hold"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Udsted Byggeordre"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Udsted denne ordre"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Ordre udstedt"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Færdiggør Byggeordre"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Marker denne ordre som færdig"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Ordre fuldført"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Udstede Ordre"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Fuldfør ordre"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Byg Ordre Handlinger"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Rediger ordre"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Dupliker ordre"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Hold ordre"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Annuller ordre"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Vis eksterne bygge ordrer"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Vis eksterne bygge ordrer"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Kalender Visning"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Kalender Visning"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Parametrisk Visning"
@@ -7470,7 +7522,7 @@ msgstr "Producent"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Ekstern link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Del Detaljer"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Tilføj leverandørdel"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Intet lager"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Gruppe Roller"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Brugerinformation"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Overordnet kategori"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Underkategorier"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Standard lokation"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Rediger Del Kategori"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Flyt elementer til overordnet kategori"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Slet vare"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Slet Del Kategori"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Dele Handling"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Handling for dele i denne kategori"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Underkategori Handling"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Handling for underliggende kategorier i denne kategori"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Kategori Handlinger"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Kategori Detaljer"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Valider Stykliste"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Vil du validere styklisten til denne samling?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Stykliste Valideret"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "Materialregningen for denne del er blevet valideret"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Stykliste Ikke Valideret"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "Materialregningen for denne del er tidligere blevet kontrolleret, men kræver fornyet godkendelse"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "Materialregningen for denne del er endnu ikke blevet valideret"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Valideret Den"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Valideret Af"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Valideret Af"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revision af"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Valideret Af"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revision af"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Standard lokation"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Kategori Standard Lokation"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Enheder"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Nøgleord"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Tilgængelig Lager"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "På bestilling"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Kræves til ordrer"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Allokeret til Byggeordrer"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Allokeret til Salgsordrer"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Låst"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Skabelon Del"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Samlede Del"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Komponent Del"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testbar Del"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Oprettet af"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Standard Udløbsdato"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "dage"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Seneste Serienummer"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Stykliste"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Seneste Serienummer"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Stykliste"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Brugt I"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Del Prisfastsættelse"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Test Skabeloner"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Relaterede Dele"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Delen er låst"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Delparametre kan ikke redigeres, da delen er låst"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Påkrævet"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Underskud"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Delparametre kan ikke redigeres, da delen er låst"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Påkrævet"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Underskud"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Tilføj del"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Slet Del"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Sletning af denne del kan ikke fortrydes"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Ordre"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Bestil Lager"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Søg på serienummer"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Del Handlinger"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Lagerværdi"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Valider Stykliste"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Vil du validere styklisten til denne samling?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Stykliste Valideret"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "Materialregningen for denne del er blevet valideret"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "Materialregningen for denne del er tidligere blevet kontrolleret, men kræver fornyet godkendelse"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "Materialregningen for denne del er endnu ikke blevet valideret"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Valideret Den"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Valideret Af"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Valgfri"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maksimal Pris"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Købspris"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Ikke kontrolleret"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Overordnet Lokation"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Under lokationer"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Lokationstype"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Lokations Detaljer"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Standard Dele"
@@ -8768,86 +8915,86 @@ msgstr "Standard Dele"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Rediger Lagerlokation"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Flyt elementer til overordnet lokation"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Slet Lager Lokation"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Lokation Handlinger"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Handling for underordnede lokation i denne lokation"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Handling for underordnede lokation i denne lokation"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Scan Lagervare"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Fejl ved scanning af lagervare"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Fejl under scanning af lager lokation"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Basis Del"
@@ -8867,7 +9014,7 @@ msgstr "Basis Del"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Forrige serienummer"
@@ -8875,35 +9022,35 @@ msgstr "Forrige serienummer"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Find serienummer"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Næste serienummer"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Allokeret Til Ordrer"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Installeret I"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Overordnet Element"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Overordnet lagervare"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Forbrugt Af"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Lager Detaljer"
@@ -8919,15 +9066,15 @@ msgstr "Lager Detaljer"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Installerede Elementer"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Underordnede Elementer"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Rediger Lagervare"
@@ -8941,20 +9088,24 @@ msgstr "Rediger Lagervare"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Elementer Oprettet"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Oprettede {n} lagervarer"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Slet Lagervare"
@@ -8966,44 +9117,44 @@ msgstr "Slet Lagervare"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Scan Ind I Lokation"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Scan ind i lokation"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Skan dette element ind på en lokation"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Lager Operationer"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Scan ind i lokation"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Skan dette element ind på en lokation"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Lager Operationer"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Forældet"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Udløbet"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Utilgængelig"
@@ -9116,27 +9275,22 @@ msgstr "Intet lager tilgængeligt"
msgid "This stock item has been depleted"
msgstr "Denne lagervare er opbrugt"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr "Tilføj Filter"
msgid "Clear Filters"
msgstr "Nulstil filtre"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Server returnerede forkert datatype"
@@ -9477,7 +9631,7 @@ msgstr "Server returnerede forkert datatype"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Fejl ved indlæsning af tabeldata"
@@ -9494,49 +9648,49 @@ msgstr "Fejl ved indlæsning af tabeldata"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Vis detaljer"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "Vis {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Slet valgte del"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Er du sikker på at du ønsker at slette de valgte varer?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Denne handling kan ikke fortrydes"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Elementer slettet"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Kunne ikke slette elementer"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Aktive Filtre"
@@ -9548,71 +9702,66 @@ msgstr "Aktive Filtre"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Del Information"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Dette Stykliste element er ikke blevet valideret"
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Del Information"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Ekstern Lager"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Inkluderer erstatningsbeholdning"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Ekstern Lager"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Inkluderer erstatningsbeholdning"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktiv Del"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Vis varer med disponibelt lager"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Valideret"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Valgfri"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Importere Stykliste Data"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Tilføj stykliste element"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Styklistevare oprette"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Rediger stykliste element"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Styklistevare opdateret"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Slet styklistevare"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Styklistevare slettet"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Styklistevare valideret"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Kunne ikke validere styklistevare"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Vis stykliste"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "Tilføj styklistevare"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Tilføj et enkelt Stykliste element"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Importer fra fil"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "Importer Stykliste elementer fra en fil"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Styklisten kan ikke redigeres, da delen er låst"
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Stykliste Information"
@@ -10361,10 +10491,6 @@ msgstr "Ingen vedhæftning fundet"
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10456,59 +10582,59 @@ msgstr "Opret ny parameter"
msgid "Import parameters from a file"
msgstr "Importer parametre fra en fil"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Tilføj Parameter Skabelon"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Dupliker Parameter Skabelon"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Slet Parameter Skabelon"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Rediger Parameter Skabelon"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Tjekboks"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Vis tjekboks skabeloner"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Vis skabeloner med valgmuligheder"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Vis skabeloner med enheder"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Vis aktiverede skabeloner"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr "Modtag valgte elementer"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Modtag Vare"
diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po
index f3820e5091..effbabf365 100644
--- a/src/frontend/src/locales/de/messages.po
+++ b/src/frontend/src/locales/de/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Fehler beim darstellen der Komponente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Beim Rendern dieser Komponente ist ein Fehler aufgetreten. Weitere Informationen stehen in der Konsole."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopiert"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopieren"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplizieren"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Bearbeiten"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Löschen"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Abbrechen"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Aktionen"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Suche"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Spalten auswählen"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Bestanden"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nein"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nein"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Teil"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Teile"
@@ -158,9 +184,9 @@ msgstr "Parameter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parameter"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Testvorlagen für Teil"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Herstellerteile"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Teilkategorie"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Teil-Kategorien"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Lagerartikel"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Lagerartikel"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lagerort"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lagerorte"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Lagerort Typen"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Lagerhistorie"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Unternehmen"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Projekt-Code"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Projektnummern"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Einkaufsbestellung"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Bestellungen"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Bestellpositionen"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Verkaufsauftrag"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Aufträge"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Rückgabe Auftrag"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Reklamationen"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakte"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Eigentümer"
@@ -458,7 +483,7 @@ msgstr "Eigentümer"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Nutzer"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Benutzer"
@@ -486,7 +511,7 @@ msgstr "Gruppe"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Label Vorlage"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Label Vorlagen"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Template melden"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Templates melden"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Fehler"
msgid "Errors"
msgstr "Fehler"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Bauaufträge"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Nicht implementiert"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Diese Funktion wurde noch nicht implementiert"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Zugriff verweigert"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Du hast keine Berechtigung, diese Aktion durchzuführen"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Ungültiger Rückgabecode"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server hat den Status {returnCode} zurückgegeben"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Zeitüberschreitung"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Bei der Anfrage ist eine Zeitüberschreitung aufgetreten"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Prozess fehlgeschlagen"
msgid "Process completed successfully"
msgstr "Prozess erfolgreich abgeschlossen"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Fehler beim darstellen der Komponente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Beim Rendern dieser Komponente ist ein Fehler aufgetreten. Weitere Informationen stehen in der Konsole."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Barcode-Daten eingeben"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Barcode scannen"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Der Barcode stimmt nicht mit dem erwarteten Modelltyp überein"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Abgeschlossen"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Fehler beim Verarbeiten des Barcodes"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Fehler beim Scannen des Barcodes"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Fehler beim Verknüpfen des Barcodes"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Link"
@@ -774,7 +824,7 @@ msgstr "Die Verknüpfung zum zugehörigen Barcode wird entfernt"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Verknüpfung des Barcodes aufheben"
@@ -786,14 +836,6 @@ msgstr "Im Admin-Interface öffnen"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopiert"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopieren"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Drucke Etiketten"
@@ -930,7 +972,7 @@ msgstr "Nächsten Monat"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Daten exportieren"
@@ -947,15 +989,15 @@ msgstr "Fehler beim Aktualisieren der Bestellung"
msgid "Overdue"
msgstr "Überfällig"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Dashboard-Widgets konnten nicht geladen werden."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Keine Widgets ausgewählt"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Verwenden Sie das Menü, um Widgets zum Dashboard hinzuzufügen"
@@ -1288,15 +1330,15 @@ msgstr "Email:"
msgid "No name defined"
msgstr "Kein Name festgelegt"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Bild entfernen"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Verknüpftes Bild von diesem Teil entfernen?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Verknüpftes Bild von diesem Teil entfernen?"
msgid "Remove"
msgstr "Entfernen"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr "Bild entfernt"
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr "Bild wurde erfolgreich entfernt"
@@ -1324,69 +1366,69 @@ msgstr "Bild wurde erfolgreich entfernt"
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr "Datei zum Hochladen ablegen oder Bild aus der Zwischenablage einfügen"
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klicken, um Datei(en) auszuwählen"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Bild hochgeladen"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Bild wurde erfolgreich hochgeladen"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Upload fehlgeschlagen"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Leeren"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Speichern"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Aus vorhandenen Bildern auswählen"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Bild auswählen"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Remote-Bild herunterladen"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Neues Bild hochladen"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Bild hochladen"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Bild löschen"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Bild herunterladen"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Bild wurde erfolgreich heruntergeladen"
@@ -1418,23 +1460,23 @@ msgstr "Bild wurde erfolgreich heruntergeladen"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Das Bild konnte nicht hochgeladen werden"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Bild erfolgreich hochgeladen"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notizen erfolgreich gespeichert"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Notiz konnte nicht gespeichert werden"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Fehler beim Speichern der Notizen"
@@ -1442,15 +1484,15 @@ msgstr "Fehler beim Speichern der Notizen"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Notizen speichern"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Editor schließen"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Bearbeiten aktivieren"
@@ -1587,11 +1629,6 @@ msgstr "Seite nicht gefunden"
msgid "This page does not exist"
msgstr "Diese Seite existiert nicht"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Zugriff verweigert"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Ihnen fehlt die Berechtigung diese Seite anzuzeigen."
@@ -1604,8 +1641,8 @@ msgstr "Serverfehler"
msgid "A server error occurred"
msgstr "Ein Serverfehler ist aufgetreten"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Formularfehler"
@@ -1613,11 +1650,11 @@ msgstr "Formularfehler"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Fehler für ein oder mehrere Formularfelder vorhanden"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Login fehlgeschlagen"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Überprüfen Sie Ihre Eingabe und versuchen Sie es erneut."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Mail erfolgreich gesendet"
@@ -1808,7 +1845,7 @@ msgstr "Adresse"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Host-Auswahl speichern"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API-Version"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Packung auswählen"
msgid "{0} icons"
msgstr "{0} Symbole"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Wird geladen"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Artikel"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "modelRenderer Eintrag für Tabellen erforderlich"
@@ -2060,7 +2107,7 @@ msgstr "Daten werden verarbeiten"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Ein Fehler ist aufgetreten"
@@ -2148,7 +2195,7 @@ msgstr "Daten wurden erfolgreich importiert"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Schließen"
@@ -2182,8 +2229,8 @@ msgstr "Optionen"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Barcode-Aktionen"
@@ -2298,7 +2345,7 @@ msgstr "Gruppen-Rollen werden aktualisiert"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Aktualisiert"
@@ -2344,9 +2391,9 @@ msgstr "Keine Gegengenstände"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Der Hintergrund-Worker-Prozess läuft nicht"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-Mail Einstellungen"
@@ -2605,8 +2652,8 @@ msgstr "Mehr über {code} erfahren"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2616,14 +2663,14 @@ msgstr "Benachrichtigungen"
#~ msgid "Administrator Mode"
#~ msgstr "Administrator Mode"
-#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
-msgstr ""
-
#: src/components/nav/Header.tsx:231
msgid "Superuser Mode"
msgstr "Superuser-Modus"
+#: src/components/nav/Header.tsx:231
+msgid "Admin Mode"
+msgstr ""
+
#: src/components/nav/Header.tsx:237
msgid "The current user has elevated privileges and should not be used for regular usage."
msgstr "Der aktuelle Benutzer hat erweiterte Berechtigungen und sollte nicht für die reguläre Nutzung verwendet werden."
@@ -2653,8 +2700,8 @@ msgstr "Einstellungen"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Benutzer-Einstellungen"
@@ -2671,8 +2718,8 @@ msgstr "Benutzer-Einstellungen"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Einstellungen"
@@ -2684,8 +2731,8 @@ msgstr "Einstellungen"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Adminbereich"
@@ -2722,24 +2769,26 @@ msgstr "Abmelden"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Lager"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Fertigung"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Einkauf"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Suchgruppe entfernen"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Anhänge"
msgid "Notes"
msgstr "Notizen"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Verfügbares Plugin"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Panels einklappen"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Panels aufklappen"
@@ -2914,18 +2968,18 @@ msgstr "Plugin-Informationen"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Datum"
@@ -2950,7 +3004,7 @@ msgstr "Datum"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paket"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Plugin Einstellungen"
@@ -3090,8 +3143,8 @@ msgstr "Sendung"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inaktiv"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuell"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Kein Bestand"
@@ -3111,8 +3164,8 @@ msgstr "Kein Bestand"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "In Bestellung"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Details"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategorie"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategorie"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Lagerort"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Seriennummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Anzahl"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Weiter"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Teil bearbeiten"
@@ -3891,8 +3946,8 @@ msgstr "Verkaufsanforderungen"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Auf Lager"
msgid "Required Quantity"
msgstr "Benötigte Menge"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Neue Bestellung"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Bestellung erstellt"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Neues Zulieferer-Teil"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Zuliefererteil erstellt"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Zur Bestellung hinzufügen"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Teil zur Bestellung hinzugefügt"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Zulieferer-Teil auswählen"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Lieferanten-Artikelnummer kopieren"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Neues Zulieferer-Teil"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Bestellung auswählen"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Neue Bestellung"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Keine Teile ausgewählt"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Teile hinzugefügt"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Alle ausgewählten Teile wurden einer Bestellung hinzugefügt"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Sie müssen mindestens einen Teil für die Bestellung auswählen"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Lieferantenteil ist erforderlich"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Ungültige Teileauswahl"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Bitte korrigieren Sie die Fehler in den ausgewählten Teilen"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Über das InvenTree-Projekt"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Ersatz-Teil"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "BOM Ersatz-Teile bearbeiten"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Ersatz-Teil hinzufügen"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Ersatz-Teil hinzugefügt"
@@ -4506,33 +4561,33 @@ msgstr "Ersatz-Teil hinzugefügt"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Bauprodukt"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Bauprodukt fertigstellen"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Bauprodukte wurden fertiggestellt"
@@ -4560,64 +4615,64 @@ msgstr "Bauprodukte wurden fertiggestellt"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Bauprodukte verschrotten"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Bauprodukte wurden verschrottet"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Bauprodukte wurden verschrottet"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Bauprodukte abbrechen"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Bauprodukte wurden abgebrochen"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Zugewiesen"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Quell Lagerort"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr "Bestand zuweisen"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Lagerbestand verbrauchen"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "komplett verbraucht"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "verbraucht"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Benachrichtigungen für diese Kategorie abonnieren"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Lagerort wählen"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Teile-Zielort ausgewählt"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Standard-Lagerort der Teile-Kategorie ausgewählt"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Lagerort zuvor empfangener Artikel ausgewählt"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Standard-Lagerort ausgewählt"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtuelles Teil"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Lagerort festlegen"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Losnummer zuweisen"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Lagerort festlegen"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Losnummer zuweisen"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Ablaufdatum festlegen"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Verpackung anpassen"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Status ändern"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Notiz hinzufügen"
@@ -4812,22 +4867,22 @@ msgstr "Notiz hinzufügen"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Am Standard-Lagerort einbuchen"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Bei bereits vorhandenen Lagerbestand einbuchen"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Bei bereits vorhandenen Lagerbestand einbuchen"
msgid "Batch Code"
msgstr "Losnummer"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Losnummern eingeben für empfangene Gegenstände"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Seriennummern"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Seriennummern eingeben für empfangene Gegenstände"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Ablaufdatum eingeben für empfangene Gegenstände"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Verpackung"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Notiz"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Erhalten"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Positionen empfangen"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Empfangene Gegenstände"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr "Abschließen der Lieferung"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr "Lieferung erfolgreich abgeschlossen"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Lieferung fertigstellen"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Lagerbestand Status"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Zurück"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Anzahl"
@@ -5229,7 +5284,7 @@ msgstr "Interner Serverfehler"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Ausgeloggt"
@@ -5257,81 +5312,81 @@ msgstr "MFA Anmeldung erfolgreich"
msgid "MFA details were automatically provided in the browser"
msgstr "MFA-Details wurden automatisch im Browser angegeben"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Erfolgreich abgemeldet"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Sprache geändert"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Die aktive Sprache wurde auf die Sprache des Profils geändert"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Design geändert"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Das aktive Design wurde zu dem im Profil eingestellten geändert"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Zurücksetzen fehlgeschlagen"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Bereits angemeldet"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Es gibt eine widersprüchliche Sitzung auf dem Server für diesen Browser. Bitte zuerst abmelden."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Angemeldet"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Erfolgreich angemeldet"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "MFA konnte nicht eingerichtet werden"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Passwort festgelegt"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Passwort konnte nicht geändert werden"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Die beiden Passwortfelder stimmten nicht überein."
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Passwort geändert"
@@ -5351,38 +5406,10 @@ msgstr "Passwort geändert"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Nicht implementiert"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Diese Funktion wurde noch nicht implementiert"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Du hast keine Berechtigung, diese Aktion durchzuführen"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Ungültiger Rückgabecode"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server hat den Status {returnCode} zurückgegeben"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Zeitüberschreitung"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Bei der Anfrage ist eine Zeitüberschreitung aufgetreten"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Daten werden exportiert"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Ausgewählte Lagerartikel löschen"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Lager-Aktionen"
@@ -5811,73 +5838,73 @@ msgstr "Ein unerwarteter Fehler ist aufgetreten"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Element wurde bereits gescannt"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API-Fehler"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Abrufen der Instanzdaten fehlgeschlagen"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Scanfehler"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Ausgewählte Elemente sind nicht bekannt"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Mehrere Objekttypen ausgewählt"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Aktionen ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Aktionen ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Barcode scannen"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Barcode Input"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Aktion"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Keine Elemente ausgewählt"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Elemente scannen und auswählen um Aktionen auszuführen"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Elemente scannen und auswählen um Aktionen auszuführen"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} Element(e) ausgewählt"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Gescannte Elemente"
@@ -6593,7 +6620,7 @@ msgstr "Punkte"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Währung"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Startseite"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Benutzer / Zugriff"
@@ -6673,27 +6700,27 @@ msgstr "Benutzer / Zugriff"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Datenimport"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Datenexport"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Barcode-Scans"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Hintergrundprozesse"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Fehlerberichte"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Währungen"
@@ -6701,11 +6728,11 @@ msgstr "Währungen"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Benutzerdefinierte Zustände"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Kundenspezifische Einheiten"
@@ -6715,12 +6742,12 @@ msgstr "Kundenspezifische Einheiten"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Kategorie Parameter"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Standorttyp"
@@ -6728,35 +6755,35 @@ msgstr "Standorttyp"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Maschinen"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Datenmanagement"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Berichte"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Erweitern / integrieren"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Erweiterte Optionen"
@@ -6949,11 +6976,15 @@ msgstr "Token"
msgid "The settings below are specific to each available plugin"
msgstr "Die folgenden Einstellungen sind spezifisch für jedes verfügbare Plugin"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Authentifizierung"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Barcode"
@@ -6965,8 +6996,8 @@ msgstr "Barcode"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Die folgenden Einstellungen sind spezifisch für jede verfügbare Benachrichtigungsmethode"
@@ -6974,21 +7005,29 @@ msgstr "Die folgenden Einstellungen sind spezifisch für jede verfügbare Benach
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Preise"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Beschriftungen"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Bestandsverfolgung"
@@ -6996,15 +7035,15 @@ msgstr "Bestandsverfolgung"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Konto"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Sicherheit"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Anzeigeoptionen"
@@ -7040,15 +7079,15 @@ msgstr "Als ungelesen markieren"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Keine benötigten Artikel"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Dieser Bauauftrag hat keine benötigten Elemente."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "Das zusammengebaute Teil darf keine BOM definiert haben, oder das BOM ist leer."
@@ -7056,6 +7095,18 @@ msgstr "Das zusammengebaute Teil darf keine BOM definiert haben, oder das BOM is
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "BOM nicht validiert"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "Das zusammengebaute Teil darf keine BOM definiert haben, oder das BOM is
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Version"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Benutzerdefinierter Status"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Benutzerdefinierter Status"
msgid "External"
msgstr "Extern"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referenz"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Übergeordneter Bauauftrag"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Bauauftrag Anzahl"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Herstellbar"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Fertiggestellte Endprodukte"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Aufgegeben von"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Verantwortlich"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Beliebiger Lagerort"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Ziel Lagerort"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Beliebiger Lagerort"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Erstellt"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Ziel Lagerort"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Erstellt"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Startdatum"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Zieldatum"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Abgeschlossen"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Bauauftrag Details"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Benötigte Teile"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Zugewiesener Bestand"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Verbrauchte Bestände"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Unvollständige Endprodukte"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Externe Bestellungen"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Unter-Bauaufträge"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Testergebnisse"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Bauauftrag bearbeiten"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Neuer Bauauftrag"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Bauauftrag abbrechen"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Bestellung storniert"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Diese Bestellung stornieren"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Bauauftrag halten"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Diese Bestellung halten"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Bestellung gehalten"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Bauauftrag erstellen"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Diese Bestellung ausstellen"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Bestellung ausgestellt"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Diese Bestellung als vollständig markieren"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Bestellung abgeschlossen"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Bestellung abschließen"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Bauauftrag-Aktionen"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Bestellung bearbeiten"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Bestellung duplizieren"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Bestellung halten"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Externe Bauaufträge anzeigen"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Externe Bauaufträge anzeigen"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Tabellenansicht"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Kalenderansicht"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Kalenderansicht"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Hersteller"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Externer Link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Teil-Details"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Zuliefererteil hinzufügen"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Kein Bestand"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Gruppenrollen"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Benutzerinformation"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Übergeordnete Kategorie"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Unterkategorien"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Standard-Lagerort"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Oberste Teile-Kategorie"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Teilekategorie bearbeiten"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Elemente in übergeordnete Kategorie verschieben"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Elemente löschen"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Teile-Kategorie löschen"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Teile Aktionen"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Aktion für Teile in dieser Kategorie"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Unterkategorien-Aktion"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Aktion für untergeordnete Kategorien in dieser Kategorie"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Kategorieaktionen"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Kategorie-Details"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Bauauftragszuweisungen"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Verkaufsauftragszuweisungen"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "BOM validieren"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "BOM für diese Baugruppe validieren?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "BOM validiert"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "BOM für dieses Teil wurde validiert"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "BOM nicht validiert"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "Die BOM für dieses Teil wurde bereits überprüft, aber eine Revalidierung ist notwendig"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "BOM für dieses Teil wurde noch nicht validiert"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Validiert am"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Validiert von"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Validiert von"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante von"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revision von"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Validiert von"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante von"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revision von"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Standard Lagerort"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Standard-Lagerort der Kategorie"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Einheiten"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Bestellt"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Erforderlich für Bestellungen"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Bauaufträgen zugeordnet"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Aufträgen zugeordnet"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Gesperrt"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Vorlagenteil"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Baugruppe"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Komponente"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testbares Teil"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Nachverfolgbares Teil"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Käufliches Teil"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Verkäufliches Teil"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Erstelldatum"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Erstellt von"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Standard Ablaufdatum"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "Tage"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Preisspanne"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "letzte Seriennummer"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varianten"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Zuweisungen"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Stückliste"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "letzte Seriennummer"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varianten"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Zuweisungen"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Stückliste"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Verwendet in"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Testvorlagen"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Zugehörige Teile"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Teil ist gesperrt"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Erforderlich"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Erforderlich"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Teil hinzufügen"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Teil löschen"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
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:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Bestellung"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Bestand bestellen"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Nach Seriennummer suchen"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Teile-Aktionen"
@@ -8172,7 +8177,7 @@ msgstr "Lagerbestand"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Lagerwert"
@@ -8205,10 +8210,152 @@ msgstr "Inventureinträge"
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "BOM validieren"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "BOM für diese Baugruppe validieren?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "BOM validiert"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "BOM für dieses Teil wurde validiert"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "Die BOM für dieses Teil wurde bereits überprüft, aber eine Revalidierung ist notwendig"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "BOM für dieses Teil wurde noch nicht validiert"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Validiert am"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Validiert von"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Vererbt"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Optional"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Verbrauchsmaterial"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Höchster Preis"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Einkaufs Preise"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Herausgabedatum"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Nicht geprüft"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Übergeordneter Lagerort"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Unter-Lagerorte"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Lagerort Typ"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Oberster Lagerort"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Lagerort-Details"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Standardteile"
@@ -8768,86 +8915,86 @@ msgstr "Standardteile"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Lagerort bearbeiten"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Lagerort löschen"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Bestandsaktionen"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Aktion für Lagerartikel an diesem Lagerort"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Lagerort Aktionen"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Aktion für untergeordnete Lagerorte an diesem Lagerort"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Aktion für untergeordnete Lagerorte an diesem Lagerort"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Lagerartikel scannen"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Fehler beim Scannen des Lagerartikels"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Lagerort scannen"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Fehler beim Scannen des Lagerorts"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Basisteil"
@@ -8867,7 +9014,7 @@ msgstr "Basisteil"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Vorherige Seriennummer"
@@ -8875,35 +9022,35 @@ msgstr "Vorherige Seriennummer"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Seriennummer finden"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Nächste Seriennummer"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Zum Auftrag zuordnen"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Verbaut in"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Übergeordneter Artikel"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Übergeordneter Lagerartikel"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Verbraucht von"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Letzte Inventur"
@@ -8911,7 +9058,7 @@ msgstr "Letzte Inventur"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Lagerdetails"
@@ -8919,15 +9066,15 @@ msgstr "Lagerdetails"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Installierte Elemente"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Untergeordnete Objekte"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Lagerartikel bearbeiten"
@@ -8941,20 +9088,24 @@ msgstr "Lagerartikel bearbeiten"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Elemente erstellt"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "{n} Lagerartikel erstellen"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Lagerartikel löschen"
@@ -8966,44 +9117,44 @@ msgstr "Lagerartikel löschen"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Lagervorgänge"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Lagervorgänge"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Lagerartikel Aktionen"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Lagerartikel Aktionen"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Lagerartikel Aktionen"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "abgelaufen"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Nicht verfügbar"
@@ -9116,27 +9275,22 @@ msgstr "Kein Lagerbestand verfügbar"
msgid "This stock item has been depleted"
msgstr "Dieser Lagerartikel wurde verbraucht"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Lagerinformationen"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Spalten auswählen"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Tabellenfilter"
@@ -9435,12 +9589,12 @@ msgstr "Filter hinzufügen"
msgid "Clear Filters"
msgstr "Filter zurücksetzen"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Keine Einträge gefunden"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Fehler beim Laden der Tabellenoptionen"
@@ -9468,7 +9622,7 @@ msgstr "Fehler beim Laden der Tabellenoptionen"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Der Server hat einen falschen Datentyp zurückgegeben"
@@ -9477,7 +9631,7 @@ msgstr "Der Server hat einen falschen Datentyp zurückgegeben"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Fehler beim Laden der Tabellendaten"
@@ -9494,49 +9648,49 @@ msgstr "Fehler beim Laden der Tabellendaten"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr " Details anzeigen"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Ausgewählte Elemente löschen"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Möchten Sie die ausgewählten Elemente wirklich löschen?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Diese Aktion kann nicht rückgängig gemacht werden"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Elemente gelöscht"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Fehler beim Löschen der Elemente"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Benutzerdefinierte Tabellenfilter sind aktiv"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Ausgewählte Datensätze löschen"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Daten aktualisieren"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Aktive Filter"
@@ -9548,71 +9702,66 @@ msgstr "Aktive Filter"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Diese Stücklistenposition ist für ein anderes übergeordnetes Element definiert"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Teile-Informationen"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Dieses BOM Element wurde nicht validiert"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Teile-Informationen"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Ersatz-Teil"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Virtuelles Teil"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Externer Bestand"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Ersatz Bestand einbeziehen"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Alternatives Lager einschließen"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Gebäude"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Ersatz Bestand einbeziehen"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Alternatives Lager einschließen"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Gebäude"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Gebäude"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Verbrauchsartikel"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Kein Lagerbestand verfügbar"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Nachverfolgbare Teile anzeigen"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktives Teil"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Artikel mit verfügbarem Lagerbestand anzeigen"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Artikel in Bestellung anzeigen"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Bestätigt"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Bestätigte Einträge anzeigen"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Vererbt"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Vererbte Elemente anzeigen"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Optional"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Optionale Elemente anzeigen"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Verbrauchsmaterial"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Verbrauchbare Artikel anzeigen"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Hat Preise"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Artikel mit Preisen anzeigen"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "BOM-Daten importieren"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Stücklisten-Position hinzufügen"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Stücklisten-Position erstellt"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Stücklisten-Position aktualisiert"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Stücklisten-Position gelöscht"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "BOM-Element validiert"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Fehler beim Validieren des BOM-Elements"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "BOM-Artikel bestätigen"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Ersatzteil bearbeiten"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "BOM-Artikel hinzufügen"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Einzelnen BOM-Artikel hinzufügen"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Aus Datei importieren"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "BOM-Artikel aus Datei importieren"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "BOM kann nicht bearbeitet werden, weil das Teil gesperrt ist"
@@ -9966,18 +10108,6 @@ msgstr "Wird vererbt"
msgid "Unit Quantity"
msgstr "Einheiten Menge"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "BOM Information"
@@ -10361,10 +10491,6 @@ msgstr "Keine Anlagen gefunden"
msgid "Drag attachment file here to upload"
msgstr "Datei zum Hochladen hierher ziehen"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Artikel"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Modell"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Parametervorlage hinzufügen"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Parametervorlage löschen"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Parametervorlage bearbeiten"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Checkbox"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Checkbox-Vorlagen anzeigen"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Hat Auswahlen"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Vorlagen mit Auswahlen anzeigen"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Hat Einheiten"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Vorlagen mit Einheiten anzeigen"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Modelltyp"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr "Ausgewählte Elemente empfangen"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Element empfangen"
diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po
index 1844749c2e..140f7d8bde 100644
--- a/src/frontend/src/locales/el/messages.po
+++ b/src/frontend/src/locales/el/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Σφάλμα κατά την απόδοση του component"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Αντιγράφηκε"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Αντιγραφή"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Δημιουργία αντιγράφου"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Επεξεργασία"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Διαγραφή"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Ακύρωση"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Ενέργειες"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Αναζήτηση"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Επιλογή Στηλών"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Επιτυχία"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Όχι"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Όχι"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Προϊόν"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Προϊόντα"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Παράμετροι"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Δοκιμαστικά Πρότυπα Προϊόντων"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Προϊόντα Κατασκευαστή"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Κατηγορία Προϊόντος"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Κατηγορίες Προϊόντων"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Προϊόν Αποθέματος"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Προϊόντα Αποθέματος"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Τοποθεσία Αποθέματος"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Τοποθεσίες Αποθέματος"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Τύποι Τοποθεσιών Αποθέματος"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Ιστορικό Αποθέματος"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Εταιρείες"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Κωδικός Έργου"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Κωδικοί Έργων"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Εντολή Αγοράς"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Εντολές Αγοράς"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Γραμμές Εντολής Αγοράς"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Εντολή Πώλησης"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Εντολές Πώλησης"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Εντολή Επιστροφής"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Εντολές Επιστροφής"
@@ -442,12 +467,12 @@ msgstr "Επαφή"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Επαφές"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Ιδιοκτήτης"
@@ -458,7 +483,7 @@ msgstr "Ιδιοκτήτες"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Χρήστης"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Χρήστες"
@@ -486,7 +511,7 @@ msgstr "Ομάδα"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Πρότυπο Ετικέτας"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Πρότυπα Ετικετών"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Πρότυπο Αναφοράς"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Πρότυπα Αναφορών"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Σφάλμα"
msgid "Errors"
msgstr "Σφάλματα"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Διαχειριστής"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Εντολές Κατασκευής"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Δεν έχει υλοποιηθεί"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Αυτή η λειτουργία δεν έχει υλοποιηθεί ακόμη"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Άρνηση πρόσβασης"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Δεν έχετε δικαιώματα για να πραγματοποιήσετε αυτή την ενέργεια"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Μη έγκυρος κωδικός επιστροφής"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Ο διακομιστής επέστρεψε κατάσταση {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Λήξη χρόνου"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Το αίτημα έληξε χρονικά"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Η διαδικασία απέτυχε"
msgid "Process completed successfully"
msgstr "Η διαδικασία ολοκληρώθηκε επιτυχώς"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Σφάλμα κατά την απόδοση του component"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr "Εισάγετε δεδομένα γραμμοκώδικα"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Σάρωση Γραμμοκώδικα"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Ο γραμμοκώδικας δεν ταιριάζει με τον αναμενόμενο τύπο μοντέλου"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Επιτυχία"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Αποτυχία επεξεργασίας γραμμοκώδικα"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Αποτυχία σάρωσης γραμμοκώδικα"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Αποτυχία σύνδεσης γραμμοκώδικα"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Σύνδεση"
@@ -774,7 +824,7 @@ msgstr "Αυτό θα αφαιρέσει τη σύνδεση με τον σχε
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Αποσύνδεση Γραμμοκώδικα"
@@ -786,14 +836,6 @@ msgstr "Άνοιγμα στο περιβάλλον διαχειριστή"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Αντιγράφηκε"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Αντιγραφή"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Εκτύπωση Ετικετών"
@@ -930,7 +972,7 @@ msgstr "Επόμενος μήνας"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Σφάλμα κατά την ενημέρωση της παραγγελ
msgid "Overdue"
msgstr "Εκπρόθεσμο"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Αποτυχία φόρτωσης widgets του πίνακα ελέγχου."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Δεν έχουν επιλεγεί Widgets"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Χρησιμοποιήστε το μενού για να προσθέσετε widgets στον πίνακα ελέγχου"
@@ -1288,15 +1330,15 @@ msgstr "Email: "
msgid "No name defined"
msgstr "Δεν έχει οριστεί όνομα"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Αφαίρεση εικόνας"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Αφαίρεση της σχετικής εικόνας από αυτό το στοιχείο;"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Αφαίρεση της σχετικής εικόνας από αυτό
msgid "Remove"
msgstr "Αφαίρεση"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Κάντε κλικ για να επιλέξετε αρχείο(α)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Η εικόνα μεταφορτώθηκε"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Η εικόνα μεταφορτώθηκε με επιτυχία"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Σφάλμα μεταφόρτωσης"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Εκκαθάριση"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Υποβολή"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Επιλέξτε από υπάρχουσες εικόνες"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Επιλέξτε εικόνα"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Λήψη απομακρυσμένης εικόνας"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Μεταφόρτωση νέας εικόνας"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Μεταφόρτωση εικόνας"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Διαγραφή εικόνας"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Λήψη εικόνας"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Η εικόνα λήφθηκε με επιτυχία"
@@ -1418,23 +1460,23 @@ msgstr "Η εικόνα λήφθηκε με επιτυχία"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Αποτυχία μεταφόρτωσης εικόνας"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Η εικόνα μεταφορτώθηκε με επιτυχία"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Οι σημειώσεις αποθηκεύτηκαν με επιτυχία"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Αποτυχία αποθήκευσης σημειώσεων"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Σφάλμα αποθήκευσης σημειώσεων"
@@ -1442,15 +1484,15 @@ msgstr "Σφάλμα αποθήκευσης σημειώσεων"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Αποθήκευση σημειώσεων"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Κλείσιμο επεξεργαστή"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Ενεργοποίηση επεξεργασίας"
@@ -1587,11 +1629,6 @@ msgstr "Η σελίδα δεν βρέθηκε"
msgid "This page does not exist"
msgstr "Αυτή η σελίδα δεν υπάρχει"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Άρνηση πρόσβασης"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Δεν έχετε δικαίωμα πρόσβασης σε αυτήν τη σελίδα."
@@ -1604,8 +1641,8 @@ msgstr "Σφάλμα διακομιστή"
msgid "A server error occurred"
msgstr "Προέκυψε σφάλμα διακομιστή"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Σφάλμα Φόρμας"
@@ -1613,11 +1650,11 @@ msgstr "Σφάλμα Φόρμας"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Υπάρχουν σφάλματα σε ένα ή περισσότερα πεδία της φόρμας"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Αποτυχία σύνδεσης"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Ελέγξτε τα στοιχεία σας και προσπαθήστε ξανά."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Το email στάλθηκε με επιτυχία"
@@ -1808,7 +1845,7 @@ msgstr "Υπολογιστής/Host"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Αποθήκευση επιλογής host"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Διακομιστής"
@@ -1896,14 +1933,15 @@ msgstr "Έκδοση API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Επιλέξτε πακέτο"
msgid "{0} icons"
msgstr "{0} εικονίδια"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Φόρτωση"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Δεν βρέθηκαν αποτελέσματα"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Προϊόν"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Απαιτείται modelRenderer για πίνακες"
@@ -2060,7 +2107,7 @@ msgstr "Επεξεργασία δεδομένων"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Παρουσιάστηκε σφάλμα"
@@ -2148,7 +2195,7 @@ msgstr "Τα δεδομένα εισήχθησαν με επιτυχία"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Κλείσιμο"
@@ -2182,8 +2229,8 @@ msgstr "Επιλογές"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Ενέργειες Barcode"
@@ -2298,7 +2345,7 @@ msgstr "Ενημέρωση ρόλων ομάδας"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Ενημερώθηκε"
@@ -2344,9 +2391,9 @@ msgstr "Κανένα στοιχείο"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Η διεργασία background worker δεν εκτελείται"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Ρυθμίσεις email"
@@ -2605,8 +2652,8 @@ msgstr "Μάθετε περισσότερα για {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Ειδοποιήσεις"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Ρυθμίσεις"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Ρυθμίσεις χρήστη"
@@ -2671,8 +2718,8 @@ msgstr "Ρυθμίσεις χρήστη"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Ρυθμίσεις συστήματος"
@@ -2684,8 +2731,8 @@ msgstr "Ρυθμίσεις συστήματος"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Κέντρο διαχείρισης"
@@ -2722,24 +2769,26 @@ msgstr "Αποσύνδεση"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Απόθεμα"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Κατασκευή"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Προμήθειες"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Αφαίρεση ομάδας αναζήτησης"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Συνημμένα"
msgid "Notes"
msgstr "Σημειώσεις"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Παρέχεται από πρόσθετο"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Σύμπτυξη πλαισίων"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Ανάπτυξη πλαισίων"
@@ -2914,18 +2968,18 @@ msgstr "Πληροφορίες πρόσθετου"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Συγγραφέας"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Ημερομηνία"
@@ -2950,7 +3004,7 @@ msgstr "Ημερομηνία"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Πακέτο"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Ρυθμίσεις πρόσθετου"
@@ -3090,8 +3143,8 @@ msgstr "Αποστολή"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Ανενεργό"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Εικονικό"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Χωρίς απόθεμα"
@@ -3111,8 +3164,8 @@ msgstr "Χωρίς απόθεμα"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "Σε παραγγελία"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Λεπτομέρειες"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Κατηγορία"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Κατηγορία"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Τοποθεσία"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Σειριακός αριθμός"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Ποσότητα"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Επόμενο"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Επεξεργασία Προϊόντος"
@@ -3891,8 +3946,8 @@ msgstr "Απαιτήσεις πωλήσεων"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Σε απόθεμα"
msgid "Required Quantity"
msgstr "Απαιτούμενη ποσότητα"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Νέα παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Η παραγγελία αγοράς δημιουργήθηκε"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Νέο Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Το Προϊόν προμηθευτή δημιουργήθηκε"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Προσθήκη στην παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Το Προϊόν προστέθηκε στην παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Επιλέξτε Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Νέο Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Επιλέξτε παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Νέα παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Προσθήκη στην επιλεγμένη παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Δεν επιλέχθηκαν προϊόντα"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Δεν επιλέχθηκαν αγοραζόμενα Προϊόντα"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Τα Προϊόντα προστέθηκαν"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Όλα τα επιλεγμένα Προϊόντα προστέθηκαν σε παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα Προϊόν για παραγγελία"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Απαιτείται Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Απαιτείται ποσότητα"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Μη έγκυρη επιλογή Προϊόντος"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Παρακαλώ διορθώστε τα σφάλματα στα επιλεγμένα Προϊόντα"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Σχετικά με το έργο InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Προϊόν υποκατάστασης"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Επεξεργασία υποκαταστάτων BOM"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Προσθήκη υποκατάστατου"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Το υποκατάστατο προστέθηκε"
@@ -4506,33 +4561,33 @@ msgstr "Το υποκατάστατο προστέθηκε"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Αποτέλεσμα κατασκευής"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Ποσότητα προς ολοκλήρωση"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Ποσότητα προς ολοκλήρωση"
msgid "Status"
msgstr "Κατάσταση"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Ολοκλήρωση αποτελεσμάτων κατασκευής"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Τα αποτελέσματα κατασκευής ολοκληρώθηκαν"
@@ -4560,64 +4615,64 @@ msgstr "Τα αποτελέσματα κατασκευής ολοκληρώθη
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Ποσότητα προς απόρριψη"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Απόρριψη αποτελεσμάτων κατασκευής"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Τα επιλεγμένα αποτελέσματα κατασκευής θα ολοκληρωθούν αλλά θα σημανθούν ως απορριφθέντα"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Τα δεσμευμένα είδη αποθέματος θα καταναλωθούν"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Τα αποτελέσματα κατασκευής έχουν απορριφθεί"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Τα αποτελέσματα κατασκευής έχουν απορριφθεί"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Ακύρωση αποτελεσμάτων κατασκευής"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Τα επιλεγμένα αποτελέσματα κατασκευής θα αφαιρεθούν"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Τα δεσμευμένα είδη θα επιστραφούν στο απόθεμα"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Τα αποτελέσματα κατασκευής ακυρώθηκαν"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Δεσμευμένο"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Τοποθεσία προέλευσης"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Επιλέξτε την τοποθεσία προέλευσης για τη δέσμευση αποθέματος"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Επιλέξτε την τοποθεσία προέλευσης για
msgid "Allocate Stock"
msgstr "Δέσμευση αποθέματος"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Τα είδη αποθέματος δεσμεύτηκαν"
@@ -4658,8 +4713,8 @@ msgstr "Τα είδη αποθέματος δεσμεύτηκαν"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Κατανάλωση αποθέματος"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Πλήρως καταναλωμένο"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Καταναλωμένο"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Επιλέξτε κωδικό έργου για αυτό το Προϊόν"
@@ -4698,7 +4753,7 @@ msgstr "Επιλέξτε κωδικό έργου για αυτό το Προϊό
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Εγγραφή σε ειδοποιήσεις για αυτή την κα
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Επιλογή τοποθεσίας"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Επιλέχθηκε προορισμός Προϊόντος"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Επιλέχθηκε η προεπιλεγμένη τοποθεσία της κατηγορίας"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Επιλέχθηκε τοποθεσία παραληφθέντος αποθέματος"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Επιλέχθηκε η προεπιλεγμένη τοποθεσία"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Εικονικό Προϊόν"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Ορισμός τοποθεσίας"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Ανάθεση κωδικού παρτίδας"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Ορισμός τοποθεσίας"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Ανάθεση κωδικού παρτίδας"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Ορισμός ημερομηνίας λήξης"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Προσαρμογή συσκευασίας"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Αλλαγή κατάστασης"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Προσθήκη σημείωσης"
@@ -4812,22 +4867,22 @@ msgstr "Προσθήκη σημείωσης"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Αποθήκευση στην προεπιλεγμένη τοποθεσία"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Αποθήκευση στον προορισμό της γραμμής "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Αποθήκευση με ήδη παραληφθέν απόθεμα"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Αποθήκευση με ήδη παραληφθέν απόθεμα"
msgid "Batch Code"
msgstr "Κωδικός παρτίδας"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Εισαγάγετε κωδικό παρτίδας για τα παραληφθέντα είδη"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Σειριακοί αριθμοί"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Εισαγάγετε σειριακούς αριθμούς για τα παραληφθέντα είδη"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Ημερομηνία λήξης"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Εισαγάγετε ημερομηνία λήξης για τα παραληφθέντα είδη"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Συσκευασία"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Σημείωση"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Παραλήφθηκε"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Παραλαβή Προϊόντων γραμμής"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Ελήφθησαν τα είδη"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Το είδος παραλήφθηκε στην αποθήκη"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Έλεγχος Αποστολής"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Η σήμανση της αποστολής ως ελεγμένη δηλώνει ότι έχετε επαληθεύσει πως όλα τα είδη στην αποστολή είναι σωστά"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Η αποστολή σημειώθηκε ως ελεγμένη"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Αναίρεση Ελέγχου Αποστολής"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Η σήμανση της αποστολής ως μη ελεγμένη δηλώνει ότι απαιτείται επιπλέον έλεγχος"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Η αποστολή σημειώθηκε ως μη ελεγμένη"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Ολοκλήρωση Αποστολής"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Αφήστε κενό για χρήση της διεύθυνσης της παραγγελίας"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Κατάσταση αποθέματος"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Επιστροφή"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Καταμέτρηση"
@@ -5229,7 +5284,7 @@ msgstr "Εσωτερικό σφάλμα διακομιστή"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Αποσυνδεθήκατε"
@@ -5257,81 +5312,81 @@ msgstr "Επιτυχής σύνδεση με MFA"
msgid "MFA details were automatically provided in the browser"
msgstr "Οι λεπτομέρειες MFA παρέχθηκαν αυτόματα από τον browser"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Αποσυνδεθήκατε με επιτυχία"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Η γλώσσα άλλαξε"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Η ενεργή γλώσσα σας άλλαξε σε αυτή που έχει οριστεί στο προφίλ σας"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Το θέμα άλλαξε"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Το ενεργό θέμα άλλαξε σε αυτό που έχει οριστεί στο προφίλ σας"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Ελέγξτε τα εισερχόμενά σας για τον σύνδεσμο επαναφοράς. Λειτουργεί μόνο αν έχετε λογαριασμό. Ελέγξτε και στα spam."
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Η επαναφορά απέτυχε"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Ήδη συνδεδεμένος"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Υπάρχει αντικρουόμενη συνεδρία στον διακομιστή για αυτόν τον browser. Παρακαλώ αποσυνδεθείτε πρώτα από αυτή."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Συνδεθήκατε"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Συνδεθήκατε με επιτυχία"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Αποτυχία ρύθμισης MFA"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Ο κωδικός ορίστηκε"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Ο κωδικός ορίστηκε με επιτυχία. Μπορείτε πλέον να συνδεθείτε με τον νέο σας κωδικό"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Ο κωδικός δεν μπόρεσε να αλλάξει"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Οι δύο πεδία κωδικού δεν ταιριάζουν"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Ο κωδικός άλλαξε"
@@ -5351,38 +5406,10 @@ msgstr "Ο κωδικός άλλαξε"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Δεν έχει υλοποιηθεί"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Αυτή η λειτουργία δεν έχει υλοποιηθεί ακόμη"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Δεν έχετε δικαιώματα για να πραγματοποιήσετε αυτή την ενέργεια"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Μη έγκυρος κωδικός επιστροφής"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Ο διακομιστής επέστρεψε κατάσταση {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Λήξη χρόνου"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Το αίτημα έληξε χρονικά"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Εξαγωγή δεδομένων"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Διαγραφή των επιλεγμένων ειδών αποθέματος"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Ενέργειες Αποθέματος"
@@ -5811,73 +5838,73 @@ msgstr "Προέκυψε ένα απρόσμενο σφάλμα"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Το Προϊόν έχει ήδη σαρωθεί"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Σφάλμα API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Αποτυχία λήψης δεδομένων της εγκατάστασης"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Σφάλμα σάρωσης"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Τα επιλεγμένα στοιχεία δεν είναι γνωστά"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Επιλέχθηκαν πολλοί τύποι Προϊόντων"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Ενέργειες ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Ενέργειες ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Σάρωση barcode"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Εισαγωγή barcode"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Ενέργεια"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Δεν έχουν επιλεγεί Προϊόντα"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Σαρώστε και επιλέξτε Προϊόντα για να εκτελέσετε ενέργειες"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Σαρώστε και επιλέξτε Προϊόντα για να εκτελέσετε ενέργειες"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "Έχουν επιλεγεί {0} Προϊόντα"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Σαρωμένα Προϊόντα"
@@ -6593,7 +6620,7 @@ msgstr "Τελείες"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Νόμισμα"
@@ -6661,11 +6688,11 @@ msgstr "Γρήγορες ενέργειες"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Αρχική"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Χρήστες / Πρόσβαση"
@@ -6673,27 +6700,27 @@ msgstr "Χρήστες / Πρόσβαση"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Εισαγωγή δεδομένων"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Εξαγωγή δεδομένων"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Σαρώσεις barcode"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Εργασίες παρασκηνίου"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Αναφορές σφαλμάτων"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Νομίσματα"
@@ -6701,11 +6728,11 @@ msgstr "Νομίσματα"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Προσαρμοσμένες καταστάσεις"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Προσαρμοσμένες μονάδες"
@@ -6715,12 +6742,12 @@ msgstr "Προσαρμοσμένες μονάδες"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Παράμετροι Κατηγορίας"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Τύποι Τοποθεσιών"
@@ -6728,35 +6755,35 @@ msgstr "Τύποι Τοποθεσιών"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Μηχανήματα"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Λειτουργίες"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Διαχείριση Δεδομένων"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Αναφορές"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Επέκταση / Ενσωμάτωση"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Προχωρημένες Επιλογές"
@@ -6949,11 +6976,15 @@ msgstr "Tokens"
msgid "The settings below are specific to each available plugin"
msgstr "Οι παρακάτω ρυθμίσεις είναι ειδικές για κάθε διαθέσιμο πρόσθετο"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Ταυτοποίηση"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Barcodes"
@@ -6965,8 +6996,8 @@ msgstr "Barcodes"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Οι παρακάτω ρυθμίσεις είναι ειδικές για κάθε διαθέσιμη μέθοδο ειδοποίησης"
@@ -6974,21 +7005,29 @@ msgstr "Οι παρακάτω ρυθμίσεις είναι ειδικές γι
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Τιμολόγηση"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Ετικέτες"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Παρακολούθηση Αποθέματος"
@@ -6996,15 +7035,15 @@ msgstr "Παρακολούθηση Αποθέματος"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Λογαριασμός"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Ασφάλεια"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Επιλογές εμφάνισης"
@@ -7040,15 +7079,15 @@ msgstr "Σήμανση ως μη αναγνωσμένο"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Δεν υπάρχουν απαιτούμενα Προϊόντα"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Η εντολή κατασκευής δεν έχει απαιτούμενα Προϊόντα."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "Το συναρμολογημένο Προϊόν μπορεί να μην έχει ορισμένο BOM ή το BOM είναι άδειο."
@@ -7056,6 +7095,18 @@ msgstr "Το συναρμολογημένο Προϊόν μπορεί να μη
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Το BOM Δεν Έχει Επικυρωθεί"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "Το συναρμολογημένο Προϊόν μπορεί να μη
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Αναθεώρηση"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Προσαρμοσμένη κατάσταση"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Προσαρμοσμένη κατάσταση"
msgid "External"
msgstr "Εξωτερικό"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Αναφορά"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Γονική κατασκευή"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Ποσότητα Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Μπορεί να Κατασκευαστεί"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Ολοκληρωμένες Παραγωγές"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Εκδόθηκε Από"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Υπεύθυνος"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Οποιαδήποτε τοποθεσία"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Τοποθεσία Προορισμού"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Οποιαδήποτε τοποθεσία"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Δημιουργήθηκε"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Τοποθεσία Προορισμού"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Δημιουργήθηκε"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Ημερομηνία Έναρξης"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Ημερομηνία Στόχος"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Ολοκληρώθηκε"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Λεπτομέρειες Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Απαιτούμενα Προϊόντα"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Δεσμευμένο Απόθεμα"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Καταναλωμένο Απόθεμα"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Μη Ολοκληρωμένες Παραγωγές"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Εξωτερικές Παραγγελίες"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Θυγατρικές Εντολές Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Αποτελέσματα Δοκιμών"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Επεξεργασία Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Προσθήκη Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Ακύρωση Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Η παραγγελία ακυρώθηκε"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Ακύρωση της παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Πάγωμα Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Τοποθέτηση παραγγελίας σε αναμονή"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Η παραγγελία τέθηκε σε αναμονή"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Έκδοση Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Έκδοση παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Η παραγγελία εκδόθηκε"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Ολοκλήρωση Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Σήμανση παραγγελίας ως ολοκληρωμένη"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Η παραγγελία ολοκληρώθηκε"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Έκδοση Παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Ολοκλήρωση Παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Ενέργειες Εντολής Κατασκευής"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Επεξεργασία παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Αντιγραφή παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Κατάψυξη παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Ακύρωση παραγγελίας"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Εμφάνιση εξωτερικών εντολών κατασκευή
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Εμφάνιση εξωτερικών εντολών κατασκευή
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Προβολή Πίνακα"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Προβολή Ημερολογίου"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Προβολή Ημερολογίου"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Κατασκευαστής"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Εξωτερικός Σύνδεσμος"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Στοιχεία Προϊόντος"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Προσθήκη Προϊόντος Προμηθευτή"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Χωρίς Απόθεμα"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Ρόλοι Ομάδας"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Πληροφορίες Χρήστη"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Γονική Κατηγορία"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Υποκατηγορίες"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Προεπιλεγμένη τοποθεσία"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Κατηγορία Προϊόντων κορυφαίου επιπέδου"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Επεξεργασία Κατηγορίας Προϊόντων"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Μετακίνηση Προϊόντων στη γονική κατηγορία"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Διαγραφή Προϊόντων"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Διαγραφή Κατηγορίας Προϊόντων"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Ενέργεια Προϊόντων"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Ενέργεια για τα Προϊόντα αυτής της κατηγορίας"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Ενέργεια Υποκατηγοριών"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Ενέργεια για τις υποκατηγορίες αυτής της κατηγορίας"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Ενέργειες Κατηγορίας"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Στοιχεία Κατηγορίας"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Κατανομές Εντολών Κατασκευής"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Κατανομές Παραγγελιών Πώλησης"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Έλεγχος BOM"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Θέλετε να επικυρώσετε το BOM για αυτό το συναρμολόγημα;"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Το BOM Επικυρώθηκε"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "Το BOM για αυτό το Προϊόν έχει επικυρωθεί"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Το BOM Δεν Έχει Επικυρωθεί"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "Το BOM για αυτό το Προϊόν έχει ελεγχθεί παλαιότερα, αλλά απαιτεί επανεπικύρωση"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "Το BOM για αυτό το Προϊόν δεν έχει επικυρωθεί ακόμη"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Επικυρώθηκε Στις"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Επικυρώθηκε Από"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Επικυρώθηκε Από"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Παραλλαγή του"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Αναθεώρηση του"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Επικυρώθηκε Από"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Παραλλαγή του"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Αναθεώρηση του"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Προεπιλεγμένη Τοποθεσία"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Προεπιλεγμένη Τοποθεσία Κατηγορίας"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Μονάδες"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Λέξεις-Κλειδιά"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Διαθέσιμο Απόθεμα"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Σε παραγγελία"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Απαιτείται για Παραγγελίες"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Δεσμευμένο για Εντολές Κατασκευής"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Δεσμευμένο για Παραγγελίες Πώλησης"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Ελάχιστο Απόθεμα"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Κλειδωμένο"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Πρότυπο Προϊόν"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Συναρμολογημένο Προϊόν"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Προϊόν Συστατικού"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Ελέγξιμο Προϊόν"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Ανιχνεύσιμο Προϊόν"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Αγοράσιμο Προϊόν"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Πωλήσιμο Προϊόν"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Ημερομηνία Δημιουργίας"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Δημιουργήθηκε Από"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Προεπιλεγμένη Λήξη"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "ημέρες"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Εύρος Τιμής"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Τελευταίος Σειριακός Αριθμός"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Επιλογή Αναθεώρησης Προϊόντος"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Παραλλαγές"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Δεσμεύσεις"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Κατάλογος Υλικών (BOM)"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Τελευταίος Σειριακός Αριθμός"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Επιλογή Αναθεώρησης Προϊόντος"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Παραλλαγές"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Δεσμεύσεις"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Κατάλογος Υλικών (BOM)"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Χρησιμοποιείται Σε"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Τιμολόγηση Προϊόντος"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Πρότυπα Δοκιμών"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Σχετικά Προϊόντα"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Το Προϊόν είναι Κλειδωμένο"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Οι παράμετροι προϊόντος δεν μπορούν να επεξεργαστούν επειδή το προϊόν είναι κλειδωμένο"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Απαιτείται"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Οι παράμετροι προϊόντος δεν μπορούν να
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Απαιτείται"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Προσθήκη Προϊόντος"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Διαγραφή Προϊόντος"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Η διαγραφή αυτού του Προϊόντος δεν μπορεί να αναιρεθεί"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Παραγγελία"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Παραγγελία Αποθέματος"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Αναζήτηση με σειριακό αριθμό"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Ενέργειες Προϊόντος"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Αξία Αποθέματος"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Έλεγχος BOM"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Θέλετε να επικυρώσετε το BOM για αυτό το συναρμολόγημα;"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Το BOM Επικυρώθηκε"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "Το BOM για αυτό το Προϊόν έχει επικυρωθεί"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "Το BOM για αυτό το Προϊόν έχει ελεγχθεί παλαιότερα, αλλά απαιτεί επανεπικύρωση"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "Το BOM για αυτό το Προϊόν δεν έχει επικυρωθεί ακόμη"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Επικυρώθηκε Στις"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Επικυρώθηκε Από"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Να επιτρέπονται παραλλαγές"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Κληρονομημένο"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Προαιρετικό"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Αναλώσιμο"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Ποσότητα ρύθμισης"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Φθορά"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Στρογγυλοποίηση πολλαπλάσιου"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Μέγιστη Τιμή"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Τιμολόγηση Αγορών"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Ημερομηνία Έκδοσης"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Δεν ελέγχθηκε"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Μητρική Τοποθεσία"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Υποτοποθεσίες"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Τύπος Τοποθεσίας"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Κορυφαία τοποθεσία αποθέματος"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Λεπτομέρειες Τοποθεσίας"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Προεπιλεγμένα Προϊόντα"
@@ -8768,86 +8915,86 @@ msgstr "Προεπιλεγμένα Προϊόντα"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Επεξεργασία Τοποθεσίας Αποθέματος"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Μετακίνηση ειδών στη μητρική τοποθεσία"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Διαγραφή Τοποθεσίας Αποθέματος"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Ενέργεια για Είδη"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Ενέργεια για τα είδη αποθέματος σε αυτή την τοποθεσία"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Ενέργειες Τοποθεσίας"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Ενέργεια για τις θυγατρικές τοποθεσίες σε αυτή την τοποθεσία"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Ενέργεια για τις θυγατρικές τοποθεσίες σε αυτή την τοποθεσία"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Σάρωση Είδους Αποθέματος"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Το είδος αποθέματος σαρώθηκε στην τοποθεσία"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Σφάλμα κατά τη σάρωση είδους αποθέματος"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Σάρωση Τοποθεσίας Αποθέματος"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Η τοποθεσία αποθέματος σαρώθηκε επιτυχώς"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Σφάλμα κατά τη σάρωση τοποθεσίας αποθέματος"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Βασικό Προϊόν"
@@ -8867,7 +9014,7 @@ msgstr "Βασικό Προϊόν"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Προηγούμενος σειριακός αριθμός"
@@ -8875,35 +9022,35 @@ msgstr "Προηγούμενος σειριακός αριθμός"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Εύρεση σειριακού αριθμού"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Επόμενος σειριακός αριθμός"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Δεσμευμένο για Παραγγελίες"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Εγκατεστημένο Σε"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Μητρικό Είδος"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Μητρικό είδος αποθέματος"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Καταναλώθηκε Από"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Τελευταία Απογραφή"
@@ -8911,7 +9058,7 @@ msgstr "Τελευταία Απογραφή"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Λεπτομέρειες Αποθέματος"
@@ -8919,15 +9066,15 @@ msgstr "Λεπτομέρειες Αποθέματος"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Εγκατεστημένα Είδη"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Θυγατρικά Είδη"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Επεξεργασία Είδους Αποθέματος"
@@ -8941,20 +9088,24 @@ msgstr "Επεξεργασία Είδους Αποθέματος"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Δημιουργήθηκαν Είδη"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Δημιουργήθηκαν {n} είδη αποθέματος"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Διαγραφή Είδους Αποθέματος"
@@ -8966,44 +9117,44 @@ msgstr "Διαγραφή Είδους Αποθέματος"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Μετατροπή σε Σειριακό Είδος"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Μετατροπή σε Σειριακό Είδος"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Το είδος αποθέματος σειριοποιήθηκε"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Σάρωση στην Τοποθεσία"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Σάρωση στην τοποθεσία"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Σάρωση του είδους σε μια τοποθεσία"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Λειτουργίες Αποθέματος"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Σάρωση στην τοποθεσία"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Σάρωση του είδους σε μια τοποθεσία"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Λειτουργίες Αποθέματος"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Σειριοποίηση"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Σειριοποίηση αποθέματος"
@@ -9011,14 +9162,22 @@ msgstr "Σειριοποίηση αποθέματος"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Ενέργειες Είδους Αποθέματος"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Ενέργειες Είδους Αποθέματος"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Ενέργειες Είδους Αποθέματος"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Μπαγιάτικο / Παρωχημένο"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Έχει λήξει"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Μη διαθέσιμο"
@@ -9116,27 +9275,22 @@ msgstr "Δεν υπάρχει διαθέσιμο απόθεμα"
msgid "This stock item has been depleted"
msgstr "Αυτό το Προϊόν αποθέματος έχει εξαντληθεί"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Πληροφορίες αποθέματος"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Κατανεμημένες γραμμές"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Επιλογή Στηλών"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Φίλτρο"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Φίλτρα Πίνακα"
@@ -9435,12 +9589,12 @@ msgstr "Προσθήκη Φίλτρου"
msgid "Clear Filters"
msgstr "Καθαρισμός Φίλτρων"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Δεν βρέθηκαν εγγραφές"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Σφάλμα φόρτωσης επιλογών πίνακα"
@@ -9468,7 +9622,7 @@ msgstr "Σφάλμα φόρτωσης επιλογών πίνακα"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Ο διακομιστής επέστρεψε λανθασμένο τύπο δεδομένων"
@@ -9477,7 +9631,7 @@ msgstr "Ο διακομιστής επέστρεψε λανθασμένο τύπ
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Σφάλμα φόρτωσης δεδομένων πίνακα"
@@ -9494,49 +9648,49 @@ msgstr "Σφάλμα φόρτωσης δεδομένων πίνακα"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Προβολή λεπτομερειών"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "Προβολή {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Διαγραφή Επιλεγμένων Ειδών"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα είδη;"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Αυτή η ενέργεια δεν μπορεί να αναιρεθεί"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Τα είδη διαγράφηκαν"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Αποτυχία διαγραφής ειδών"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Τα προσαρμοσμένα φίλτρα πίνακα είναι ενεργά"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Διαγραφή επιλεγμένων εγγραφών"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Ανανέωση δεδομένων"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Ενεργά Φίλτρα"
@@ -9548,71 +9702,66 @@ msgstr "Ενεργά Φίλτρα"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Αυτό το στοιχείο BOM έχει οριστεί για διαφορετικό γονικό"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Πληροφορίες Προϊόντος"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Αυτό το στοιχείο BOM δεν έχει επικυρωθεί"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Πληροφορίες Προϊόντος"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Υποκατάστατα"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Εικονικό Προϊόν"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Εξωτερικό απόθεμα"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Περιλαμβάνει υποκατάστατο απόθεμα"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Σε κατασκευή"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Περιλαμβάνει υποκατάστατο απόθεμα"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Περιλαμβάνει απόθεμα παραλλαγών"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Σε κατασκευή"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Σε κατασκευή"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Αναλώσιμο στοιχείο"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Δεν υπάρχει διαθέσιμο απόθεμα"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Εμφάνιση δοκιμασμένων στοιχείων"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Εμφάνιση ιχνηλάσιμων στοιχείων"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Ενεργό προϊόν"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Εμφάνιση συναρμολογημένων στοιχείων"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Εμφάνιση εικονικών στοιχείων"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Εμφάνιση Προϊόντων με διαθέσιμο απόθεμα"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Εμφάνιση Προϊόντων σε παραγγελία"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Επικυρωμένο"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Εμφάνιση επικυρωμένων στοιχείων"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Κληρονομημένο"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Εμφάνιση κληρονομημένων στοιχείων"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Να επιτρέπονται παραλλαγές"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Εμφάνιση Προϊόντων που επιτρέπουν αντικατάσταση παραλλαγών"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Προαιρετικό"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Εμφάνιση προαιρετικών στοιχείων"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Αναλώσιμο"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Εμφάνιση αναλώσιμων στοιχείων"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Έχει τιμολόγηση"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Εμφάνιση στοιχείων με τιμολόγηση"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Εισαγωγή δεδομένων BOM"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Προσθήκη στοιχείου BOM"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Το στοιχείο BOM δημιουργήθηκε"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Επεξεργασία στοιχείου BOM"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Το στοιχείο BOM ενημερώθηκε"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Διαγραφή στοιχείου BOM"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Το στοιχείο BOM διαγράφηκε"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Το στοιχείο BOM επικυρώθηκε"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Αποτυχία επικύρωσης στοιχείου BOM"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Προβολή BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Επικύρωση γραμμής BOM"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Επεξεργασία υποκατάστατων"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Εισαγωγή από αρχείο"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Το BOM δεν μπορεί να επεξεργαστεί, επειδή το Προϊόν είναι κλειδωμένο"
@@ -9966,18 +10108,6 @@ msgstr "Κληρονομείται"
msgid "Unit Quantity"
msgstr "Ποσότητα μονάδας"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Ποσότητα ρύθμισης"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Φθορά"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Στρογγυλοποίηση πολλαπλάσιου"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Πληροφορίες BOM"
@@ -10361,10 +10491,6 @@ msgstr "Δεν βρέθηκαν συνημμένα"
msgid "Drag attachment file here to upload"
msgstr "Σύρετε το συνημμένο εδώ για μεταφόρτωση"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Προϊόν"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Μοντέλο"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Προσθήκη προτύπου παραμέτρου"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Αντιγραφή προτύπου παραμέτρου"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Διαγραφή προτύπου παραμέτρου"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Επεξεργασία προτύπου παραμέτρου"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Checkbox"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Εμφάνιση προτύπων checkbox"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Έχει επιλογές"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Εμφάνιση προτύπων με επιλογές"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Έχει μονάδες"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Εμφάνιση προτύπων με μονάδες"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Τύπος μοντέλου"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr "Φιλτράρισμα βάσει κατάστασης γραμμής"
msgid "Receive selected items"
msgstr "Παραλαβή επιλεγμένων Προϊόντων"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Παραλαβή Προϊόντος"
diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po
index 32a2d8f0ef..1153473118 100644
--- a/src/frontend/src/locales/en/messages.po
+++ b/src/frontend/src/locales/en/messages.po
@@ -13,9 +13,29 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Error rendering component"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "An error occurred while rendering this component. Refer to the console for more information."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr "Try reloading the page, or contact your administrator if the problem persists."
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copied"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copy"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicate"
@@ -25,7 +45,7 @@ msgid "Edit"
msgstr "Edit"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -35,7 +55,7 @@ msgid "Delete"
msgstr "Delete"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -51,7 +71,7 @@ msgstr "Cancel"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -63,15 +83,20 @@ msgid "Actions"
msgstr "Actions"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Search"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Select Columns"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Pass"
@@ -93,16 +118,16 @@ msgid "No"
msgstr "No"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -113,8 +138,9 @@ msgstr "No"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -125,15 +151,15 @@ msgid "Part"
msgstr "Part"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Parts"
@@ -153,9 +179,9 @@ msgstr "Parameter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parameters"
@@ -178,9 +204,9 @@ msgid "Part Test Templates"
msgstr "Part Test Templates"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -208,25 +234,25 @@ msgid "Manufacturer Parts"
msgstr "Manufacturer Parts"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Part Category"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Part Categories"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -237,25 +263,25 @@ msgid "Stock Item"
msgstr "Stock Item"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Stock Items"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Stock Location"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Stock Locations"
@@ -268,8 +294,7 @@ msgid "Stock Location Types"
msgstr "Stock Location Types"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Stock History"
@@ -314,26 +339,26 @@ msgid "Companies"
msgstr "Companies"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Project Code"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Project Codes"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -341,12 +366,12 @@ msgid "Purchase Order"
msgstr "Purchase Order"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Purchase Orders"
@@ -360,12 +385,12 @@ msgid "Purchase Order Lines"
msgstr "Purchase Order Lines"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -374,11 +399,11 @@ msgid "Sales Order"
msgstr "Sales Order"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Sales Orders"
@@ -399,11 +424,11 @@ msgid "Return Order"
msgstr "Return Order"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Return Orders"
@@ -437,12 +462,12 @@ msgstr "Contact"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contacts"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Owner"
@@ -453,7 +478,7 @@ msgstr "Owners"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -468,7 +493,7 @@ msgstr "User"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Users"
@@ -481,7 +506,7 @@ msgstr "Group"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -501,7 +526,7 @@ msgid "Label Template"
msgstr "Label Template"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Label Templates"
@@ -510,7 +535,7 @@ msgid "Report Template"
msgstr "Report Template"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Report Templates"
@@ -551,8 +576,8 @@ msgstr "Selection Entries"
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -566,8 +591,8 @@ msgstr "Selection Entries"
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -577,8 +602,8 @@ msgstr "Selection Entries"
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -590,19 +615,52 @@ msgstr "Error"
msgid "Errors"
msgstr "Errors"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Build Orders"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Not implemented"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "This feature is not yet implemented"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Permission Denied"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "You do not have permission to perform this action"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Invalid Return Code"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server returned status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Timeout"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "The request timed out"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -612,14 +670,6 @@ msgstr "Process failed"
msgid "Process completed successfully"
msgstr "Process completed successfully"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Error rendering component"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "An error occurred while rendering this component. Refer to the console for more information."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -683,8 +733,8 @@ msgstr "Enter barcode data"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Scan Barcode"
@@ -697,13 +747,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Barcode does not match the expected model type"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Success"
@@ -713,7 +763,7 @@ msgid "Failed to handle barcode"
msgstr "Failed to handle barcode"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Failed to scan barcode"
@@ -754,12 +804,12 @@ msgid "Failed to link barcode"
msgstr "Failed to link barcode"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Link"
@@ -769,7 +819,7 @@ msgstr "This will remove the link to the associated barcode"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Unlink Barcode"
@@ -781,14 +831,6 @@ msgstr "Open in admin interface"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copied"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copy"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Printing Labels"
@@ -925,7 +967,7 @@ msgstr "Next month"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Export data"
@@ -942,15 +984,15 @@ msgstr "Error updating order"
msgid "Overdue"
msgstr "Overdue"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Failed to load dashboard widgets."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "No Widgets Selected"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Use the menu to add widgets to the dashboard"
@@ -1283,15 +1325,15 @@ msgstr "Email: "
msgid "No name defined"
msgstr "No name defined"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Remove Image"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Remove the associated image from this item?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1307,11 +1349,11 @@ msgstr "Remove the associated image from this item?"
msgid "Remove"
msgstr "Remove"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr "Image removed"
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr "The image has been removed successfully"
@@ -1319,69 +1361,69 @@ msgstr "The image has been removed successfully"
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr "Drag and drop to upload, or paste an image from the clipboard"
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Click to select file(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Image uploaded"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Image has been uploaded successfully"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Upload Error"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Clear"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Submit"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Select from existing images"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Select Image"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Download remote image"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Upload new image"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Upload Image"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Delete image"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Download Image"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Image downloaded successfully"
@@ -1413,23 +1455,23 @@ msgstr "Image downloaded successfully"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Image upload failed"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Image uploaded successfully"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notes saved successfully"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Failed to save notes"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Error Saving Notes"
@@ -1437,15 +1479,15 @@ msgstr "Error Saving Notes"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Save Notes"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Close Editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Enable Editing"
@@ -1582,11 +1624,6 @@ msgstr "Page Not Found"
msgid "This page does not exist"
msgstr "This page does not exist"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Permission Denied"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "You do not have permission to view this page."
@@ -1599,8 +1636,8 @@ msgstr "Server Error"
msgid "A server error occurred"
msgstr "A server error occurred"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Form Error"
@@ -1608,11 +1645,11 @@ msgstr "Form Error"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Errors exist for one or more form fields"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1656,12 +1693,12 @@ msgstr "Login failed"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Check your input and try again."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Mail delivery successful"
@@ -1803,7 +1840,7 @@ msgstr "Host"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1872,7 +1909,7 @@ msgstr "Save host selection"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1891,14 +1928,15 @@ msgstr "API Version"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1963,16 +2001,25 @@ msgstr "Select pack"
msgid "{0} icons"
msgstr "{0} icons"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Loading"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "No results found"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Item"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr "Create New {model}"
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "modelRenderer entry required for tables"
@@ -2055,7 +2102,7 @@ msgstr "Processing Data"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "An error occurred"
@@ -2143,7 +2190,7 @@ msgstr "Data has been imported successfully"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Close"
@@ -2177,8 +2224,8 @@ msgstr "Options"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Barcode Actions"
@@ -2293,7 +2340,7 @@ msgstr "Updating group roles"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Updated"
@@ -2339,9 +2386,9 @@ msgstr "No items"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2544,7 +2591,7 @@ msgstr "The background worker process is not running"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Email Settings"
@@ -2600,8 +2647,8 @@ msgstr "Learn more about {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2611,14 +2658,14 @@ msgstr "Notifications"
#~ msgid "Administrator Mode"
#~ msgstr "Administrator Mode"
-#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
-msgstr "Admin Mode"
-
#: src/components/nav/Header.tsx:231
msgid "Superuser Mode"
msgstr "Superuser Mode"
+#: src/components/nav/Header.tsx:231
+msgid "Admin Mode"
+msgstr "Admin Mode"
+
#: src/components/nav/Header.tsx:237
msgid "The current user has elevated privileges and should not be used for regular usage."
msgstr "The current user has elevated privileges and should not be used for regular usage."
@@ -2648,8 +2695,8 @@ msgstr "Settings"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "User Settings"
@@ -2666,8 +2713,8 @@ msgstr "User Settings"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "System Settings"
@@ -2679,8 +2726,8 @@ msgstr "System Settings"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Admin Center"
@@ -2717,24 +2764,26 @@ msgstr "Logout"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Manufacturing"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2746,6 +2795,7 @@ msgstr "Purchasing"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2805,7 +2855,7 @@ msgstr "Remove search group"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2874,15 +2924,19 @@ msgstr "Attachments"
msgid "Notes"
msgstr "Notes"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plugin Provided"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr "You have unsaved changes, are you sure you want to navigate away from this panel?"
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Collapse panels"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Expand panels"
@@ -2909,18 +2963,18 @@ msgstr "Plugin Information"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2935,7 +2989,7 @@ msgstr "Author"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Date"
@@ -2945,7 +2999,7 @@ msgstr "Date"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2992,8 +3046,7 @@ msgstr "Package"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Plugin Settings"
@@ -3085,8 +3138,8 @@ msgstr "Shipment"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inactive"
@@ -3097,7 +3150,7 @@ msgid "Virtual"
msgstr "Virtual"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "No stock"
@@ -3106,8 +3159,8 @@ msgstr "No stock"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3115,9 +3168,9 @@ msgstr "On Order"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3130,9 +3183,9 @@ msgstr "Details"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3141,8 +3194,8 @@ msgstr "Category"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3154,39 +3207,41 @@ msgstr "Category"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Location"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Serial Number"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3198,9 +3253,9 @@ msgid "Quantity"
msgstr "Quantity"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3793,7 +3848,7 @@ msgid "Next"
msgstr "Next"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Edit Part"
@@ -3886,8 +3941,8 @@ msgstr "Sales Requirements"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3898,94 +3953,94 @@ msgstr "In Stock"
msgid "Required Quantity"
msgstr "Required Quantity"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "New Purchase Order"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Purchase order created"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "New Supplier Part"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Supplier part created"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Add to Purchase Order"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Part added to purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Select supplier part"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Copy supplier part number"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "New supplier part"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Select purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "New purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Add to selected purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "No parts selected"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "No purchaseable parts selected"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Parts Added"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "All selected parts added to a purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "You must select at least one part to order"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Supplier part is required"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Quantity is required"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Invalid part selection"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Please correct the errors in the selected parts"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4475,19 +4530,19 @@ msgstr "About the InvenTree Project"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Substitute Part"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Edit BOM Substitutes"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Add Substitute"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Substitute added"
@@ -4501,33 +4556,33 @@ msgstr "Substitute added"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Build Output"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Quantity to Complete"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4543,11 +4598,11 @@ msgstr "Quantity to Complete"
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Complete Build Outputs"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Build outputs have been completed"
@@ -4555,64 +4610,64 @@ msgstr "Build outputs have been completed"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Quantity to Scrap"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Scrap Build Outputs"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Selected build outputs will be completed, but marked as scrapped"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Allocated stock items will be consumed"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Build outputs have been scrapped"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Build outputs have been scrapped"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Cancel Build Outputs"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Selected build outputs will be removed"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Allocated stock items will be returned to stock"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Build outputs have been cancelled"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4620,20 +4675,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Allocated"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Source Location"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Select the source location for the stock allocation"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4643,8 +4698,8 @@ msgstr "Select the source location for the stock allocation"
msgid "Allocate Stock"
msgstr "Allocate Stock"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Stock items allocated"
@@ -4653,8 +4708,8 @@ msgstr "Stock items allocated"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4667,22 +4722,22 @@ msgstr "Consume Stock"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Fully consumed"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Consumed"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Select project code for this line item"
@@ -4693,7 +4748,7 @@ msgstr "Select project code for this line item"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4732,35 +4787,35 @@ msgstr "Subscribe to notifications for this category"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Choose Location"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Item Destination selected"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Part category default location selected"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Received stock location selected"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Default location selected"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtual Part"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr "This part is virtual, no physical stock will be received."
@@ -4768,38 +4823,38 @@ msgstr "This part is virtual, no physical stock will be received."
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Set Location"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Assign Batch Code"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Set Location"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Assign Batch Code"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Assign Serial Numbers"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Set Expiry Date"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Adjust Packaging"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Change Status"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Add Note"
@@ -4807,22 +4862,22 @@ msgstr "Add Note"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Store at default location"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Store at line item destination "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Store with already received stock"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4832,51 +4887,51 @@ msgstr "Store with already received stock"
msgid "Batch Code"
msgstr "Batch Code"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Enter batch code for received items"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Serial Numbers"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Enter serial numbers for received items"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Expiry Date"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Enter an expiry date for received items"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Packaging"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Note"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4884,11 +4939,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Received"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Receive Line Items"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Items received"
@@ -4901,52 +4956,52 @@ msgid "Item received into stock"
msgstr "Item received into stock"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr "Price based on part and quantity differs{0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Check Shipment"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Shipment marked as checked"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Uncheck Shipment"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Marking the shipment as unchecked indicates that the shipment requires further verification"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Shipment marked as unchecked"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr "Completing shipment"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr "Shipment completed successfully"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Complete Shipment"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Leave blank to use the order address"
@@ -4975,7 +5030,7 @@ msgid "Stock Status"
msgstr "Stock Status"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5002,7 +5057,7 @@ msgid "Return"
msgstr "Return"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Count"
@@ -5224,7 +5279,7 @@ msgstr "Internal server error"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Logged Out"
@@ -5252,81 +5307,81 @@ msgstr "MFA Login successful"
msgid "MFA details were automatically provided in the browser"
msgstr "MFA details were automatically provided in the browser"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Successfully logged out"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Language changed"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Your active language has been changed to the one set in your profile"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Theme changed"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Your active theme has been changed to the one set in your profile"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Reset failed"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Already logged in"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "There is a conflicting session on the server for this browser. Please logout of that first."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Logged In"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Successfully logged in"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Failed to set up MFA"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "MFA Setup successful"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "MFA via TOTP has been set up successfully; you will need to login again."
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Password set"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Password could not be changed"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "The two password fields didn’t match"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Password Changed"
@@ -5346,38 +5401,10 @@ msgstr "Password Changed"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Not implemented"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "This feature is not yet implemented"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "You do not have permission to perform this action"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Invalid Return Code"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server returned status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Timeout"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "The request timed out"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Exporting Data"
@@ -5467,7 +5494,7 @@ msgid "Delete selected stock items"
msgstr "Delete selected stock items"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Stock Actions"
@@ -5806,73 +5833,73 @@ msgstr "An unexpected error has occurred"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Item already scanned"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API Error"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Failed to fetch instance data"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Scan Error"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Selected elements are not known"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Multiple object types selected"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Actions ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Actions ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Barcode Scanning"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Barcode Input"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Action"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "No Items Selected"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Scan and select items to perform actions"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Scan and select items to perform actions"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} items selected"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Scanned Items"
@@ -6588,7 +6615,7 @@ msgstr "Dots"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Currency"
@@ -6656,11 +6683,11 @@ msgstr "Quick Actions"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Home"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Users / Access"
@@ -6668,27 +6695,27 @@ msgstr "Users / Access"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Data Import"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Data Export"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Barcode Scans"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Background Tasks"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Error Reports"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Currencies"
@@ -6696,11 +6723,11 @@ msgstr "Currencies"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Custom States"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Custom Units"
@@ -6710,12 +6737,12 @@ msgstr "Custom Units"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Category Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Location Types"
@@ -6723,35 +6750,35 @@ msgstr "Location Types"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Machines"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Operations"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Data Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Reporting"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Extend / Integrate"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Advanced Options"
@@ -6944,11 +6971,15 @@ msgstr "Tokens"
msgid "The settings below are specific to each available plugin"
msgstr "The settings below are specific to each available plugin"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Authentication"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr "Single Sign-On (SSO) Settings"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Barcodes"
@@ -6960,8 +6991,8 @@ msgstr "Barcodes"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "The settings below are specific to each available notification method"
@@ -6969,21 +7000,29 @@ msgstr "The settings below are specific to each available notification method"
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Pricing"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr "Part Creation"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr "Stock Expiry"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr "Part Stocktake"
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Stock Tracking"
@@ -6991,15 +7030,15 @@ msgstr "Stock Tracking"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Account"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Security"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Display Options"
@@ -7035,15 +7074,15 @@ msgstr "Mark as unread"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "No Required Items"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "This build order does not have any required items."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
@@ -7051,6 +7090,18 @@ msgstr "The assembled part may not have a Bill of Materials (BOM) defined, or th
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "BOM Not Validated"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr "The Bill of Materials for this assembly has not been validated."
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7083,25 +7134,25 @@ msgstr "The assembled part may not have a Bill of Materials (BOM) defined, or th
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revision"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Custom Status"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7110,273 +7161,274 @@ msgstr "Custom Status"
msgid "External"
msgstr "External"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Reference"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Parent Build"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Build Quantity"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Can Build"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Completed Outputs"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Issued By"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsible"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Any location"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Any location"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Destination Location"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Created"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Start Date"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Target Date"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Completed"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Build Details"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Required Parts"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Allocated Stock"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Consumed Stock"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Incomplete Outputs"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "External Orders"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Child Build Orders"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Test Results"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Edit Build Order"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Add Build Order"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Cancel Build Order"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Order cancelled"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Cancel this order"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Hold Build Order"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Place this order on hold"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Order placed on hold"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Issue Build Order"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Issue this order"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Order issued"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Complete Build Order"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Mark this order as complete"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Order completed"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Issue Order"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Complete Order"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Build Order Actions"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Edit order"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplicate order"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Hold order"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Cancel order"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7398,7 +7450,7 @@ msgstr "Show external build orders"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7407,7 +7459,7 @@ msgstr "Show external build orders"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Table View"
@@ -7419,7 +7471,7 @@ msgid "Calendar View"
msgstr "Calendar View"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7428,7 +7480,7 @@ msgstr "Calendar View"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Parametric View"
@@ -7465,7 +7517,7 @@ msgstr "Manufacturer"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7529,7 +7581,7 @@ msgstr "External Link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Part Details"
@@ -7628,11 +7680,11 @@ msgid "Add Supplier Part"
msgstr "Add Supplier Part"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "No Stock"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7654,7 +7706,7 @@ msgid "Group Roles"
msgstr "Group Roles"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "User Information"
@@ -7691,7 +7743,7 @@ msgid "Parent Category"
msgstr "Parent Category"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Subcategories"
@@ -7711,117 +7763,70 @@ msgid "Default location"
msgstr "Default location"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Top level part category"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Edit Part Category"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Move items to parent category"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Delete items"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Delete Part Category"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Parts Action"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Action for parts in this category"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Child Categories Action"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Action for child categories in this category"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Category Actions"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Category Details"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Build Order Allocations"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Sales Order Allocations"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr "Validating BOM"
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr "BOM validated"
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Validate BOM"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Do you want to validate the bill of materials for this assembly?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "BOM Validated"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "The Bill of Materials for this part has been validated"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "BOM Not Validated"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "The Bill of Materials for this part has previously been checked, but requires revalidation"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "The Bill of Materials for this part has not yet been validated"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Validated On"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Validated By"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7830,6 +7835,14 @@ msgstr "Validated By"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variant of"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revision of"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7838,190 +7851,192 @@ msgstr "Validated By"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variant of"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revision of"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Default Location"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Category Default Location"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Units"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Keywords"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Available Stock"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "On order"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Required for Orders"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Allocated to Build Orders"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Allocated to Sales Orders"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimum Stock"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Locked"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Template Part"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Assembled Part"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Component Part"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testable Part"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Trackable Part"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Purchaseable Part"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Saleable Part"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Creation Date"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Created By"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Default Expiry"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "days"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Price Range"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Latest Serial Number"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Select Part Revision"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Variants"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Allocations"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Bill of Materials"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Latest Serial Number"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Select Part Revision"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Variants"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Allocations"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Bill of Materials"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Used In"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Part Pricing"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Test Templates"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Related Parts"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Part is Locked"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Part parameters cannot be edited, as the part is locked"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Required"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Deficit"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8030,46 +8045,36 @@ msgstr "Part parameters cannot be edited, as the part is locked"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Required"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Deficit"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Add Part"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Delete Part"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Deleting this part cannot be reversed"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Order"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Order Stock"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Search by serial number"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Part Actions"
@@ -8167,7 +8172,7 @@ msgstr "Stock Quantity"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Stock Value"
@@ -8200,10 +8205,152 @@ msgstr "Stocktake Entries"
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr "Validating BOM"
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr "BOM validated"
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Validate BOM"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Do you want to validate the bill of materials for this assembly?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "BOM Validated"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "The Bill of Materials for this part has been validated"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "The Bill of Materials for this part has previously been checked, but requires revalidation"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "The Bill of Materials for this part has not yet been validated"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr "Compare Bill of Materials"
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Validated On"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Validated By"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Allow Variants"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Inherited"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Optional"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Consumable"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Setup Quantity"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Attrition"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Rounding Multiple"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr "No changes"
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr "Part removed from BOM"
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr "Part added to BOM"
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr "Changes"
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr "Primary Assembly"
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr "Primary assembly for comparison"
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr "Select assembly to compare"
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr "Secondary Assembly"
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr "Display Mode"
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr "Select display mode for BOM comparison"
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr "Show all Parts"
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr "Show different Parts"
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr "Show common Parts"
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr "Select an assembly to view Bill of Materials comparison"
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8245,8 +8392,8 @@ msgstr "Maximum Price"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8331,7 +8478,7 @@ msgstr "Purchase Pricing"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8471,7 +8618,7 @@ msgstr "Issue Date"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8650,7 +8797,7 @@ msgid "Not checked"
msgstr "Not checked"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8738,7 +8885,7 @@ msgid "Parent Location"
msgstr "Parent Location"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sublocations"
@@ -8748,14 +8895,14 @@ msgid "Location Type"
msgstr "Location Type"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Top level stock location"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Location Details"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Default Parts"
@@ -8763,86 +8910,86 @@ msgstr "Default Parts"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Edit Stock Location"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Move items to parent location"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Delete Stock Location"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Items Action"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Action for stock items in this location"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Location Actions"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Action for child locations in this location"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Action for child locations in this location"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Scan Stock Item"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Scanned stock item into location"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Error scanning stock item"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Scan Stock Location"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Scanned stock location into location"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Error scanning stock location"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr "Scan in stock items"
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr "Scan item into this location"
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr "Scan in container"
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr "Scan container into this location"
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Base Part"
@@ -8862,7 +9009,7 @@ msgstr "Base Part"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Previous serial number"
@@ -8870,35 +9017,35 @@ msgstr "Previous serial number"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Find serial number"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Next serial number"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Allocated to Orders"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Installed In"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Parent Item"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Parent stock item"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Consumed By"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Last Stocktake"
@@ -8906,7 +9053,7 @@ msgstr "Last Stocktake"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Stock Details"
@@ -8914,15 +9061,15 @@ msgstr "Stock Details"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Installed Items"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Child Items"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Edit Stock Item"
@@ -8936,20 +9083,24 @@ msgstr "Edit Stock Item"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr "Convert Stock Item"
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Items Created"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Created {n} stock items"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Delete Stock Item"
@@ -8961,44 +9112,44 @@ msgstr "Delete Stock Item"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Serialize Stock Item"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Serialize Stock Item"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Stock item serialized"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Scan Into Location"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Scan into location"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Scan this item into a location"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Stock Operations"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Scan into location"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Scan this item into a location"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Stock Operations"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serialize"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Serialize stock"
@@ -9006,14 +9157,22 @@ msgstr "Serialize stock"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Stock Item Actions"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Stock Item Actions"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr "Convert"
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr "Convert this stock item to a different part"
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9022,17 +9181,17 @@ msgstr "Stock Item Actions"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Stale"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Expired"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Unavailable"
@@ -9111,27 +9270,22 @@ msgstr "No stock available"
msgid "This stock item has been depleted"
msgstr "This stock item has been depleted"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Stock Information"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Allocated Lines"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr "Line Item"
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Select Columns"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9418,7 +9572,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Table Filters"
@@ -9430,12 +9584,12 @@ msgstr "Add Filter"
msgid "Clear Filters"
msgstr "Clear Filters"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "No records found"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Error loading table options"
@@ -9463,7 +9617,7 @@ msgstr "Error loading table options"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Server returned incorrect data type"
@@ -9472,7 +9626,7 @@ msgstr "Server returned incorrect data type"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Error loading table data"
@@ -9489,49 +9643,49 @@ msgstr "Error loading table data"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "View details"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "View {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Delete Selected Items"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
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:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "This action cannot be undone"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Items deleted"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Failed to delete items"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Custom table filters are active"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Delete selected records"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Refresh data"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Active Filters"
@@ -9543,71 +9697,66 @@ msgstr "Active Filters"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "This BOM item is defined for a different parent"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Part Information"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "This BOM item has not been validated"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Part Information"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Substitutes"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Virtual part"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "External stock"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Includes substitute stock"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Includes variant stock"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Includes substitute stock"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Includes variant stock"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9620,178 +9769,171 @@ msgstr "Building"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Building"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Consumable item"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "No available stock"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Show testable items"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Show trackable items"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Active Part"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr "Show active items"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Show assembled items"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Show virtual items"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Show items with available stock"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Show items on order"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validated"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Show validated items"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Inherited"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Show inherited items"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Allow Variants"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Show items which allow variant substitution"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Optional"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Show optional items"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Consumable"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Show consumable items"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Has Pricing"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Show items with pricing"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Import BOM Data"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Add BOM Item"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "BOM item created"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Edit BOM Item"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "BOM item updated"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Delete BOM Item"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "BOM item deleted"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "BOM item validated"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Failed to validate BOM item"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "View BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Validate BOM Line"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Edit Substitutes"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "Add BOM Items"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Add a single BOM item"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Import from File"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "Import BOM items from a file"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr "Edit BOM"
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr "Finish Editing BOM"
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Bill of materials cannot be edited, as the part is locked"
@@ -9961,18 +10103,6 @@ msgstr "Gets Inherited"
msgid "Unit Quantity"
msgstr "Unit Quantity"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Setup Quantity"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Attrition"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Rounding Multiple"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "BOM Information"
@@ -10356,10 +10486,6 @@ msgstr "No attachments found"
msgid "Drag attachment file here to upload"
msgstr "Drag attachment file here to upload"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Item"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10451,59 +10577,59 @@ msgstr "Create a new parameter"
msgid "Import parameters from a file"
msgstr "Import parameters from a file"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Add Parameter Template"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Duplicate Parameter Template"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Delete Parameter Template"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Edit Parameter Template"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Checkbox"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Show checkbox templates"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Has choices"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Show templates with choices"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Has Units"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Show templates with units"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Show enabled templates"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Model Type"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Filter by model type"
@@ -11618,7 +11744,7 @@ msgstr "Filter by line item status"
msgid "Receive selected items"
msgstr "Receive selected items"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Receive Item"
diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po
index a862afc9a3..81d5c36cab 100644
--- a/src/frontend/src/locales/es/messages.po
+++ b/src/frontend/src/locales/es/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Error al procesar el componente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Ocurrió un error mientras se renderizaba este componente. Consulte la consola para más información."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copiado"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copiar"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicar"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Editar"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Eliminar"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Acciones"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Buscar"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Seleccionar columnas"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Aceptar"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "No"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "No"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Pieza"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Piezas"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parámetros"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Plantillas de prueba de piezas"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Piezas del fabricante"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Categoría de Pieza"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Categorías de Pieza"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Artículo de stock"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Artículos de Stock"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Ubicación de existencias"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Ubicaciones de existencias"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Tipos de ubicaciones de existencias"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Histórico de existencias"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Empresas"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Código de proyecto"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Códigos de proyecto"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Pedido de compra"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Pedidos de compra"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Líneas de pedido de compra"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Orden de venta"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Órdenes de venta"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Orden de devolución"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Órdenes de devolución"
@@ -442,12 +467,12 @@ msgstr "Contacto"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contactos"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Propietario"
@@ -458,7 +483,7 @@ msgstr "Propietarios"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Usuario"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Usuarios"
@@ -486,7 +511,7 @@ msgstr "Grupo"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Plantilla de etiqueta"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Plantillas de etiqueta"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Plantilla de Reporte"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Plantillas de Reportes"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Error"
msgid "Errors"
msgstr "Errores"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Órdenes de construcción"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "No implementado"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Esta función aún no está implementada"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Permiso denegado"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "No tienes permisos para realizar esta acción"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Tiempo de espera superado"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "La solicitud ha expirado"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Error al procesar el componente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Introduce datos de código de barras"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Escanear código de barras"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Completado"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Error al escanear código de barras"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Error al vincular código de barras"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Enlace"
@@ -774,7 +824,7 @@ msgstr "Esto eliminará el enlace al código de barras asociado"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Desvincular Código de Barras"
@@ -786,14 +836,6 @@ msgstr "Abrir en interfaz de administración"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copiado"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copiar"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Imprimir Etiquetas"
@@ -930,7 +972,7 @@ msgstr "Siguiente mes"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Error al actualizar orden"
msgid "Overdue"
msgstr "Vencido"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Error al cargar los widgets del tablero."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "No hay widgets seleccionados"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Usa el menú para añadir widgets al panel de control"
@@ -1288,15 +1330,15 @@ msgstr "Correo electrónico: "
msgid "No name defined"
msgstr "No hay nombre definido"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Eliminar imagen"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "¿Eliminar la imagen asociada de este elemento?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "¿Eliminar la imagen asociada de este elemento?"
msgid "Remove"
msgstr "Eliminar"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Clic para seleccionar archivo(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Imagen cargada"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "La imagen ha sido subida correctamente"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Error de subida"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Borrar"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Enviar"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Seleccionar de imágenes existentes"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Seleccionar imagen"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Descargar imagen remota"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Cargar nueva imagen"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Cargar Imagen"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Borrar imagen"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Descargar imagen"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Imagen descargada correctamente"
@@ -1418,23 +1460,23 @@ msgstr "Imagen descargada correctamente"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Error al cargar la imagen"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Imagen cargada con éxito"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notas guardadas correctamente"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Error al guardar las notas"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Error al guardar notas"
@@ -1442,15 +1484,15 @@ msgstr "Error al guardar notas"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Guardar notas"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Cerrar editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Habilitar la edición"
@@ -1587,11 +1629,6 @@ msgstr "Página no encontrada"
msgid "This page does not exist"
msgstr "Esta página no existe"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Permiso denegado"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "No tiene permisos para ver esta página."
@@ -1604,8 +1641,8 @@ msgstr "Error del servidor"
msgid "A server error occurred"
msgstr "Ha ocurrido un error con el servidor"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Error de formulario"
@@ -1613,11 +1650,11 @@ msgstr "Error de formulario"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Existen errores para uno o más campos del formulario"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Error al iniciar sesión"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Verifique su entrada e intente nuevamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Envío de correo exitoso"
@@ -1808,7 +1845,7 @@ msgstr "Servidor"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Guardar selección de host"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Servidor"
@@ -1896,14 +1933,15 @@ msgstr "Versión API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Complementos"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Seleccionar paquete"
msgid "{0} icons"
msgstr "Iconos {0}"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Cargando"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "No hay resultados"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Elemento"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "entrada modelRenderer requerida para tablas"
@@ -2060,7 +2107,7 @@ msgstr "Procesando datos"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Se ha producido un error"
@@ -2148,7 +2195,7 @@ msgstr "Los datos se han importado satisfactoriamente"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Cerrar"
@@ -2182,8 +2229,8 @@ msgstr "Opciones"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Acciones de código de barras"
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Actualizado"
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Configuración del correo electrónico"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notificaciones"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Ajustes"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Ajustes del usuario"
@@ -2671,8 +2718,8 @@ msgstr "Ajustes del usuario"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Ajustes del sistema"
@@ -2684,8 +2731,8 @@ msgstr "Ajustes del sistema"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Administración"
@@ -2722,24 +2769,26 @@ msgstr "Cerrar sesión"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Fabricación"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Compras"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Archivos adjuntos"
msgid "Notes"
msgstr "Notas"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr "Información del complemento"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Fecha"
@@ -2950,7 +3004,7 @@ msgstr "Fecha"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paquete"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Ajustes del complemento"
@@ -3090,8 +3143,8 @@ msgstr "Envío"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inactivo"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtual"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Sin Stock"
@@ -3111,8 +3164,8 @@ msgstr "Sin Stock"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "En pedido"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detalles"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Categoría"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Categoría"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Ubicación"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Número de serie"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Cantidad"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Editar Pieza"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Disponible"
msgid "Required Quantity"
msgstr "Cantidad requerida"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Partes Agregadas"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Acerca del proyecto InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Estado"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Salidas de Trabajo Completadas"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Salidas de Trabajo se han Completado"
@@ -4560,64 +4615,64 @@ msgstr "Salidas de Trabajo se han Completado"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Eliminar Salidas de Construcción"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Salidas de Construcción eliminadas"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Salidas de Construcción eliminadas"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Cancelar Salidas de Construcción"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Salidas de Construcción han sido canceladas"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Asignado"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Ubicación origen"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
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:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Seleccione la ubicación de origen para la asignación de stock"
msgid "Allocate Stock"
msgstr "Asignar Stock"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Artículos de stock seleccionados"
@@ -4658,8 +4713,8 @@ msgstr "Artículos de stock seleccionados"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Consumido"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Suscribirse a las notificaciones de esta categoría"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Elegir ubicación"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destino de artículo seleccionado"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Ubicación por defecto de la categoría de pieza eleccionada"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Seleccionada ubicación de existencias recibidas"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Ubicación por defecto seleccionada"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Establecer ubicación"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Asignar código de lote"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Establecer ubicación"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Asignar código de lote"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Establecer Fecha de Vencimiento"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Ajustar empaquetado"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Cambiar Estado"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Añadir Nota"
@@ -4812,22 +4867,22 @@ msgstr "Añadir Nota"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Guardar en la ubicación predeterminada"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Guardar con cantidad ya recibida"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Guardar con cantidad ya recibida"
msgid "Batch Code"
msgstr "Código de lote"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Introduzca el código de lote para los artículos recibidos"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Números de serie"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Introduzca números de serie para los elementos recibidos"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Fecha de Expiración"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Empaquetado"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Nota"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Número De Referencia"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Número De Referencia"
msgid "Received"
msgstr "Recibido"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Recibir ítem de línea"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Artículos Recibidos"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Artículo recibido en existencias"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Estado de Existencias"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Devolver"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
@@ -5229,7 +5284,7 @@ msgstr "Error interno del servidor"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Desconectado"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Se cerró sesión correctamente"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Restablecimiento fallido"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Ya iniciaste sesión"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Conectado"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Sesión iniciada correctamente"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Contraseña establecida"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "La contraseña fue establecida con éxito. Ahora puede iniciar sesión con su nueva contraseña"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "No implementado"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Esta función aún no está implementada"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "No tienes permisos para realizar esta acción"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Tiempo de espera superado"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "La solicitud ha expirado"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Acciones de inventario"
@@ -5811,73 +5838,73 @@ msgstr "Se ha producido un error inesperado"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Artículo ya escaneado"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Error de API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Error al recuperar datos de instancia"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Error de Escaneo"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Se desconocen los elementos seleccionados"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Varios tipos de objetos seleccionados"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Acciones ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Acciones ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Escaneo de código de barras"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Entrada de Código de barras"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Acción"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "No Hay Artículos Seleccionados"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Escanear y seleccionar artículos para realizar acciones"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Escanear y seleccionar artículos para realizar acciones"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} elementos seleccionados"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr "Puntos"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Divisa"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Importación de datos"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Escaneo de códigos de barras"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Tareas de fondo"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Informes de Errores"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Divisas"
@@ -6701,11 +6728,11 @@ msgstr "Divisas"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Estados personalizados"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Unidades personalizadas"
@@ -6715,12 +6742,12 @@ msgstr "Unidades personalizadas"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parámetros de categoría"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Tipos Ubicación"
@@ -6728,35 +6755,35 @@ msgstr "Tipos Ubicación"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Máquinas"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Informes"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Opciones Avanzadas"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Códigos de barras"
@@ -6965,8 +6996,8 @@ msgstr "Códigos de barras"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Precios"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiquetas"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Seguimiento de existencias"
@@ -6996,15 +7035,15 @@ msgstr "Seguimiento de existencias"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Cuenta"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Seguridad"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Opciones de visualización"
@@ -7040,15 +7079,15 @@ msgstr "Marcar como no leído"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revisión"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "Externo"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referencia"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Cantidad de construcción"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Salidas completadas"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Emitido por"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsable"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Cualquier ubicación"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Ubicación de destino"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Cualquier ubicación"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Creado"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Ubicación de destino"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Creado"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Fecha objetivo"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Completado"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Detalles de construcción"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Existencias asignadas"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Existencias consumidas"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Salidas incompletas"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Resultados de la Prueba"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Pedido completado"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Emitir pedido"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Completar Pedido"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Editar pedido"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplicar pedido"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Retener pedido"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Cancelar pedido"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Fabricante"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Enlace externo"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Añadir pieza de proveedor"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Sin existencias"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Categoría superior"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Subcategorías"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Ubicación predeterminada"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Categoría de piezas de nivel superior"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Editar categoría de pieza"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Mover elementos a la categoría padre"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Eliminar elementos"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Borrar categoría de pieza"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Acciones de piezas"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Acciones de piezas en esta categoría"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Acción en subcategorías"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Acción para subcategorías en esta categoría"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Acciones de categoría"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Detalles de categoría"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante de"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revisión de"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante de"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revisión de"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Ubicación Predeterminada"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Ubicación por defecto de categoría"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Unidades"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Palabras claves"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Existencias disponibles"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "En pedido"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Requerido para pedidos"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Existencias mínimas"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Bloqueado"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Último número de serie"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Último número de serie"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Precio de pieza"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Plantillas de Prueba"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Piezas Relacionadas"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Requerido"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Requerido"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Añadir pieza"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Eliminar pieza"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "La eliminación de esta pieza no se puede revertir"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Orden"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Precio Máximo"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Fecha de emisión"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Ubicación padre"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sub-localizaciones"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Tipo de ubicación"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Ubicación de existencias superior"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Detalles de la ubicación"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Partes por defecto"
@@ -8768,86 +8915,86 @@ msgstr "Partes por defecto"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Mover elementos a la categoría padre"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Acción de elementos"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Acción para los artículos de stock en esta ubicación"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Pieza Base"
@@ -8867,7 +9014,7 @@ msgstr "Pieza Base"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Siguiente número de serie"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Asignado a Pedidos"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Instalado en"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Elemento padre"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Artículo de existencias padre"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Consumido por"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Detalles de existencias"
@@ -8919,15 +9066,15 @@ msgstr "Detalles de existencias"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Elementos instalados"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Elementos secundarios"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Editar elemento de stock"
@@ -8941,20 +9088,24 @@ msgstr "Editar elemento de stock"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Borrar elemento de stock"
@@ -8966,44 +9117,44 @@ msgstr "Borrar elemento de stock"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Serializar artículo de existencias"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Serializar artículo de existencias"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Serializado artículo de existencias"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Operaciones de existencias"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Operaciones de existencias"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serializar"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Serializar stock"
@@ -9011,14 +9162,22 @@ msgstr "Serializar stock"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Acciones de artículos de existencias"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Acciones de artículos de existencias"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Acciones de artículos de existencias"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Obsoleto"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Expirado"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "No disponible"
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Seleccionar columnas"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtro"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtros de tabla"
@@ -9435,12 +9589,12 @@ msgstr "Añadir filtro"
msgid "Clear Filters"
msgstr "Borrar filtros"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Ningún registro encontrado"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "El servidor devolvió un tipo de datos incorrecto"
@@ -9477,7 +9631,7 @@ msgstr "El servidor devolvió un tipo de datos incorrecto"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Borrar los elementos seleccionados"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "¿Confirma que desea eliminar los elementos seleccionados?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Esta acción no se puede deshacer"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Los filtros personalizados de tabla están activos"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Eliminar los registros seleccionados"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Refrescar datos"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Este elemento BOM está definido para un padre diferente"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Información de la pieza"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Información de la pieza"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Existencias externas"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Incluye existencias sustitutas"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Incluye existencias variantes"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Existencias externas"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Incluye existencias sustitutas"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Incluye existencias variantes"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr "No se encontraron adjuntos"
msgid "Drag attachment file here to upload"
msgstr "Arrastra el archivo adjunto aquí para subirlo"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Elemento"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr "Recibir artículos seleccionados"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/es_MX/messages.po b/src/frontend/src/locales/es_MX/messages.po
index 2af3f7c505..581e6118eb 100644
--- a/src/frontend/src/locales/es_MX/messages.po
+++ b/src/frontend/src/locales/es_MX/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: es_MX\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Error al renderizar componente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Ocurrió un error mientras se renderizaba este componente. Consulte la consola para más información."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copiado"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copiar"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicar"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Editar"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Eliminar"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Acciones"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Buscar"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Aprobado"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "No"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "No"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Pieza"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Piezas"
@@ -158,9 +184,9 @@ msgstr "Parámetro"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parámetros"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Plantillas de prueba de piezas"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Piezas del fabricante"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Categoría de Pieza"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Categorías de Pieza"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Artículo de stock"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Artículos de Stock"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Ubicación de almacén"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Ubicaciones de almacén"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Tipos de ubicaciones de existencias"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Histórico de existencias"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Empresas"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Código de proyecto"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Códigos de proyecto"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Pedido de compra"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Órdenes de compra"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Líneas de pedido de compra"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Orden de venta"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Órdenes de venta"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Orden de devolución"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Ordenes de devolución"
@@ -442,12 +467,12 @@ msgstr "Contacto"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contactos"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Propietario"
@@ -458,7 +483,7 @@ msgstr "Propietarios"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Usuario"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Usuarios"
@@ -486,7 +511,7 @@ msgstr "Grupo"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Plantilla de etiqueta"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Plantillas de etiqueta"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Plantilla de informe"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Plantillas de informe"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Error"
msgid "Errors"
msgstr "Errores"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Ordenes de Producción"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "No implementado"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Esta función aún no está implementada"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Permiso denegado"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "No tienes permisos para realizar esta acción"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Código de devolución inválido"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "El servidor devolvió el estado {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Tiempo de espera superado"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "La solicitud ha expirado"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Proceso fallido"
msgid "Process completed successfully"
msgstr "Proceso completó correctamente"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Error al renderizar componente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Introduce datos del código de barras"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Escanear código de barras"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Código de barras no coincide con el modelo esperado"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Completado"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "No se pudo manejar el código de barras"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "No se pudo escanear el código de barras"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "No se pudo vincular el código de barras"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Enlace"
@@ -774,7 +824,7 @@ msgstr "Esto eliminará el enlace al código de barras asociado"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Desvincular Código de Barras"
@@ -786,14 +836,6 @@ msgstr "Abrir en interfaz de administrador"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copiado"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copiar"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Imprimir etiquetas"
@@ -930,7 +972,7 @@ msgstr "Siguiente mes"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Exportar datos"
@@ -947,15 +989,15 @@ msgstr "Error actualizando la orden"
msgid "Overdue"
msgstr "Vencido"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Fallo al cargar los componentes del dashboard"
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "No hay widgets seleccionados"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Usa el menú para añadir widgets al panel de control"
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr "No hay nombre definido"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Quitar imagen"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "¿Eliminar imagen asociada al artículo?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "¿Eliminar imagen asociada al artículo?"
msgid "Remove"
msgstr "Eliminar"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr "Imagen eliminada"
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr "La imagen ha sido eliminada exitosamente"
@@ -1324,69 +1366,69 @@ msgstr "La imagen ha sido eliminada exitosamente"
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Clic para seleccionar archivo(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Imagen subida"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "La imagen se ha subido correctamente"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Error al subir"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Borrar"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Aceptar"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Seleccionar desde imágenes existentes"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Seleccionar imagen"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Descargar imagen remota"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Subir nueva imagen"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Subir Imagen"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Eliminar imagen"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Descargar imagen"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Imagen descargada correctamente"
@@ -1418,23 +1460,23 @@ msgstr "Imagen descargada correctamente"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Error al cargar la imagen"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Imagen cargada con éxito"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notas guardadas correctamente"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Error al guardar las notas"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Error al guardar notas"
@@ -1442,15 +1484,15 @@ msgstr "Error al guardar notas"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Guardar notas"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Cerrar editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Habilitar la edición"
@@ -1587,11 +1629,6 @@ msgstr "Página no encontrada"
msgid "This page does not exist"
msgstr "Esta página no existe"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Permiso denegado"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "No tiene permisos para ver esta página."
@@ -1604,8 +1641,8 @@ msgstr "Error del servidor"
msgid "A server error occurred"
msgstr "Ha ocurrido un error con el servidor"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Error de formulario"
@@ -1613,11 +1650,11 @@ msgstr "Error de formulario"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Existen errores para uno o más campos del formulario"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Error al iniciar sesión"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Verifique su entrada e intente nuevamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Envío de correo exitoso"
@@ -1808,7 +1845,7 @@ msgstr "Servidor"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Servidor"
@@ -1896,14 +1933,15 @@ msgstr "Versión de API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Complementos"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Seleccionar paquete"
msgid "{0} icons"
msgstr "Iconos {0}"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Cargando"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "No hay resultados"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Artículo"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "entrada de modelRenderer requerida para tablas"
@@ -2060,7 +2107,7 @@ msgstr "Procesando datos"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Se ha producido un error"
@@ -2148,7 +2195,7 @@ msgstr "Los datos se han importado satisfactoriamente"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Cerrar"
@@ -2182,8 +2229,8 @@ msgstr "Opciones"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Acciones de código de barras"
@@ -2298,7 +2345,7 @@ msgstr "Actualizando cargos de grupo"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Actualizado"
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Ajustes del correo electrónico"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notificaciones"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Ajustes"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Ajustes del usuario"
@@ -2671,8 +2718,8 @@ msgstr "Ajustes del usuario"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Ajustes del sistema"
@@ -2684,8 +2731,8 @@ msgstr "Ajustes del sistema"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centro de administración"
@@ -2722,24 +2769,26 @@ msgstr "Cerrar sesión"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Existencias"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Fabricación"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Compras"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Eliminar grupo de búsqueda"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Archivos adjuntos"
msgid "Notes"
msgstr "Notas"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr "Información del complemento"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Fecha"
@@ -2950,7 +3004,7 @@ msgstr "Fecha"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paquete"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Ajustes del complemento"
@@ -3090,8 +3143,8 @@ msgstr "Envío"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inactivo"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtual"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Sin existencias"
@@ -3111,8 +3164,8 @@ msgstr "Sin existencias"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "En pedido"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detalles"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Categoría"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Categoría"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Ubicación"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Número de serie"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Cantidad"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Editar Pieza"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "En Stock"
msgid "Required Quantity"
msgstr "Cantidad requerida"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Nueva orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Orden de compra creada"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Nueva Parte de Proveedor"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Añadir a la orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Parte añadida a la orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Nueva parte de proveedor"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Nueva orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Añadir a la orden de compra seleccionada"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "No hay partes seleccionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Ninguna pieza comprable seleccionada"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Partes añadidas"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Todas las piezas seleccionadas añadidas a una orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Debe seleccionar al menos una parte para ordenar"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "La pieza del proveedor es necesaria"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Cantidad requerida"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Selección de pieza inválida"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Por favor, corrija los errores en las partes seleccionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Acerca del proyecto InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Estado"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Salidas de construcción completadas"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Salidas de construcción se han completado"
@@ -4560,64 +4615,64 @@ msgstr "Salidas de construcción se han completado"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Eliminar salidas de construcción"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Salidas de construcción eliminadas"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Salidas de construcción eliminadas"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Cancelar salidas de construcción"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Las salidas de la construcción han sido canceladas"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Asignado"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Ubicación origen"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
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:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Seleccione la ubicación de origen para la asignación de stock"
msgid "Allocate Stock"
msgstr "Stock Asignado"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Artículos de stock seleccionados"
@@ -4658,8 +4713,8 @@ msgstr "Artículos de stock seleccionados"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Consumido"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Suscribirse a las notificaciones de esta categoría"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Elegir ubicación"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destino de artículo seleccionado"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Ubicación por defecto de la categoría de pieza eleccionada"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Seleccionada ubicación de existencias recibidas"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Ubicación por defecto seleccionada"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Establecer ubicación"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Asignar código de lote"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Establecer ubicación"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Asignar código de lote"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Establecer la fecha de caducidad"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Ajustar empaquetado"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Cambiar Estado"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Añadir Nota"
@@ -4812,22 +4867,22 @@ msgstr "Añadir Nota"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Guardar en la ubicación predeterminada"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Guardar con cantidad ya recibida"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Guardar con cantidad ya recibida"
msgid "Batch Code"
msgstr "Código de lote"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Introduzca el código de lote para los artículos recibidos"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Números de serie"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Introduzca números de serie para los elementos recibidos"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Fecha de caducidad"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Introduzca una fecha de caducidad para los artículos recibidos"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Empaquetado"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Nota"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Recibido"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Recibir partidas"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Artículos recibidos"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Artículo recibido en existencias"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Estado del stock"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Devolver"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
@@ -5229,7 +5284,7 @@ msgstr "Error interno del servidor"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Desconectado"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Se cerró sesión correctamente"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Revisa tu bandeja de entrada para un enlace de restablecimiento. Esto solo funciona si tienes una cuenta. Revisa el correo no deseado también."
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Restablecimiento fallido"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Ya iniciaste sesión"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Hay una sesión en conflicto en el servidor para este navegador. Por favor, cierra la sesión primero."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Conectado"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Sesión iniciada correctamente"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Error al configurar MFA"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Contraseña establecida"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "La contraseña fue establecida con éxito. Ahora puede iniciar sesión con su nueva contraseña"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "No se ha podido cambiar la contraseña"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Contraseña Cambiada"
@@ -5351,38 +5406,10 @@ msgstr "Contraseña Cambiada"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "No implementado"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Esta función aún no está implementada"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "No tienes permisos para realizar esta acción"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Código de devolución inválido"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "El servidor devolvió el estado {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Tiempo de espera superado"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "La solicitud ha expirado"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr "Se ha producido un error inesperado"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Error de API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Se desconocen los elementos seleccionados"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Varios tipos de objetos seleccionados"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Escaneo de código de barras"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Acción"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} artículos seleccionados"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr "Puntos"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Moneda"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Importación de datos"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Escaneo de códigos de barras"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Tareas de fondo"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Informes de Errores"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Divisas"
@@ -6701,11 +6728,11 @@ msgstr "Divisas"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Estados personalizados"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Unidades personalizadas"
@@ -6715,12 +6742,12 @@ msgstr "Unidades personalizadas"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parámetros de categoría"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Tipos de Ubicación"
@@ -6728,35 +6755,35 @@ msgstr "Tipos de Ubicación"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Máquinas"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Informes"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Opciones Avanzadas"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Códigos de barras"
@@ -6965,8 +6996,8 @@ msgstr "Códigos de barras"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Precios"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiquetas"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Cuenta"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Seguridad"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Opciones de visualización"
@@ -7040,15 +7079,15 @@ msgstr "Marcar como no leído"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revisión"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Estado Personalizado"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Estado Personalizado"
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referencia"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Construir padre"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Cantidad de construcción"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Salidas completadas"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Emitido por"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsable"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Cualquier ubicación"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Ubicación de destino"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Cualquier ubicación"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Creado"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Ubicación de destino"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Creado"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Fecha de inicio"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Fecha objetivo"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Completado"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Detalles de construcción"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Existencias asignadas"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Existencias consumidas"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Salidas incompletas"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Órdenes de Trabajo herederas"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Resultados de la prueba"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Editar orden de construcción"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Añadir orden de construcción"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Cancelar orden de construcción"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Pedido cancelado"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Cancelar esta orden"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Poner en espera orden de construcción"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Poner este pedido en espera"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Pedido puesto en espera"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Emitir Orden de Construcción"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Emitir este pedido"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Orden emitida"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Completar Orden de Construcción"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Marcar pedido como completado"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Pedido completado"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Emitir pedido"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Completar Pedido"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Editar pedido"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplicar pedido"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Retener pedido"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Cancelar pedido"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Fabricante"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Enlace externo"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Detalles de la Pieza"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Añadir pieza de proveedor"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Sin existencias"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Categoría superior"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Subcategorías"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Ubicación predeterminada"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Categoría de piezas de nivel superior"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Editar categoría de pieza"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Mover artículos a la categoría padre"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Eliminar elementos"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Eliminar categoría de pieza"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Acciones de piezas"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Acciones de piezas en esta categoría"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Acción en subcategorías"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Acción para subcategorías en esta categoría"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Acciones de categoría"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Detalles de categoría"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Validar BOM"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante de"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revisión de"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante de"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revisión de"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Ubicación Predeterminada"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Ubicación de Categoría Predeterminada"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Unidades"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Palabras claves"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Existencias disponibles"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "En pedido"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Requerido para Pedidos"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Asignado para Construir Pedidos"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Existencias Mínimas"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Bloqueado"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Fecha de Creación"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Creado Por"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Rango de Precios"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Último número de serie"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Variantes"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Asignaciones"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Lista de Materiales"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Último número de serie"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Variantes"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Asignaciones"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Lista de Materiales"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Requerido"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Requerido"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Añadir pieza"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Eliminar pieza"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "La eliminación de esta parte no puede ser revertida"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Pedido"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Validar BOM"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Opcional"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Consumible"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Precio Máximo"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Precio de Compra"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Fecha de emisión"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Mover elementos a la categoría padre"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Siguiente número de serie"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Asignado a Pedidos"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Artículo padre"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Artículo de existencias padre"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Serializar artículo de existencias"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Serializar artículo de existencias"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Serializado artículo de existencias"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serializar"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Serializar stock"
@@ -9011,14 +9162,22 @@ msgstr "Serializar stock"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Obsoleto"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Expirado"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "No disponible"
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtro"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtros de tabla"
@@ -9435,12 +9589,12 @@ msgstr "Añadir filtro"
msgid "Clear Filters"
msgstr "Borrar Filtros"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Ningún registro encontrado"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "El servidor devolvió un tipo de datos incorrecto"
@@ -9477,7 +9631,7 @@ msgstr "El servidor devolvió un tipo de datos incorrecto"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Eliminar Elementos Seleccionados"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Esta acción no se puede deshacer"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Los filtros personalizados de tabla están activos"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validado"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Mostrar artículos validados"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Opcional"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Consumible"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Mostrar artículos consumibles"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Tiene Precio"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Artículo"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Tiene opciones"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Mostrar plantillas con opciones"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Tiene Unidades"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Mostrar plantillas con unidades"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr "Recibir elementos seleccionados"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po
index bbb3468cf8..1f7aa68761 100644
--- a/src/frontend/src/locales/et/messages.po
+++ b/src/frontend/src/locales/et/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: et\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Estonian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Komponendi renderdamise tõrge"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Komponendi renderimisel tekkis viga. Lisateabe saamiseks vaadake konsooli."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopeeritud"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopeeri"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Korduma"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Muuda"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Kustuta"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Tühista"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Toimingud"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Otsing"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Vali veerud"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Läbi"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Ei"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Ei"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Osa"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Osad"
@@ -158,9 +184,9 @@ msgstr "Parameeter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parameetrid"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Osa testi mallid"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Osa kategooria"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Osa kategooriad"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lao asukoht"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lao asukohad"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Lao asukoha liigid"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Laoseisu ajalugu"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Ettevõtted"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Projekti kood"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Projekti koodid"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Ostukorraldus"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Ostukorraldused"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Ostukorralduse read"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontaktid"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Omanik"
@@ -458,7 +483,7 @@ msgstr "Omanikud"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Kasutaja"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Kasutajad"
@@ -486,7 +511,7 @@ msgstr "Rühm"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Tõrge"
msgid "Errors"
msgstr "Tõrked"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "See funktsioon pole veel rakendatud"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Juurdepääs keelatud"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Vabandame, teil pole luba sellele toimingule"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Vigane tagastamise kuud"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server tagastas oleku {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Aegumine"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Viimane päring aegus"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Töötlemine ebaõnnestus"
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Komponendi renderdamise tõrge"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Komponendi renderimisel tekkis viga. Lisateabe saamiseks vaadake konsooli."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Edu"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Link"
@@ -774,7 +824,7 @@ msgstr "See eemaldab lingi seotud vöötikoodile"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Linki ribakood"
@@ -786,14 +836,6 @@ msgstr "Ava admini liideses"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopeeritud"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopeeri"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Siltide printimine"
@@ -930,7 +972,7 @@ msgstr "Järgmine kuu"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Ekspordi andmed"
@@ -947,15 +989,15 @@ msgstr "Tõrge tellimuse uuendamisel"
msgid "Overdue"
msgstr "Üle tähtaja"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr "E-post: "
msgid "No name defined"
msgstr "Nime pole määratud"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Eemalda pilt"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?"
msgid "Remove"
msgstr "Eemalda"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klõpsake, et valida fail(id)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Pilt on üles laaditud"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Pildifail on üles laaditud"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Üleslaadmise tõrge"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Puhasta"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Esita"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Vali olemasolevatest piltidest"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Vali pilt"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Laadi üles uus pilt"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Laadi pilt üles"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Kustuta pilt"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Laadi pilt alla"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Pilt on alla laetud"
@@ -1418,23 +1460,23 @@ msgstr "Pilt on alla laetud"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Pildi üleslaadimine ebaõnnestus"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Pildifail üles laaditud"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Märkmed salvestati edukalt"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Märkmete salvestamine ebaõnnestus"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Viga märkmete salvestamisel"
@@ -1442,15 +1484,15 @@ msgstr "Viga märkmete salvestamisel"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Salvesta märkmed"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Sulge redaktor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Luba Kohaldada"
@@ -1587,11 +1629,6 @@ msgstr "Lehte ei leitud"
msgid "This page does not exist"
msgstr "Seda lehte ei eksisteeri"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Juurdepääs keelatud"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Teil ei ole selle lehe vaatamiseks luba."
@@ -1604,8 +1641,8 @@ msgstr "Serveri viga"
msgid "A server error occurred"
msgstr "Tekkis serveri viga"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Vormiviga"
@@ -1613,11 +1650,11 @@ msgstr "Vormiviga"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Ühes või mitmes vormiväljas on vigu"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Sisselogimine ebaõnnestus"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Kontrollige oma sisestust ja proovige uuesti."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "E-kirja kohaletoimetamine õnnestus"
@@ -1808,7 +1845,7 @@ msgstr "Võõrustaja"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Salvesta hosti valik"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API versioon"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Pluginad"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Vali pakk"
msgid "{0} icons"
msgstr "{0} ikoonid"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Laadimine"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Tulemusi pole"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "modelRenderer sissekanne on tabelite jaoks kohustuslik"
@@ -2060,7 +2107,7 @@ msgstr "Andmete töötlemine"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Ilmnes viga"
@@ -2148,7 +2195,7 @@ msgstr "Andmed on edukalt importitud"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Sulge"
@@ -2182,8 +2229,8 @@ msgstr "Valikud"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Vöötkoodi Toimingud"
@@ -2298,7 +2345,7 @@ msgstr "Grupi rollide uuendamine"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Uuendatud"
@@ -2344,9 +2391,9 @@ msgstr "Üksuseid pole"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-kirja seaded"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Teavitused"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Seaded"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Kasutaja seaded"
@@ -2671,8 +2718,8 @@ msgstr "Kasutaja seaded"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Süsteemi seaded"
@@ -2684,8 +2731,8 @@ msgstr "Süsteemi seaded"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Admini keskus"
@@ -2722,24 +2769,26 @@ msgstr "Logi välja"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Laoseis"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Tootmine"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Ostmine"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Manused"
msgid "Notes"
msgstr "Märkmed"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Kuupäev"
@@ -2950,7 +3004,7 @@ msgstr "Kuupäev"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Pakett"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Plugina seaded"
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Mitteaktiivne"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuaalne"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Laoseis puudub"
@@ -3111,8 +3164,8 @@ msgstr "Laoseis puudub"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "Tellimisel"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Üksikasjad"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategooria"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategooria"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Asukoht"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Seerianumber"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Kogus"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Järgmine"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Muuda osa"
@@ -3891,8 +3946,8 @@ msgstr "Müügi nõuded"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Laos"
msgid "Required Quantity"
msgstr "Nõutud kogus"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Staatus"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Ehitustulemused on valmis"
@@ -4560,64 +4615,64 @@ msgstr "Ehitustulemused on valmis"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Ehitustulemused on tühistatud"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Ehitustulemused on tühistatud"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Ehitustulemused on tühistatud"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Eraldatud"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Lähtekoht"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Valige laoseisu eraldamise alguskoht"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Valige laoseisu eraldamise alguskoht"
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Selle plugina jaoks ei ole sisu esitatud"
@@ -4658,8 +4713,8 @@ msgstr "Selle plugina jaoks ei ole sisu esitatud"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Vali asukoht"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Osakategooria vaikimisi asukoht valitud"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Kättesaadud varude asukoha valitud"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtuaalne osa"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Määra asukoht"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Määra asukoht"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Muuda staatust"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Lisa märkus"
@@ -4812,22 +4867,22 @@ msgstr "Lisa märkus"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Pood juba saadud varudega"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Pood juba saadud varudega"
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Seerianumbrid"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Sisesta saadus ühikute seerianumbrid"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Aegumise kuupäev"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Sisesta saabunud ühikute aegumise kuupäevad"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Pakkimine"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Märkus"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Tootekood"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Tootekood"
msgid "Received"
msgstr "Saabunud"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Üksus on laoseisu vastu võetud"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Laoseis"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Kogus"
@@ -5229,7 +5284,7 @@ msgstr "Sisemise serveri viga"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Edukalt välja logitud"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Keel on muudetud"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Teema on muudetud"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Kontrollige oma postkasti lähtestamise lingi jaoks. See toimib ainult siis, kui teil on konto. Vaadake ka rämpsposti."
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Parool määrati edukalt. Nüüd saate sisse logida oma uue parooliga"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Parool on muudetud"
@@ -5351,38 +5406,10 @@ msgstr "Parool on muudetud"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "See funktsioon pole veel rakendatud"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Vabandame, teil pole luba sellele toimingule"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Vigane tagastamise kuud"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server tagastas oleku {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Aegumine"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Viimane päring aegus"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Andmete eksportimine"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr "Tekkis ootamatu viga"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Ühik on juba skännitud"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API viga"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Valitud elemendid pole teada"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Valitud on mitut tüüpi objektid"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Tegevus"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr "Punktid"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuuta"
@@ -6661,11 +6688,11 @@ msgstr "Kiirtoimingud"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Avaleht"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Kasutajad / Ligipääs"
@@ -6673,27 +6700,27 @@ msgstr "Kasutajad / Ligipääs"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Andmete importimine"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Andmete eksportimine"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Ribakoodi skännimised"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Taustaülesanded"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Veateated"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Valuutad"
@@ -6701,11 +6728,11 @@ msgstr "Valuutad"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Kohandatud staatused"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Kohandatud ühikud"
@@ -6715,12 +6742,12 @@ msgstr "Kohandatud ühikud"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Masinad"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Toimingud"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Andmete haldamine"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Aruanded"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Täpsemad valikud"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Autentimine"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Hind"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Sildid"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Konto"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Turvalisus"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Kuvamise valikud"
@@ -7040,15 +7079,15 @@ msgstr "Märgi mitteloetuks"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "Väline"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Viide"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Tühista see tellimus"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Märgi see tellimus lõpetatuks"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Muuda tellimust"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Tee tellimusest koopia"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Tühista tellimus"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Tabelivaade"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Kalendrivaade"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Kalendrivaade"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Parameetriline vaade"
@@ -7470,7 +7522,7 @@ msgstr "Tootja"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Väline link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Pole laos"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Ülemkategooria"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Alamkategooriad"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Vaikimisi asukoht"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Ülemine osakategooria"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Muuda osa kategooriat"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Tegevus osade jaoks selles kategoorias"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Alamkategooriate tegevus"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Tegevus selle kategooria alamkategooriate jaoks"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Tellimuse koostamise eraldised"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Müügitellimuste eraldamine"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Kas soovite selle koostamise jaoks koostamise nimekirja kontrollida?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Kategooria vaikimisi asukoht"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Ühikud"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Märksõnad"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Saadaval laos"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Tellimisel"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Ehitusettevõtetele eraldatud"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Määratud müügitellimustele"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimaalne laoseis"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Lukustatud"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Malli osa"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testitav osa"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Jälgitav osa"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Ostetav osa"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Müüdav osa"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Loomise kuupäev"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Hinnavahemik"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Variandid"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Variandid"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Osale osade parameetreid ei saa muuta, kuna osa on lukus"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Nõutud"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Osale osade parameetreid ei saa muuta, kuna osa on lukus"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Nõutud"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Lisa osa"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Selle osa kustutamist ei saa tagasi võtta"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Otsi seerianumbri järgi"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Osa toimingud"
@@ -8172,7 +8177,7 @@ msgstr "Kogus laos"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Laoseisu väärtus"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Kas soovite selle koostamise jaoks koostamise nimekirja kontrollida?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Variantide lubamine"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Päritud"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Valikuline"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maksimaalne hind"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Väljastamise kuupäev"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Tegevus inventariüksuste jaoks selles asukohas"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Tegevus selle asukoha alamkohtades"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Tegevus selle asukoha alamkohtades"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Aegunud"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Pole saadaval"
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr "See laoseis on ammendatud"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Vali veerud"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Tabeli filtrid"
@@ -9435,12 +9589,12 @@ msgstr "Lisa filter"
msgid "Clear Filters"
msgstr "Tühjenda filtrid"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Kirjeid ei leitud"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Server tagastas ebatäpse andmeühiku"
@@ -9477,7 +9631,7 @@ msgstr "Server tagastas ebatäpse andmeühiku"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Vaata üksikasju"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "Vaata {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Kustutage valitud kirjed"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Kas olete kindel, et soovite kustutada valitud elemendid?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Kustutage valitud kirjed"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "See BOM-i kirje on määratud erinevale vanemale"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Sisaldab asenduslaosid"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Sisaldab asenduslaosid"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktiivne osa"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr "Näita aktiivseid kirjeid"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Näita esemeid saadaval oleval varul"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Kinnitatud"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Päritud"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Variantide lubamine"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Näita esemeid, mis lubavad variatsiooni asendamist"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Valikuline"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Näita esemeid hinnakujundusega"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "BOM-i toote kontroll ebaõnnestus"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Tükkide loendit ei saa redigeerida, kuna osa on lukustatud"
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr "Lohistage manusefail siia üles laadimiseks"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr "Loo uus parameeter"
msgid "Import parameters from a file"
msgstr "Impordi parameetrid failist"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Lisa parameetri mall"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Kustuta parameetrite mall"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Muuda parameetri mall"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Märkekast"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Näita märkeruutude malle"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Valikutega"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Kuva valikuga mallid"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Näita malle ühikutega"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Mudeli liik"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Filtreeri mudeli liik"
@@ -11623,7 +11749,7 @@ msgstr "Filtreeri rea üksuse oleku järgi"
msgid "Receive selected items"
msgstr "Võta vastu valitud üksused"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po
index e355be893c..7ceb75b195 100644
--- a/src/frontend/src/locales/fa/messages.po
+++ b/src/frontend/src/locales/fa/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po
index 2ef20bf408..3f9b6468be 100644
--- a/src/frontend/src/locales/fi/messages.po
+++ b/src/frontend/src/locales/fi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po
index 9e4bee039e..0dff8a4fb8 100644
--- a/src/frontend/src/locales/fr/messages.po
+++ b/src/frontend/src/locales/fr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Erreur lors de l'affichage de l'application"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Une erreur s'est produite lors du rendu de ce composant. Reportez-vous à la console pour plus d'informations."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copié"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copier"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Dupliquer"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Éditer"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Supprimer"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Annuler"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Actions"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Rechercher"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Sélectionner les colonnes"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Réussi"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Non"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Non"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Pièce"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Composants"
@@ -158,9 +184,9 @@ msgstr "Paramètre"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Paramètres"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Modèles de test de pièces"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Pièces du fabricant"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Catégorie de composant"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Catégories de composants"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Article en stock"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Articles en stock"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Emplacement du stock"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Emplacements de stock"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Emplacements des stocks"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Historique du stock"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Sociétés"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Code du projet"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Codes du projet"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Commande d’achat"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Ordres d'achat"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Lignes de commande d'achat"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Ventes"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Ordres de vente"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Retour de commande"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Retours"
@@ -442,12 +467,12 @@ msgstr "Contact"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contacts"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Propriétaire"
@@ -458,7 +483,7 @@ msgstr "Propriétaires"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Utilisateur"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Utilisateurs"
@@ -486,7 +511,7 @@ msgstr "Groupes"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Modèle d'étiquette"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Modèles d'étiquettes"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Modèle de rapport"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Modèles des rapports"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Erreur"
msgid "Errors"
msgstr "Erreurs"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Administrateur"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Ordres de fabrication"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Non implémenté"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Cette fonctionnalité n’a pas encore été mise en œuvre."
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Permission refusée"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Vous n'êtes pas autorisé à effectuer cette action"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Code de retour invalide"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Statut du serveur renvoie {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Temps d'attente dépassé"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "La requête a expiré"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Processus échoué"
msgid "Process completed successfully"
msgstr "Processus terminé avec succès"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Erreur lors de l'affichage de l'application"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Saisissez les données du code-barres"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Scanner le code-barres"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Le Code-barre ne correspond pas au type de modèle attendu"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Succès"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Erreur de traitement du Code-barre"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Échec de la numérisation du code-barres"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Impossible de lier le code-barre"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Lien"
@@ -774,7 +824,7 @@ msgstr "Ceci supprimera le lien vers le code-barres associé"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Délier le code-barre"
@@ -786,14 +836,6 @@ msgstr "Ouvrir dans l'interface d'administration"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copié"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copier"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Impression d'étiquettes"
@@ -930,7 +972,7 @@ msgstr "Prochain mois"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Export des données"
@@ -947,15 +989,15 @@ msgstr "Erreur lors de la mise à jour des commandes"
msgid "Overdue"
msgstr "En retard"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Impossible de charger les widgets du tableau de bord."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Aucun gadget sélectionné"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Utilisez le menu pour ajouter des gadgets au tableau de bord"
@@ -1288,15 +1330,15 @@ msgstr "Email : "
msgid "No name defined"
msgstr "Aucun nom défini"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Supprimer l'image"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Supprimer l'image associée de cet élément ?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Supprimer l'image associée de cet élément ?"
msgid "Remove"
msgstr "Supprimer"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Cliquer pour sélectionner le(s) fichier(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Image téléchargée"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "L'image a été téléchargée avec succès"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Erreur de téléchargement"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Effacer"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Envoyer"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Sélectionner parmi les images existantes"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Sélectionner une Image"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Télécharger l'image distante"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Téléverser une nouvelle image"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Charger une image"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Supprimer l'image"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Télécharger l'image"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Image téléchargée avec succès"
@@ -1418,23 +1460,23 @@ msgstr "Image téléchargée avec succès"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Le téléchargement de l'image a échoué"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Image téléchargée avec succès"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notes enregistrées avec succès"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Échec de l'enregistrement des notes"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Erreur lors de l'enregistrement des notes"
@@ -1442,15 +1484,15 @@ msgstr "Erreur lors de l'enregistrement des notes"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Enregistrer les notes"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Fermer l'éditeur"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Activer le mode édition"
@@ -1587,11 +1629,6 @@ msgstr "Page introuvable"
msgid "This page does not exist"
msgstr "Cette page n'existe pas"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Permission refusée"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Vous n’avez pas la permission de voir cette page."
@@ -1604,8 +1641,8 @@ msgstr "Erreur serveur"
msgid "A server error occurred"
msgstr "Une erreur serveur s'est produite"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Erreur de formulaire"
@@ -1613,11 +1650,11 @@ msgstr "Erreur de formulaire"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
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:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Login invalide"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Vérifiez votre saisie et réessayez."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Envoi du mail réussi"
@@ -1808,7 +1845,7 @@ msgstr "Serveur"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Sauvegarder la sélection de l'hébergement"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Serveur"
@@ -1896,14 +1933,15 @@ msgstr "Version de l'API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Extensions"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Sélectionnez le pack"
msgid "{0} icons"
msgstr "Icônes {0}"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Chargement"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Aucun résultat trouvé"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Élément"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Entrée \"modelRenderer\" requise pour les tables"
@@ -2060,7 +2107,7 @@ msgstr "Traitement des données"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Une erreur s'est produite"
@@ -2148,7 +2195,7 @@ msgstr "Les données on était correctement importés"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Fermer"
@@ -2182,8 +2229,8 @@ msgstr "Options"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Actions de code-barres"
@@ -2298,7 +2345,7 @@ msgstr "Mise à jour des roles du groupe"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Mis à jour"
@@ -2344,9 +2391,9 @@ msgstr "Aucun élément"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Le processus d'arrière-plan \"worker\" ne s'exécute pas"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Configuration email"
@@ -2605,8 +2652,8 @@ msgstr "En savoir plus sur {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notifications"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Paramètres"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Paramètres de l'utilisateur"
@@ -2671,8 +2718,8 @@ msgstr "Paramètres de l'utilisateur"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Les paramètres du système"
@@ -2684,8 +2731,8 @@ msgstr "Les paramètres du système"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centre Admin"
@@ -2722,24 +2769,26 @@ msgstr "Se déconnecter"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Fabrication"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Achat en cours"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Supprimer le groupe de recherche"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Fichiers joints"
msgid "Notes"
msgstr "Notes"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plugin fourni"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Replier les panneaux"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Déplier les panneaux"
@@ -2914,18 +2968,18 @@ msgstr "Informations sur le plugin"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Auteur"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Date"
@@ -2950,7 +3004,7 @@ msgstr "Date"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paquet"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Paramètres du plug-in"
@@ -3090,8 +3143,8 @@ msgstr "Livraison"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inactif"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuel"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Aucun stock"
@@ -3111,8 +3164,8 @@ msgstr "Aucun stock"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "En Commande"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Détails"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Catégorie"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Catégorie"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Emplacement"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Numéro de série"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Quantité"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Suivant"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Modifier la pièce"
@@ -3891,8 +3946,8 @@ msgstr "Conditions de vente"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "En Stock"
msgid "Required Quantity"
msgstr "Quantité requise"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Nouvel ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Ordre de commande créé"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Nouvelle pièce de fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Pièce de fournisseur créée"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Ajouter aux ordres de commandes"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Pièce ajoutée à l'ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Sélectionner une pièce du fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Copier le numéro de pièce du fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Nouvelle pièce fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Sélectionner un ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Nouvel ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Ajouter aux ordres de commande sélectionnés"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Aucune pièce sélectionnée"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Aucune pièce achetable sélectionnée"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Pièce ajoutée"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Toutes les pièces sélectionnées ont été ajouté à l'ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Vous devez sélectionner au moins une pièce à commander"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Le fournisseur est requis"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "La quantité est requise"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Sélection invalide"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Veuillez corriger les erreurs dans la sélection des pièces"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "A propos du projet InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Substituer une pièce"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Éditer les alternatives de la nomenclature"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Ajouter une alternative"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Alternative ajoutée"
@@ -4506,33 +4561,33 @@ msgstr "Alternative ajoutée"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Sortie de la construction"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Quantité à allouer"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Quantité à allouer"
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Sorties de Fabrication terminées"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Les fabrication ont été achevé"
@@ -4560,64 +4615,64 @@ msgstr "Les fabrication ont été achevé"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Éliminer les résultats de construction"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Les sorties de fabrication sélectionnées vont être terminées mais marquées comme rebus"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Les articles en stock vont être consommés"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Les résultats de construction ont été supprimé"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Les résultats de construction ont été supprimé"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Annuler les résultats de construction"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Les sorties de fabrication sélectionnées vont être supprimées"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Les articles en stock alloués vont être remis dans le stock"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Les résultats de construction ont été annulés"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Allouée"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Emplacement d'origine"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
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:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Sélectionnez l'emplacement de la source pour l'allocation du stock"
msgid "Allocate Stock"
msgstr "Stock alloué"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Éléments du stock alloués"
@@ -4658,8 +4713,8 @@ msgstr "Éléments du stock alloués"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Consommer le stock"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Complétement consommé"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Consommé"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "S'abonner aux notifications pour cette catégorie"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Choisir l'emplacement"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destination de l'élément sélectionné"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Emplacement par défaut de la catégorie"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Emplacement de stock reçu"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Emplacement par défaut"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Pièce virtuelle"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Définir l'emplacement"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Attribuer un code de lot"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Définir l'emplacement"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Attribuer un code de lot"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Assigner des numéros de série"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Indiquer une date d'expiration"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Ajuster le conditionnement"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Changer le statut"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Ajouter une note"
@@ -4812,22 +4867,22 @@ msgstr "Ajouter une note"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Stocker à l'emplacement par défaut"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Stocker à la destination de l'article "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Stocker avec le stock déjà reçu"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Stocker avec le stock déjà reçu"
msgid "Batch Code"
msgstr "Barre-code"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Saisir le code de lot pour les articles reçus"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Numéros de Série"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Saisir les numéros de série des articles reçus"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Date d'expiration"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Entrer une date d'expiration pour les articles reçus"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Conditionnement"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Note"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Réceptionnée"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Articles reçus"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Articles reçus"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Article reçu en stock"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Vérifier l'expédition"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Marquer l'expédition comme étant vérifiée indique que vous avez vérifié que tous les articles inclus dans cet envoi sont corrects"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Expédition marquée comme étant vérifiée"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Ne pas valider l'expédition"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Marquer l'expédition comme non validée indique que l'envoi nécessite une vérification supplémentaire"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Envoi marqué comme non validé"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Compléter l'envoi"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Laisser vide pour utiliser l'adresse de commande"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "État du stock"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Retour"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Compter"
@@ -5229,7 +5284,7 @@ msgstr "Erreur de serveur interne"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Déconnexion"
@@ -5257,81 +5312,81 @@ msgstr "Connections réussie via MFA"
msgid "MFA details were automatically provided in the browser"
msgstr "Les informations pour la MFA ont été automatiquement fournis par le navigateur"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Déconnexion réussie !"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Langue changée"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Votre langue active a été remplacée en celle qui est définie dans votre profil"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Thème changé"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Votre thème actif a été remplacé par celui défini dans votre profil"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Échec de la réinitialisation"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Déjà connecté"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Il y a un conflit de session sur ce serveur pour ce navigateur. Veuillez d'abord vous déconnecter."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Connecté"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Vous êtes connecté(e)"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Échec de la mise en place de l'AMF"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Mot de passe défini"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Le mot de passe n'a pas pu être changé"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Les deux mots de passes ne corrspondent pas"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Mot de passe changé"
@@ -5351,38 +5406,10 @@ msgstr "Mot de passe changé"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Non implémenté"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Cette fonctionnalité n’a pas encore été mise en œuvre."
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Vous n'êtes pas autorisé à effectuer cette action"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Code de retour invalide"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Statut du serveur renvoie {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Temps d'attente dépassé"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "La requête a expiré"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Export de données"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Supprimer les articles en stock sélectionnés"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Actions sur le stock"
@@ -5811,73 +5838,73 @@ msgstr "Une erreur inattendue est survenue"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Article déjà scanné"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Erreur API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "La requête sur l'instance de la data a échoué"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Erreur de scan"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Les éléments sélectionnés ne sont pas connus"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Plusieurs types d'objets sélectionnés"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Actions … "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Actions … "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Scan du code bar"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Saisie des codes-barres"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Action"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Pas d'articles sélectionnés"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Scan et sélection des articles sur lesquels faire des actions"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Scan et sélection des articles sur lesquels faire des actions"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} articles sélectionnés"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Articles scannés"
@@ -6593,7 +6620,7 @@ msgstr "Points"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Devise"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Utilisateurs / Accès"
@@ -6673,27 +6700,27 @@ msgstr "Utilisateurs / Accès"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Importation de données"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Exporter les données"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Scans de code-barres"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Tâches en arrière plan"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Rapports d'erreur"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Devise"
@@ -6701,11 +6728,11 @@ msgstr "Devise"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Statut personnalisé"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Unités personnalisées"
@@ -6715,12 +6742,12 @@ msgstr "Unités personnalisées"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Paramètres de catégorie"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Types d'emplacement"
@@ -6728,35 +6755,35 @@ msgstr "Types d'emplacement"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Équipements"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Opérations"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Gestion des données"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Rapports"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Étendre / Intégrer"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Options avancées"
@@ -6949,11 +6976,15 @@ msgstr "Jetons"
msgid "The settings below are specific to each available plugin"
msgstr "Les paramètres ci-dessous sont spécifiques à chaque plugin disponible"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Authentification"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Code-barres"
@@ -6965,8 +6996,8 @@ msgstr "Code-barres"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Les paramètres ci-dessous sont spécifiques à chaque méthode de notification disponible"
@@ -6974,21 +7005,29 @@ msgstr "Les paramètres ci-dessous sont spécifiques à chaque méthode de notif
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Tarifs"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Étiquettes"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Suivi du stock"
@@ -6996,15 +7035,15 @@ msgstr "Suivi du stock"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Compte"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Sécurité"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Options d’affichage"
@@ -7040,15 +7079,15 @@ msgstr "Marquer comme non lu"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Pas d'article requis"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Cet ordre de fabrication n'a aucun article requis."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "La pièce d'assemblage pourrait ne pas avoir de nomenclature (BOM) définie, ou la nomenclature est vide."
@@ -7056,6 +7095,18 @@ msgstr "La pièce d'assemblage pourrait ne pas avoir de nomenclature (BOM) défi
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Nomenclature non validée"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "La pièce d'assemblage pourrait ne pas avoir de nomenclature (BOM) défi
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Révision"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Statut personnalisé"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Statut personnalisé"
msgid "External"
msgstr "Externe"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Référence"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Fabrication parente"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Quantité de fabrication"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Peut être construit"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Sorties complétées"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Émis par"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsable"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Tous les emplacements"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Emplacement cible"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Tous les emplacements"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Créé"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Emplacement cible"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Créé"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Date de début"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Date cible"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Complété"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Détails de fabrication"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Pièces requises"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Stock alloué"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Stock utilisé"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Sorties incomplètes"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Achats externes"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Ordre de fabrication enfant"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Résultats des Tests"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Éditer l'ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Ajouter un ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Annuler l'ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Commande annulée"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Annuler cette commande"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Suspendre l'ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Mettre cet ordre en suspens"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Cet ordre a été mis en suspens"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Émettre l'ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Emettre cette commande"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Commande émise"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Compléter l'ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Marquer cet ordre comme complété"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Ordre complété"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Émettre l'ordre"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Compléter l'ordre"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Actions de l'ordre de fabrication"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Modifier la commande"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Dupliquer la commande"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Retenir la commande"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Annuler la commande"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Voir les ordres de fabrication externes"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Voir les ordres de fabrication externes"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Vue de la table"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Vue du calendrier"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Vue du calendrier"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Fabricant"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Lien externe"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Détails de la pièce"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Ajouter la pièce du fournisseur"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Aucun stock"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Roles du groupe"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Informations de l'utilisateur"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Catégorie parente"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Sous-catégories"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Emplacement par défaut"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Catégorie de pièce de niveau supérieur"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Modifier la catégorie"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Déplacer les articles dans la catégorie parent"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Supprimer l’élément"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Supprimer la catégorie"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Action sur les pièces"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Action pour les pièces de cette catégorie"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Action sur les catégories enfants"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Action pour les sous-catégories de cette catégorie"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Paramètres de Catégorie"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Détails de la catégorie"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Allocation de l'ordre de construction"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Allocations de l'ordre de ventes"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Valider la nomenclature"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Voulez-vous valider la nomenclature pour cet assemblage ?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Nomenclature validée"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "La nomenclature pour cette pièce a été validée"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Nomenclature non validée"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "La nomenclature pour cette pièce a déjà été vérifiée mais nécessite une deuxième vérification"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "La nomenclature pour cette pièce n'a pas encore été validée"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Validée sur"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Validé par"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Validé par"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante de"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Révision de"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Validé par"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante de"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Révision de"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Emplacement par défaut"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Emplacement par défaut de la catégorie"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Unités"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Mots-clés"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Stock disponible"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Sur commande"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Requis pour les commandes"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Alloué à l'ordre de construction"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Alloué aux ordres de ventes"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Stock Minimum"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Verrouillé"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Modèle de la pièce"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Pièce assemblée"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Pièce composante"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Pièce testable"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Pièce suivable"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Pièce achetable"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Pièce vendable"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Date de création"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Créé par"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Expiration par défaut"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "jours"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Échelle des prix"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Dernier numéro de série"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Sélectionner une révision de pièce"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Variants"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Allocations"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Liste des matériaux"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Dernier numéro de série"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Sélectionner une révision de pièce"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Variants"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Allocations"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Liste des matériaux"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Utilisé pour"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Prix des pièces"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Modèles de test"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Pièces associées"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "La pièce est bloquée"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Les paramètres de la partie ne peuvent pas être modifiés, car la partie est verrouillée"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Requis"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Les paramètres de la partie ne peuvent pas être modifiés, car la part
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Requis"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Ajouter Pièce"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Supprimer la pièce"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "La suppression de cette pièce est irréversible"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Commande"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Stock de commandes"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Rechercher par numéro de série"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Actions sur les pièces"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Valeur des stock"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Valider la nomenclature"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Voulez-vous valider la nomenclature pour cet assemblage ?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Nomenclature validée"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "La nomenclature pour cette pièce a été validée"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "La nomenclature pour cette pièce a déjà été vérifiée mais nécessite une deuxième vérification"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "La nomenclature pour cette pièce n'a pas encore été validée"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Validée sur"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Validé par"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Autoriser les variantes"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Hérité"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Optionnel"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Consommable"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Spécifier la quantité"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Attrition"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Arrondi au multiple"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Prix Maximum"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Tarif d'achat"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Date d'émission"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Emplacement parent"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sous-emplacements"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Types d'emplacement"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Emplacement de stock de premier niveau"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Détails de l’emplacement"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Pièces par défaut"
@@ -8768,86 +8915,86 @@ msgstr "Pièces par défaut"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Modifier l'emplacement du stock"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Déplacer les articles à l'emplacement des parents"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Supprimer l'emplacement du stock"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Action sur les éléments"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Action pour les articles en stock à cet emplacement"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Actions de l'emplacement"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Action pour les emplacements enfants à cet emplacement"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Action pour les emplacements enfants à cet emplacement"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Scanner un article en stock"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Article en stock scanné à cet emplacement"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Impossible de scanner cet article en stock"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Scanner l'emplacement de stock"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Emplacement de stock scanné à cet emplacement"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Impossible de scanner l'emplacement de stock"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Pièce de base"
@@ -8867,7 +9014,7 @@ msgstr "Pièce de base"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Numéro de série précédent"
@@ -8875,35 +9022,35 @@ msgstr "Numéro de série précédent"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Trouver le numéro de série"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Numéro de série suivant"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Alloué aux commandes"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Installé dans"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Articles parents"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Article de stock parent"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Consommé par"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Dernier inventaire"
@@ -8911,7 +9058,7 @@ msgstr "Dernier inventaire"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Détails du stock"
@@ -8919,15 +9066,15 @@ msgstr "Détails du stock"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Articles installés"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Éléments enfants"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Modifier l'élément du stock"
@@ -8941,20 +9088,24 @@ msgstr "Modifier l'élément du stock"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Articles créés"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "{n} Articles en stock ont été créés"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Supprimer l'élément du stock"
@@ -8966,44 +9117,44 @@ msgstr "Supprimer l'élément du stock"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Sérialiser les articles du stock"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Sérialiser les articles du stock"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Articles du stock sérialisés"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Scanner à l'emplacement"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Scanner à l'emplacement"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Scanner cet article dans un emplacement"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Opérations sur le stock"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Scanner à l'emplacement"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Scanner cet article dans un emplacement"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Opérations sur le stock"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Sérialiser"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Sérialiser le stock"
@@ -9011,14 +9162,22 @@ msgstr "Sérialiser le stock"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Actions de l'article de stock"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Actions de l'article de stock"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Actions de l'article de stock"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Obsolète"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Expiré"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Indisponible"
@@ -9116,27 +9275,22 @@ msgstr "Aucun stocke disponible"
msgid "This stock item has been depleted"
msgstr "Cet article a été épuisé"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Information de stock"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Lignes allouées"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Sélectionner les colonnes"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtrer"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtres des tables"
@@ -9435,12 +9589,12 @@ msgstr "Ajouter un filtre"
msgid "Clear Filters"
msgstr "Effacer filtres"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Pas d'enregistrement trouvé"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Impossible de charger la table des options"
@@ -9468,7 +9622,7 @@ msgstr "Impossible de charger la table des options"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Le serveur à retourner un type de donnée incorrect"
@@ -9477,7 +9631,7 @@ msgstr "Le serveur à retourner un type de donnée incorrect"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Impossible de charger le tableau de données"
@@ -9494,49 +9648,49 @@ msgstr "Impossible de charger le tableau de données"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Vue des détails"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Supprimer les éléments sélectionnés"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
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:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Cette action ne peut pas être annulée"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Articles supprimés"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Echecs pour supprimer les articles"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Filtre de tableau personnalisés sont activés"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Supprimer les enregistrements sélectionnés"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Actualiser les données"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Filtres actifs"
@@ -9548,71 +9702,66 @@ msgstr "Filtres actifs"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Cet article de nomenclature est défini pour un autre parent"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Information de pièce"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Cet article de nomenclature n'a pas été validé"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Information de pièce"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Alternatives"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Pièce virtuelle"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Stockage externe"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Comprend un stock de remplacement"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Inclut le stock de variantes"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Construire"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Comprend un stock de remplacement"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Inclut le stock de variantes"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Construire"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Construire"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Article consommable"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Pas de stock disponible"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Afficher les articles testables"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Afficher les articles suivables"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Pièce active"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Afficher les articles assemblés"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Afficher les pièces virtuelles"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Afficher les articles avec un stock disponible"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Afficher les articles en commande"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validée"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Afficher les articles valides"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Hérité"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Afficher les articles hérités"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Autoriser les variantes"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Afficher les éléments qui permettent la substitution de variantes"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Optionnel"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Afficher les articles optionnels"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Consommable"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Afficher les articles consommables"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Possède un Tarif"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Afficher les articles avec des tarifs"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Importer les données de nomenclature"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Ajouter un article à la nomenclature"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Article de nomenclature créé"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Modifier l'article de nomenclature"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Article de nomenclature mis à jour"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Supprimer l'article de nomenclature"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Article de nomenclature supprimé"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Article de nomenclature validé"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Échec de la validation de l'article de nomenclature"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Voir la nomenclature"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Valider la ligne de nomenclature"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Modifier les substituts"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "La liste des matériaux ne peut être modifiée, car la pièce est bloquée"
@@ -9966,18 +10108,6 @@ msgstr "Obtenir les hérités"
msgid "Unit Quantity"
msgstr "Quantité unitaire"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Spécifier la quantité"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Attrition"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Arrondi au multiple"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Informations de nomenclature"
@@ -10361,10 +10491,6 @@ msgstr "Aucune pièce jointe n'a été trouvé"
msgid "Drag attachment file here to upload"
msgstr "Faites glisser le fichier joint ici pour le télécharger"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Élément"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Modèle"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Ajouter un modèle de paramètre"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Dupliquer le paramètre de modèle"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Supprimer un modèle de paramètre"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Modifier le modèle de paramètre"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Case à cocher"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Afficher le modèle de cases à cocher"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "A des choix"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Afficher les modèles avec choix"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "A des unités"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Afficher les modèles avec les unités"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Type de modèle"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr "Filtrer par statut d'article"
msgid "Receive selected items"
msgstr "Recevoir les éléments sélectionnés"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Recevoir l'article"
diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po
index f4889b6ac0..624c75e0d5 100644
--- a/src/frontend/src/locales/he/messages.po
+++ b/src/frontend/src/locales/he/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "שגיאה בעיבוד הרכיב"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "אירעה שגיאה בעת עיבוד רכיב זה. עיין במסוף למידע נוסף."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "מועתק"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "העתק"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicate"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "ערוך"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "מחק"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "בטל"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "חפש"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "עבר"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "לא"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "לא"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "פריט"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "פריטים"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "קטגוריית פריט"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "קטגוריית פריטים"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "פריט במלאי"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "פריטים במלאי"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "מיקום מלאי"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "מיקומי מלאי"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "סוגי מיקום מלאי"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "היסטוריית מלאי"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "חברות"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "קוד פרוייקט"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "קוד פרויקט"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "הזמנות רכש"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "הזמנת רכש"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "שורות הזמנת רכש"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "הזמנת מכירה"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "הזמנות מכירה"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "החזרת הזמנה"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "החזרת הזמנות"
@@ -442,12 +467,12 @@ msgstr "איש קשר"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "אנשי קשר"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "בעלים"
@@ -458,7 +483,7 @@ msgstr "בעלים"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "משתמש"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "משתמשים"
@@ -486,7 +511,7 @@ msgstr "קבוצה"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "תבנית תווית"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "תבניות תוויות"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "תבנית דוח"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "תבניות דווח"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "שגיאה"
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "הרשאה נדחתה"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "שגיאה בעיבוד הרכיב"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "הצלחה"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "קישור"
@@ -774,7 +824,7 @@ msgstr "פעולה זו תסיר את הקישור לברקוד המשויך"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "בטל קישור של ברקוד"
@@ -786,14 +836,6 @@ msgstr "פתח בממשק הניהול"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "מועתק"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "העתק"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr "לא הוגדר שם"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "הסר תמונה"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "האם להסיר את התמונה המשויכת מפריט זה?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "האם להסיר את התמונה המשויכת מפריט זה?"
msgid "Remove"
msgstr "הסר"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "לחץ כדי לבחור קובץ/ים"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "נקה"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "שלח"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "בחר מתוך תמונות קיימות"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "בחר תמונה"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "העלה תמונה חדשה"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "העלה תמונה"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "מחק תמונה"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "העלאת התמונה נכשלה"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "ההערות נשמרו בהצלחה"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "שמירת ההערות נכשלה"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "שמור הערות"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr "הדף לא נמצא"
msgid "This page does not exist"
msgstr "הדף הזה לא קיים"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "הרשאה נדחתה"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "אין לך הרשאה לצפות בדף זה."
@@ -1604,8 +1641,8 @@ msgstr "שגיאת שרת"
msgid "A server error occurred"
msgstr "אירעה שגיאת שרת"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "שגיאת טופס"
@@ -1613,11 +1650,11 @@ msgstr "שגיאת טופס"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "קיימות שגיאות עבור שדה טופס אחד או יותר"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "הכניסה נכשלה"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "בדוק את הקלט שלך ונסה שוב."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "הדואר נשלח בהצלחה"
@@ -1808,7 +1845,7 @@ msgstr "מארח"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "שרת"
@@ -1896,14 +1933,15 @@ msgstr "גרסת API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "תוספים"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "בחר חבילה"
msgid "{0} icons"
msgstr "{0} סמלים"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "טוען"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "לא נמצאו תוצאות"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr "מעבד נתונים"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "אירעה שגיאה"
@@ -2148,7 +2195,7 @@ msgstr "הנתונים יובאו בהצלחה"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "סגור"
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "פעולות ברקוד"
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "הגדרות אימייל"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "התראות"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "הגדרות"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "הגדרות מערכת"
@@ -2684,8 +2731,8 @@ msgstr "הגדרות מערכת"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "מרכז ניהול"
@@ -2722,24 +2769,26 @@ msgstr "התנתק"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "מלאי"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "רכישה"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr "משלוח"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "לא פעיל"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "אין מלאי"
@@ -3111,8 +3164,8 @@ msgstr "אין מלאי"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "מספר סידורי"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "כמות"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "לא ניתן לערוך את כתב החומרים, מכיוון שהפריט נעול"
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po
index 6e53feae9e..e8a43c54bc 100644
--- a/src/frontend/src/locales/hi/messages.po
+++ b/src/frontend/src/locales/hi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "लॉगिन असफल"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po
index ef22363675..5b21b48821 100644
--- a/src/frontend/src/locales/hu/messages.po
+++ b/src/frontend/src/locales/hu/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Hiba a komponens renderelése közben"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Hiba történt ennek a komponensnek a renderelése közben. Nézze a konzolt további információkért."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Másolva"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Másolás"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Másolás"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Szerkesztés"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Törlés"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Mégsem"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Műveletek"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Keresés"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Oszlopok kiválasztása"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Sikeres"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nem"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nem"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Alkatrész"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Alkatrészek"
@@ -158,9 +184,9 @@ msgstr "Paraméter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Paraméterek"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Alkatrész Teszt Sablonok"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Gyártói alkatrészek"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Alkatrész kategória"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Alkatrész kategóriák"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Készlet tétel"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Készlet tételek"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Készlet hely"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Készlethelyek"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Készlethely típusok"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Készlettörténet"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Cégek"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Projektszám"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Projektszámok"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Beszerzési rendelés"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Beszerzési rendelések"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Beszerzési rendelés tételei"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Vevői rendelés"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Vevői rendelések"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Visszavétel"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Visszavételek"
@@ -442,12 +467,12 @@ msgstr "Kapcsolat"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kapcsolatok"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Tulajdonos"
@@ -458,7 +483,7 @@ msgstr "Tulajdonosok"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Felhasználó"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Felhasználók"
@@ -486,7 +511,7 @@ msgstr "Csoport"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Címke sablon"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Címke sablonok"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Jelentéssablon"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Jelentéssablonok"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Hiba"
msgid "Errors"
msgstr "Hibák"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Adminisztrátor"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Gyártási utasítások"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Nincs implementálva"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Ez a funkció még nem készült el"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Nem jogosult"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Nincs jogosultságod ehhez a művelethez"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Érvénytelen visszatérési kód"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Szerver válaszkódja {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Időtúllépés"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "A kérés túllépte az időkorlátot"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "A folyamat sikertelen"
msgid "Process completed successfully"
msgstr "Folyamat sikeresen befejezve"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Hiba a komponens renderelése közben"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Add meg a vonalkódot"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Vonalkód beolvasás"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "A vonalkód nem egyezik a várt model típussal"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Siker"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Sikertelen a vonalkód kezelése"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Vonalkód beolvasás sikertelen"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Vonalkód párosítás sikertelen"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Link"
@@ -774,7 +824,7 @@ msgstr "A hozzárendelt vonalkód kapcsolat megszüntetése"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Vonalkód leválasztása"
@@ -786,14 +836,6 @@ msgstr "Megnyitás adminisztrátori felületen"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Másolva"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Másolás"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Címkék nyomtatása"
@@ -930,7 +972,7 @@ msgstr "Következő hónap"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Adatok exportálása"
@@ -947,15 +989,15 @@ msgstr "Rendelés módosítási hiba"
msgid "Overdue"
msgstr "Késésben"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Sikertelen a műszerfal komponensek betöltése."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Nincsen komponens kiválasztva"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Használd a menüt, hogy komponenseket adj a műszerfalhoz"
@@ -1288,15 +1330,15 @@ msgstr "E-mail: "
msgid "No name defined"
msgstr "Nincs név megadva"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Kép eltávolítása"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Tételhez rendelt kép eltávolítása?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Tételhez rendelt kép eltávolítása?"
msgid "Remove"
msgstr "Eltávolítás"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr "Kép eltávolítva"
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr "A kép sikeresen eltávolítva"
@@ -1324,69 +1366,69 @@ msgstr "A kép sikeresen eltávolítva"
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Kattintson a file(ok) kiválasztásához"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Kép feltöltve"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "A kép sikeresen feltöltve"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Feltöltési Hiba"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Törlés"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Küldés"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Válassz a meglévő képek közül"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Válassz képet"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Távoli kép letöltése"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Új kép feltöltése"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Kép feltöltése"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Kép törlése"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Kép letöltése"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "A kép sikeresen letöltve"
@@ -1418,23 +1460,23 @@ msgstr "A kép sikeresen letöltve"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Képfeltöltés sikertelen"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "A kép sikeresen feltöltve"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Jegyzet mentés sikeres"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Megjegyzések mentése nem sikerült"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Hiba a Jegyzet Mentésekor"
@@ -1442,15 +1484,15 @@ msgstr "Hiba a Jegyzet Mentésekor"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Jegyzet Mentése"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Szerkesztő bezárása"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Szerkesztés engedélyezése"
@@ -1587,11 +1629,6 @@ msgstr "Oldal nem található"
msgid "This page does not exist"
msgstr "Ez az oldal nem létezik"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Nem jogosult"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Önnek nincs jogosultsága megnézni ezt az oldalt."
@@ -1604,8 +1641,8 @@ msgstr "Szerver hiba"
msgid "A server error occurred"
msgstr "Szerver hiba történt"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Form hiba"
@@ -1613,11 +1650,11 @@ msgstr "Form hiba"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Egy vagy több mező hibát jelez"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Belépés sikertelen"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Ellenőrizd amit beírtál és próbáld újra."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Levél kézbesítése sikeres"
@@ -1808,7 +1845,7 @@ msgstr "Kiszolgáló"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Gazdagép kijelölés mentése"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Szerver"
@@ -1896,14 +1933,15 @@ msgstr "API verzió"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Pluginok"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Csomag választás"
msgid "{0} icons"
msgstr "{0} db"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Betöltés"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nincs találat"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Tétel"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Táblákhoz modelRenderer példány szükséges"
@@ -2060,7 +2107,7 @@ msgstr "Adatok feldolgozása"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Hiba történt"
@@ -2148,7 +2195,7 @@ msgstr "Az adatok sikeresen importálva"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Bezárás"
@@ -2182,8 +2229,8 @@ msgstr "Opciók"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Vonalkód műveletek"
@@ -2298,7 +2345,7 @@ msgstr "Csoport szerepkörök frissítése"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Frissítve"
@@ -2344,9 +2391,9 @@ msgstr "Nincsenek tételek"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "A háttér munkavégző folyamat nem fut"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Email beállítások"
@@ -2605,8 +2652,8 @@ msgstr "Tudjon meg többet: {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Értesítések"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Beállítások"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Felhasználói beállítások"
@@ -2671,8 +2718,8 @@ msgstr "Felhasználói beállítások"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Rendszerbeállítások"
@@ -2684,8 +2731,8 @@ msgstr "Rendszerbeállítások"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Admin központ"
@@ -2722,24 +2769,26 @@ msgstr "Kijelentkezés"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Készlet"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Gyártás"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Beszerzés"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Keresési csoport eltávolítása"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Mellékletek"
msgid "Notes"
msgstr "Megjegyzések"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plugin nyújtotta"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Panelek becsukása"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Panelek kinyitása"
@@ -2914,18 +2968,18 @@ msgstr "Plugin információ"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Szerző"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Dátum"
@@ -2950,7 +3004,7 @@ msgstr "Dátum"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Csomag"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Plugin beállítások"
@@ -3090,8 +3143,8 @@ msgstr "Szállítmány"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inaktív"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuális"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Nincs készlet"
@@ -3111,8 +3164,8 @@ msgstr "Nincs készlet"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "Rendelve"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Részletek"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategória"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategória"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Hely"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Sorozatszám"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Mennyiség"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Következő"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Alkatrész szerkesztése"
@@ -3891,8 +3946,8 @@ msgstr "Értékesítési igények"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Készleten"
msgid "Required Quantity"
msgstr "Szükséges mennyiség"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Új beszerzési rendelés"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Beszerzési rendelés létrehozva"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Új beszállítói alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Beszállítói alkatrész létrehozva"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Hozzáadás beszerzési rendeléshez"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Alkatrész hozzáadva a beszerzési rendeléshez"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Beszállítói alkatrész kiválasztása"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Beszállítói alkatrész szám másolása"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Új beszállítói alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Beszerzési rendelés kiválasztása"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Új beszerzési rendelés"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Hozzáadás a kiválasztott beszerzési rendeléshez"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Nincs kiválasztva alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Nincs kiválasztva beszerezhető alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Alkatrészek hozzáadva"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Minden kiválasztott alkatrész beszerzési rendeléshez adva"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Legalább egy alkatrész választása szükséges a rendeléshez"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Beszállítói alkatrész szükséges"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Mennyiség megadása kötelező"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Érvénytelen alkatrész kiválasztás"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Kérjük javítsa ki a hibákat a kiválasztott alkatrészeknél"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Az InvenTree projektről"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Helyettesítő alkatrész"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Anyagjegyzék helyettesítők szerkesztése"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Helyettesítő hozzáadása"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Helyettesítő hozzáadva"
@@ -4506,33 +4561,33 @@ msgstr "Helyettesítő hozzáadva"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Gyártás kimenet"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Teljesítendő mennyiség"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Teljesítendő mennyiség"
msgid "Status"
msgstr "Állapot"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Gyártási kimenetek befejezése"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "A gyártási kimenetek befejezésre kerültek"
@@ -4560,64 +4615,64 @@ msgstr "A gyártási kimenetek befejezésre kerültek"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Selejtezendő mennyiség"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Gyártási kimenetek selejtezése"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "A kiválasztott gyártási kimenetek befejezésre kerülnek, de selejtként lesznek megjelölve"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "A lefoglalt készlet tételek felhasználásra kerülnek"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "A gyártási kimenetek selejtezésre kerültek"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "A gyártási kimenetek selejtezésre kerültek"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Gyártási kimenetek visszavonása"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "A kiválasztott gyártási kimenetek eltávolításra kerülnek"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "A lefoglalt készlet tételek visszakerülnek a készletbe"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "A gyártási kimenetek visszavonásra kerültek"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Lefoglalva"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Készlet helye"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
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:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "A készlet hozzárendelés forrás készlethelyének kiválasztása"
msgid "Allocate Stock"
msgstr "Készlet foglalása"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Készlet lefoglalva"
@@ -4658,8 +4713,8 @@ msgstr "Készlet lefoglalva"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Készlet felhasználása"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Teljesen elfogyasztva"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Elhasználva"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Projekt kód kiválasztása ehhez a sortételhez"
@@ -4698,7 +4753,7 @@ msgstr "Projekt kód kiválasztása ehhez a sortételhez"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Feliratkozás az értesítésekre ehhez a kategóriához"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Hely kiválasztása"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Tétel cél kiválasztva"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Alkatrész kategória alapértelmezett készlethelye kiválasztva"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Fogadott készlet készlethelye kiválasztva"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Alapértelmezett készlethely kiválasztva"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtuális alkatrész"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Helyszín beállítása"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Gyártási szám hozzárendelése"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Helyszín beállítása"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Gyártási szám hozzárendelése"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Sorozatszám hozzárendelése"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Lejárati dátum beállítása"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Csomagolás módosítása"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Állapot megváltoztatása"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Megjegyzés hozzáadása"
@@ -4812,22 +4867,22 @@ msgstr "Megjegyzés hozzáadása"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Alapértelmezett helyre tárolás"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Tárolás a sortétel célhelyén"
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Tárolás a már megérkezett készlettel"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Tárolás a már megérkezett készlettel"
msgid "Batch Code"
msgstr "Batch kód"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Gyártási szám megadása a fogadott tételekhez"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Sorozatszámok"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Sorozatszámok megadása a fogadott tételekhez"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Lejárati dátum"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Lejárati dátum megadása a fogadott tételekhez"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Csomagolás"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Megjegyzés"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU (leltári azonosító)"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU (leltári azonosító)"
msgid "Received"
msgstr "Fogadott"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Sortételek fogadása"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Tételek beérkeztek"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Tétel beérkezett a készletbe"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr "Az alkatrész és mennyiség alapján számított ár eltér{0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Szállítmány ellenőrzése"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "A szállítmány ellenőrzöttként történő megjelölése azt jelzi, hogy ellenőrizte, hogy a szállítmányban található összes tétel helyes"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Szállítmány ellenőrzöttként megjelölve"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Szállítmány ellenőrzés visszavonása"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "A szállítmány ellenőrizetlenként történő megjelölése azt jelzi, hogy a szállítmány további ellenőrzést igényel"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Szállítmány ellenőrizetlenként megjelölve"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr "Szállítmány lezárása"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr "Szállítmány sikeresen lezárva"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Szállítmány befejezése"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Hagyja üresen a rendelési cím használatához"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Készlet állapota"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Visszavétel"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Mennyiség"
@@ -5229,7 +5284,7 @@ msgstr "Belső szerverhiba"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Kijelentkezve"
@@ -5257,81 +5312,81 @@ msgstr "MFA alapú bejelentkezés sikeres"
msgid "MFA details were automatically provided in the browser"
msgstr "Az MFA adatok automatikusan megadásra kerültek a böngészőben"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Sikeresen kijelentkeztél"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Nyelv megváltoztatva"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Az aktív nyelv megváltozott a profilban beállítottra"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "A téma megváltoztatva"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Az aktív téma megváltozott a profilban beállítottra"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Visszaállítás sikertelen"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Már bejelentkezett"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Egy ütköző munkamenet található a szerveren ehhez a böngészőhöz. Kérjük előbb jelentkezzen ki abból."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Bejelentkezve"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Sikeres bejelentkezés"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "MFA beállítása sikertelen"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Jelszó beállítva"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "A jelszót nem lehet megváltoztatni"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "A két jelszó nem egyezett meg"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Jelszó megváltozott"
@@ -5351,38 +5406,10 @@ msgstr "Jelszó megváltozott"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Nincs implementálva"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Ez a funkció még nem készült el"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Nincs jogosultságod ehhez a művelethez"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Érvénytelen visszatérési kód"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Szerver válaszkódja {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Időtúllépés"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "A kérés túllépte az időkorlátot"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Adatok exportálása"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Kiválasztott készlet tételek törlése"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Készlet műveletek"
@@ -5811,73 +5838,73 @@ msgstr "Váratlan hiba történt"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Tétel már beolvasva"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API Hiba"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Példány adatok lekérése sikertelen"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Beolvasási hiba"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Kiválasztott elemek ismeretlenek"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Többféle objektum típus lett kiválasztva"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Műveletek ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Műveletek ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Vonalkód beolvasás"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Vonalkód bevitel"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Művelet"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Nincs kiválasztott tétel"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Olvassa be és válassza ki a tételeket a műveletek végrehajtásához"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Olvassa be és válassza ki a tételeket a műveletek végrehajtásához"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} kiválasztott tétel"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Beolvasott cikkek"
@@ -6593,7 +6620,7 @@ msgstr "Pontok"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Pénznem"
@@ -6661,11 +6688,11 @@ msgstr "Gyors műveletek"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Kezdőlap"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Felhasználók / Hozzáférés"
@@ -6673,27 +6700,27 @@ msgstr "Felhasználók / Hozzáférés"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Adatok importálása"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Adatok exportálása"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Vonalkód beolvasások"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Háttér műveletek"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Hibajelentések"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Pénznemek"
@@ -6701,11 +6728,11 @@ msgstr "Pénznemek"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Egyedi állapotok"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Egyedi mértékegységek"
@@ -6715,12 +6742,12 @@ msgstr "Egyedi mértékegységek"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Kategória paraméterek"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Helyszín típusok"
@@ -6728,35 +6755,35 @@ msgstr "Helyszín típusok"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Berendezések"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Műveletek"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Adatkezelés"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Riportolás"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Bővítés / Integráció"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "További beállítások"
@@ -6949,11 +6976,15 @@ msgstr "Tokenek"
msgid "The settings below are specific to each available plugin"
msgstr "Az alábbi beállítások minden egyes elérhető bővítményhez specifikusak"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Hitelesítés"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Vonalkódok"
@@ -6965,8 +6996,8 @@ msgstr "Vonalkódok"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Az alábbi beállítások minden egyes elérhető értesítési módszerhez specifikusak"
@@ -6974,21 +7005,29 @@ msgstr "Az alábbi beállítások minden egyes elérhető értesítési módszer
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Árazás"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Címkék"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Készlettörténet"
@@ -6996,15 +7035,15 @@ msgstr "Készlettörténet"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Fiók"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Biztonság"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Megjelenítési beállítások"
@@ -7040,15 +7079,15 @@ msgstr "Megjelölés olvasatlanként"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Nincsenek szükséges tételek"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Ez a gyártási megrendelés nem rendelkezik szükséges tételekkel."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "Az összeszerelt alkatrészhez nem lehet anyagjegyzék (BOM) definiálva, vagy a BOM üres."
@@ -7056,6 +7095,18 @@ msgstr "Az összeszerelt alkatrészhez nem lehet anyagjegyzék (BOM) definiálva
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Alkatrészjegyzék nincs ellenőrizve"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "Az összeszerelt alkatrészhez nem lehet anyagjegyzék (BOM) definiálva
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Változat"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Egyedi státusz"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Egyedi státusz"
msgid "External"
msgstr "Külső"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Hivatkozás"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Szülő gyártás"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Gyártási mennyiség"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Gyártható"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Befejezett kimenetek"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Kiállította"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Felelős"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Bárhonnan"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Cél hely"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Bárhonnan"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Létrehozva"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Cél hely"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Létrehozva"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Kezdő dátum"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Cél dátum"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Kész"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Gyártás részletei"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Szükséges alkatrészek"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Lefoglalt készlet"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Felhasznált készlet"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Befejezetlen kimenetek"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Külső Rendelések"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Alárendelt gyártások"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Teszt eredmények"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Gyártási utasítás szerkesztése"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Gyártási utasítás létrehozása"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Gyártási utasítás visszavonása"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Rendelés visszavonva"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Rendelés visszavonása"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Gyártási megrendelés felfüggesztése"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Rendelés felfüggesztése"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Felfüggesztett rendelés"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Gyártási Rendelés Kiadása"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Rendelés kiállítása"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Megrendelés leadva"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Gyártási utasítás befejezése"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Rendelés teljesítettnek jelölése"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Megrendelés teljesítve"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Rendelés kiküldése"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Rendelés teljesítése"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Gyártáshoz foglalások"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Rendelés szerkesztése"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Rendelés duplikálása"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Rendelés felfüggesztése"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Rendelés törlése"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Külső gyártási megrendelések megjelenítése"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Külső gyártási megrendelések megjelenítése"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Táblázat nézet"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Naptár nézet"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Naptár nézet"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Paraméter nézet"
@@ -7470,7 +7522,7 @@ msgstr "Gyártó"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Külső link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Alkatrész részletei"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Beszállítói alkatrész hozzáadása"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Nincs készlet"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Csoport szabályok"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Felhasználói adatok"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Szülő Kategória"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Alkategóriák"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Alapértelmezett hely"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Legfelső szintű alkatrész kategória"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Alkatrész kategória szerkesztése"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Elemek áthelyezése a szülő kategóriába"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Tételek törlése"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Alkatrész kategória törlése"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Alkatrész műveletek"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Műveletek az ebben a kategóriában lévő alkatrészekhez"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Alkategória műveletek"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Műveletek az ebben a kategóriában lévő alkategóriákhoz"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Kategória műveletek"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Kategória részletei"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Gyártáshoz foglalások"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Vevői rendeléshez foglalások"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Alkatrészjegyzék ellenőrzése"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Szeretné ellenőrizni az alkatrészjegyzéket ehhez az összeállításhoz?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Alkatrészjegyzék ellenőrizve"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "Az alkatrészjegyzék ehhez az alkatrészhez ellenőrizve lett"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Alkatrészjegyzék nincs ellenőrizve"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "Az alkatrészjegyzék ehhez az alkatrészhez korábban ellenőrizve lett, de újraellenőrzést igényel"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "Az alkatrészjegyzék ehhez az alkatrészhez még nem lett ellenőrizve"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Alkatrészjegyzék ellenőrizve"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Ellenőrízte"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Ellenőrízte"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Változata ennek"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Ennek a verziója"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Ellenőrízte"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Változata ennek"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Ennek a verziója"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Alapértelmezett hely"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Kategória alapértelmezett készlethely"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Mértékegységek"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Kulcsszavak"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Elérhető készlet"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Rendelve"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Rendelésekhez szükséges"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Gyártási rendelésekhez lefoglalva"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Értékesítési rendeléshez lefoglalva"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimum készlet"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Zárolt"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Sablon alkatrész"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Gyártmány alkatrész"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Komponens alkatrész"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Tesztelhető alkatrész"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Nyomkövethető alkatrész"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Beszerezhető alkatrész"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Értékesíthető alkatrész"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Létrehozás dátuma"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Készítette"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Alapértelmezett lejárat"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "nap"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Ártartomány"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Legutolsó sorozatszám"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Alkatrész revízió kiválasztása"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Változatok"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Foglalások"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Alkatrészjegyzék"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Legutolsó sorozatszám"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Alkatrész revízió kiválasztása"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Változatok"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Foglalások"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Alkatrészjegyzék"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Felhasználva ebben"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Alkatrész árak"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Teszt sablonok"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Kapcsolódó alkatrészek"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Zárolt alkatrész"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Az alkatrész paraméterek nem szerkeszthetők, mivel az alkatrész zárolva van"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Kötelező"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Hiány"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Az alkatrész paraméterek nem szerkeszthetők, mivel az alkatrész zár
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Kötelező"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Hiány"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Alkatrész hozzáadása"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Alkatrész törlése"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Az alkatrész törlése nem visszavonható"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Rendelés"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Készlet rendelés"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Sorozatszámra keresés"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Alkatrész műveletek"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Készletérték"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Alkatrészjegyzék ellenőrzése"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Szeretné ellenőrizni az alkatrészjegyzéket ehhez az összeállításhoz?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Alkatrészjegyzék ellenőrizve"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "Az alkatrészjegyzék ehhez az alkatrészhez ellenőrizve lett"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "Az alkatrészjegyzék ehhez az alkatrészhez korábban ellenőrizve lett, de újraellenőrzést igényel"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "Az alkatrészjegyzék ehhez az alkatrészhez még nem lett ellenőrizve"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Alkatrészjegyzék ellenőrizve"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Ellenőrízte"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Változatok Engedélyezése"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Örökölt"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Opcionális"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Fogyóeszköz"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Beállítási mennyiség"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Selejt"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Kerekítési többszörös"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maximum ár"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Beszerzési ár"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Kiállítás dátuma"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Nincs ellenőrizve"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Szülő hely"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Alhelyek"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Helyszín típusa"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Legfelső szintű készlethely"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Készlethely részletek"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Alapértelmezett alkatrészek"
@@ -8768,86 +8915,86 @@ msgstr "Alapértelmezett alkatrészek"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Készlethely szerkesztése"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Tételek áthelyezése a szülő készlethelyre"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Készlethely Törlése"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Tétel műveletek"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Művelet a készlethelyen lévő készlettételekre"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Készlethely Műveletek"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Művelet a készlethelyen lévő gyermek készlethelyekre"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Művelet a készlethelyen lévő gyermek készlethelyekre"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Készlet Tétel Szkennelése"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Készlet tétel beszkendelve a készlethelyre"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Hiba a készlet tétel szkenneléskor"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Készlethely Szkennelése"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Készlethely beszkendelve a készlethelyre"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Hiba a készlethely szkenneléskor"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Kiindulási alkatrész"
@@ -8867,7 +9014,7 @@ msgstr "Kiindulási alkatrész"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Előző sorozatszám"
@@ -8875,35 +9022,35 @@ msgstr "Előző sorozatszám"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Sorozatszám keresése"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Következő sorozatszám"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Rendelésekhez lefoglalva"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Beépítve ebbe"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Szülő tétel"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Szülő készlet tétel"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Felhasználva ebben"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Utolsó leltár"
@@ -8911,7 +9058,7 @@ msgstr "Utolsó leltár"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Készlet részletei"
@@ -8919,15 +9066,15 @@ msgstr "Készlet részletei"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Beépített tételek"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Gyermek tételek"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Készlet tétel szerkesztése"
@@ -8941,20 +9088,24 @@ msgstr "Készlet tétel szerkesztése"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Tételek létrehozva"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "{n} készlet tétel létrehozva"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Készlet Tétel Törlése"
@@ -8966,44 +9117,44 @@ msgstr "Készlet Tétel Törlése"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Készlet Tétel Sorozatszámozása"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Készlet Tétel Sorozatszámozása"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Készlet tétel sorozatszámozva"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Beszkendelés Készlethelyre"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Beszkendelés készlethelyre"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Tétel beszkendelése egy készlethelyre"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Készlet műveletek"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Beszkendelés készlethelyre"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Tétel beszkendelése egy készlethelyre"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Készlet műveletek"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Sorozatszámozás"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Készlet sorozatszámozása"
@@ -9011,14 +9162,22 @@ msgstr "Készlet sorozatszámozása"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Készlet Tétel Műveletek"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Készlet Tétel Műveletek"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Készlet Tétel Műveletek"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Elavult"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Lejárt"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Nem elérhető"
@@ -9116,27 +9275,22 @@ msgstr "Nincs elérhető készlet"
msgid "This stock item has been depleted"
msgstr "Készlet tétel elfogyott"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Készlet adatok"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Lefoglalt sorok"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Oszlopok kiválasztása"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Szűrő"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Táblázat szűrők"
@@ -9435,12 +9589,12 @@ msgstr "Szűrő hozzáadása"
msgid "Clear Filters"
msgstr "Szűrők törlése"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Nincs találat"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Hiba a táblázat beállítások betöltésekor"
@@ -9468,7 +9622,7 @@ msgstr "Hiba a táblázat beállítások betöltésekor"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "A szerver hibás adattípust küldött vissza"
@@ -9477,7 +9631,7 @@ msgstr "A szerver hibás adattípust küldött vissza"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Hiba a táblázat adatok betöltésekor"
@@ -9494,49 +9648,49 @@ msgstr "Hiba a táblázat adatok betöltésekor"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Részletek megtekintése"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "{model} megtekintése"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Kiválasztott elemek törlése"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Biztosan törölni kívánja a kiválasztott tételeket?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Ez a művelet nem vonható vissza"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Elemek törölve"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Nem sikerült törölni a tételeket"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Egyéni táblázat szűrők aktívak"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Kiválasztott rekordok törlése"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Adatok frissítése"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Aktív Szűrők"
@@ -9548,71 +9702,66 @@ msgstr "Aktív Szűrők"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Ez a beépülő alkatrész másik szülő alkatrészhez lett felvéve"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Alkatrész információ"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Ez a BOM tétel nem lett érvényesítve"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Alkatrész információ"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Helyettesítõk"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Virtuális alkatrész"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Külső készlet"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Helyettesítőkkel együtt"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Változatokkal együtt"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Gyártásban"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Helyettesítőkkel együtt"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Változatokkal együtt"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Gyártásban"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Gyártásban"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Fogyóeszköz tétel"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Nincs elérhető készlet"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Tesztelhető elemek mutatása"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Nyomon követhető tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktív alkatrész"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr "Aktív tételek mutatása"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Összeszerelt tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Virtuális tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Elérhető készlettel rendelkező tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Rendelés alatt lévő tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Jóváhagyva"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Érvényesített tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Örökölt"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Örökölt tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Változatok Engedélyezése"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Változat helyettesítést engedélyező tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Opcionális"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Opcionális elemek mutatása"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Fogyóeszköz"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Fogyóeszköz tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Van árazás"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Árazással rendelkező tételek megjelenítése"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "BOM Adatok Importálása"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Alkatrészjegyzék tétel hozzáadása"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "BOM sor létrehozva"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Alkatrészjegyzék tétel szerkesztése"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "BOM sor módosítva"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Beépülő tétel törlése"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "BOM sor törölve"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "BOM tétel érvényesítve"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Nem sikerült érvényesíteni a BOM tételt"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Alkatrészjegyzék megtekintése"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "BOM Sor Érvényesítése"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Helyettesítő alkatrészek szerkesztése"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "BOM Tételek Hozzáadása"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Egyetlen BOM tétel hozzáadása"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Importálás Fájlból"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "BOM tételek importálása fájlból"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Az anyagjegyzék nem szerkeszthető mivel az alkatrész zárolva van"
@@ -9966,18 +10108,6 @@ msgstr "Örökölt"
msgid "Unit Quantity"
msgstr "Mennyiségi egység"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Beállítási mennyiség"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Selejt"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Kerekítési többszörös"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Anyagjegyzék információ"
@@ -10361,10 +10491,6 @@ msgstr "Nem találhatók mellékletek"
msgid "Drag attachment file here to upload"
msgstr "Húzza ide a melléklet fájlt a feltöltéshez"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Tétel"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10456,59 +10582,59 @@ msgstr "Új paraméter létrehozása"
msgid "Import parameters from a file"
msgstr "Paraméterek importálása fájlból"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Paraméter sablon létrehozás"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Paraméter sablon másolása"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Paraméter sablon törlés"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Alkatrész paraméter sablon szerkesztés"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Jelölőnégyzet"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Jelölőnégyzet sablonok megjelenítése"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Vannak lehetőségei"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Választási lehetőségekkel rendelkező sablonok megjelenítése"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Van mértékegysége"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Mértékegységgel rendelkező sablonok megjelenítése"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Engedélyezett sablonok megjelenítése"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Modell típusa"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Szűrés modell típus szerint"
@@ -11623,7 +11749,7 @@ msgstr "Szűrés sortétel státusz szerint"
msgid "Receive selected items"
msgstr "Kiválasztott tételek bevételezése"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Tétel bevételezése"
diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po
index 4d6b7a2c25..89e978bde4 100644
--- a/src/frontend/src/locales/id/messages.po
+++ b/src/frontend/src/locales/id/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Komponen Rendering Galat"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Tersalin"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Salin"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Sunting"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Hapus"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Batal"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Cari"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Tidak"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Tidak"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Perusahaan"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr "Kontak"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontak"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Pemilik"
@@ -458,7 +483,7 @@ msgstr "Pemilik"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Pengguna"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Pengguna"
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Galat"
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Izin Ditolak"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Komponen Rendering Galat"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Berhasil"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Tautan"
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Tersalin"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Salin"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Hapus Gambar"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr "Hapus"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Pilih gambar"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Unggah gambar baru"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Unggah Gambar"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Hapus gambar"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Pengunggahan gambar gagal"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Catatan berhasil tersimpan"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Gagal untuk menyimpan catatan"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Simpan catatan"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr "Halaman tidak ditemukan"
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Izin Ditolak"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Anda tidak memiliki izin untuk melihat halaman ini."
@@ -1604,8 +1641,8 @@ msgstr "Galat Server"
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Gagal Login"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr "Versi API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr "{0} icon"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Memuat"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Tidak ada hasil yang ditemukan"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Tutup"
@@ -2182,8 +2229,8 @@ msgstr "Pilihan"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Pengaturan Surel"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notifikasi"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Pengaturan"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Pengaturan Sistem"
@@ -2684,8 +2731,8 @@ msgstr "Pengaturan Sistem"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Persediaan"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Tidak Aktif"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Tidak ada persediaan"
@@ -3111,8 +3164,8 @@ msgstr "Tidak ada persediaan"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Rincian"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Lokasi"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Nomor Seri"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Jumlah"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Atur Lokasi"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Atur Lokasi"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Tambah Catatan"
@@ -4812,22 +4867,22 @@ msgstr "Tambah Catatan"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Nomor Seri"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Catatan"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr "Telah diterima"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Aksi"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Mata Uang"
@@ -6701,11 +6728,11 @@ msgstr "Mata Uang"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Nomor Seri selanjutnya"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po
index 400da07060..6fca768e83 100644
--- a/src/frontend/src/locales/it/messages.po
+++ b/src/frontend/src/locales/it/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Errore nel renderizzare il componente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Si è verificato un errore durante il rendering di questo componente. Fare riferimento alla console per maggiori informazioni."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copiato"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copia"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplica"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Modifica"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Elimina"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Annulla"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Azioni"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Ricerca"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Seleziona Colonne"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Salta / Ignora"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "No"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "No"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Articolo"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Articoli"
@@ -158,9 +184,9 @@ msgstr "Parametro"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametri"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Modelli Test Articolo"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Articoli Produttore"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Categoria Articolo"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Categorie Articolo"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Articolo in magazzino"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Articoli in magazzino"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Ubicazione articolo"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Ubicazioni articolo"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Tipi ubicazione articolo"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Cronologia Magazzino"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Aziende"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Codice del progetto"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Codici del progetto"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Ordine d'acquisto"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Ordini d'acquisto"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Righe ordine di acquisto"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Ordine di Vendita"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Ordini di Vendita"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Ordine di reso"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Ordini di reso"
@@ -442,12 +467,12 @@ msgstr "Contatto"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contatti"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Proprietario"
@@ -458,7 +483,7 @@ msgstr "Proprietari"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Utente"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Utenti"
@@ -486,7 +511,7 @@ msgstr "Gruppo"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Modello Etichetta"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Modelli Etichetta"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Modello Report"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Modelli Report"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Errore"
msgid "Errors"
msgstr "Errori"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Ordini di Produzione"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Non implementato"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Questa funzione non è ancora stata implementata"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Permesso negato"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Non disponi dell'autorizzazione per eseguire quest'azione"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Codice di Ritorno Non Valido"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Il server ha restituito lo stato {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Timeout"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "La richiesta è scaduta"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Processo fallito"
msgid "Process completed successfully"
msgstr "Operazione completata con successo"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Errore nel renderizzare il componente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Inserire il codice a barre"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Scansiona codice a barre"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Il codice a barre non corrisponde al tipo di modello previsto"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Operazione completata"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Gestione del codice a barre non riuscita"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Scansione del codice a barre non riuscita"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Collegamento al codice a barre non riuscito"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Collegamento"
@@ -774,7 +824,7 @@ msgstr "Questo rimuoverà il collegamento al codice a barre associato"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Scollega Codice a Barre"
@@ -786,14 +836,6 @@ msgstr "Apri nell'interfaccia di amministrazione"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copiato"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copia"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Stampa Etichette"
@@ -930,7 +972,7 @@ msgstr "Mese successivo"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Errore nell'aggiornare l'ordine"
msgid "Overdue"
msgstr "In ritardo"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Impossibile caricare i widget della dashboard."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Nessun Widget Selezionato"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Usa il menu per aggiungere widget alla dashboard"
@@ -1288,15 +1330,15 @@ msgstr "Email: "
msgid "No name defined"
msgstr "Nessun nome definito"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Rimuovi l'immagine"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Rimuovi l'immagine associata all'articolo?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Rimuovi l'immagine associata all'articolo?"
msgid "Remove"
msgstr "Rimuovi"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Fare clic per selezionare i file(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Immagine caricata"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Immagine caricata con successo"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Errore Di Caricamento"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Elimina"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Invia"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Seleziona da immagini esistenti"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Seleziona un'immagine"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Scarica immagine remota"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Carica nuova immagine"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Carica immagine"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Elimina immagine"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Scarica immagine"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Immagine scaricata con successo"
@@ -1418,23 +1460,23 @@ msgstr "Immagine scaricata con successo"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Il caricamento della foto è fallito"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Immagine caricata con successo"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Note salvate con successo"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Salvataggio delle note non riuscito"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Errore Nel Salvare Le Note"
@@ -1442,15 +1484,15 @@ msgstr "Errore Nel Salvare Le Note"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Salva note"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Chiudere l'editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Abilita Modifica"
@@ -1587,11 +1629,6 @@ msgstr "Pagina Non Trovata"
msgid "This page does not exist"
msgstr "Questa pagina non esiste"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Permesso negato"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Non ha i permessi per visualizzare questa pagina."
@@ -1604,8 +1641,8 @@ msgstr "Errore del server"
msgid "A server error occurred"
msgstr "Si è verificato un errore del server"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Errore Modulo"
@@ -1613,11 +1650,11 @@ msgstr "Errore Modulo"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Esistono errori per uno o più campi del modulo"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Accesso non riuscito"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Controllare i dati inseriti e riprovare."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Spedizione email riuscita"
@@ -1808,7 +1845,7 @@ msgstr "Host"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Salva selezione host"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "Versione API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugin"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Seleziona la confezione"
msgid "{0} icons"
msgstr "{0} icone"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Caricamento"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nessun risultato trovato"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Articolo"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Voce ModelRenderer necessaria per le tabelle"
@@ -2060,7 +2107,7 @@ msgstr "Elaborazione dati"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Si è verificato un errore"
@@ -2148,7 +2195,7 @@ msgstr "I dati sono stati importati correttamente"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Chiudi"
@@ -2182,8 +2229,8 @@ msgstr "Opzioni"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Azioni Codice A Barre"
@@ -2298,7 +2345,7 @@ msgstr "Aggiornamento dei ruoli di gruppo"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Aggiornato"
@@ -2344,9 +2391,9 @@ msgstr "Nessun articolo"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Il processo di lavoro in background non è in esecuzione"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Impostazioni e-mail"
@@ -2605,8 +2652,8 @@ msgstr "Scopri di più su {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notifiche"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Impostazioni"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Impostazioni Utente"
@@ -2671,8 +2718,8 @@ msgstr "Impostazioni Utente"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Impostazioni di sistema"
@@ -2684,8 +2731,8 @@ msgstr "Impostazioni di sistema"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centro Amministratore"
@@ -2722,24 +2769,26 @@ msgstr "Disconnettiti"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Fabbricazione"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Acquisto"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Rimuovi gruppo di ricerca"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Allegati"
msgid "Notes"
msgstr "Note"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plugin Fornito"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Comprimi pannelli"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Espandi pannelli"
@@ -2914,18 +2968,18 @@ msgstr "Informazioni Plugin"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autore"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Data"
@@ -2950,7 +3004,7 @@ msgstr "Data"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Pacchetto"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Impostazioni Plugin"
@@ -3090,8 +3143,8 @@ msgstr "Spedizione"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inattivo"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuale"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Nessuno stock"
@@ -3111,8 +3164,8 @@ msgstr "Nessuno stock"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "In ordine"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Dettagli"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Categoria"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Categoria"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Posizione"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Numero Seriale"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Quantità"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Successivo"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Modifica Articolo"
@@ -3891,8 +3946,8 @@ msgstr "Requisiti di vendita"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "In giacenza"
msgid "Required Quantity"
msgstr "Quantità richiesta"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Nuovo ordine d'acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Ordine d'acquisto creato"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Nuovo articolo fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Articolo fornitore creato"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Aggiungi all'ordine d'acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Articolo aggiunto all'ordine di acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Seleziona l'articolo del fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Copia il numero articolo del fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Nuovo articolo fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Seleziona ordine d'acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Nuovo ordine d'acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Aggiungi all'ordine di acquisto selezionato"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Nessun articolo selezionato"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Nessun articolo acquistabile selezionato"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Articolo aggiunto"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Tutte le parti selezionate aggiunte all'ordine di acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Devi selezionare almeno un articolo da ordinare"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "L'articolo fornitore è richiesto"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Selezione articolo invalida"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Si prega di correggere gli errori negli articoli selezionati"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "A proposito del progetto InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Articolo Sostituivo"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Modifica Sostitutivi della Distinta Base"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Aggiungi Sostitutivo"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Sostitutivo aggiunto"
@@ -4506,33 +4561,33 @@ msgstr "Sostitutivo aggiunto"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Output produzione"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Quantità da completare"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Quantità da completare"
msgid "Status"
msgstr "Stato"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Completa gli output di produzione"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Gli ordini di produzione sono stati completati"
@@ -4560,64 +4615,64 @@ msgstr "Gli ordini di produzione sono stati completati"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Quantità da scartare"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Rimuovi gli output di produzione"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Gli ordini di produzione selezionati saranno completati, ma contrassegnati come scartati"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Gli articoli di magazzino assegnati verranno consumati"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Gli output di produzione sono stati rimossi"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Gli output di produzione sono stati rimossi"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Cancella gli output di produzione"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Gli ordini di produzione verranno eliminati"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Gli articoli di magazzino assegnati saranno restituiti alle scorte"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Gli output di produzione sono stati cancellati"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Allocato"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Posizione sorgente"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Selezionare la posizione di origine per l'assegnazione dello stock"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Selezionare la posizione di origine per l'assegnazione dello stock"
msgid "Allocate Stock"
msgstr "Assegna Scorte"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Articoli di stock assegnati"
@@ -4658,8 +4713,8 @@ msgstr "Articoli di stock assegnati"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Consuma Scorte"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Completamente consumato"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Utilizzato"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Seleziona il codice progetto per questa voce di riga"
@@ -4698,7 +4753,7 @@ msgstr "Seleziona il codice progetto per questa voce di riga"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Sottoscrivi notifiche per questa categoria"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Scegliere la posizione"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destinazione oggetto selezionata"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Posizione predefinita della categoria parte selezionata"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Posizione stock ricevuto selezionata"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Posizione predefinita selezionata"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Articolo Virtuale"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Imposta Posizione"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Assegna Codice Lotto"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Imposta Posizione"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Assegna Codice Lotto"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Impostare una Data di Scadenza"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Regola Imballaggio"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Modifica Stato"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Aggiungi Nota"
@@ -4812,22 +4867,22 @@ msgstr "Aggiungi Nota"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Memorizza nella posizione predefinita"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Salva alla destinazione dell'articolo"
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Memorizza con stock già ricevuto"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Memorizza con stock già ricevuto"
msgid "Batch Code"
msgstr "Codice Lotto"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Inserisci il codice lotto per gli articoli ricevuti"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Numeri di serie"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Inserisci i numeri di serie per gli elementi ricevuti"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Data di scadenza"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Inserisci una data di scadenza per gli articoli ricevuti"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Imballaggio"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Nota"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Ricevuto"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Ricevi Elementi Riga"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Articoli ricevuti"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Oggetto ricevuto in magazzino"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Controlla spedizione"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Marcatura della spedizione come controllato indica che hai verificato che tutti gli articoli inclusi in questa spedizione sono corretti"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Spedizione contrassegnata come controllata"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Deseleziona Spedizione"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Contrassegnare la spedizione come non controllata indica che la spedizione richiede ulteriori verifiche"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Spedizione contrassegnata come non controllata"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Completa Spedizione"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Lascia vuoto per utilizzare l'indirizzo dell'ordine"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Stato giacenza"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Reso"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Conta"
@@ -5229,7 +5284,7 @@ msgstr "Errore interno del server"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Disconnesso"
@@ -5257,81 +5312,81 @@ msgstr "Login MFA riuscito"
msgid "MFA details were automatically provided in the browser"
msgstr "I dettagli MFA sono stati forniti automaticamente nel browser"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Disconnesso con Successo"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Lingua cambiata"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "La tua lingua attiva è stata cambiata in quella impostata nel tuo profilo"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Tema cambiato"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Il tuo tema attivo è stato cambiato con quello impostato nel tuo profilo"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Controlla la tua casella di posta per un link di reset. Funziona solo se hai un account. Controlla anche lo spam."
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Ripristino fallito"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Già connesso"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "C'è una sessione in conflitto sul server per questo browser. Si prega di disconnettersi prima dalla precedente sessione."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Accesso effettuato"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Accesso effettuato con successo"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Impossibile impostare l'MFA"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "Impostazione MFA riuscita"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "MFA tramite TOTP è stato impostato con successo; sarà necessario effettuare nuovamente il login."
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Password impostata"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "La password è stata impostata con successo. Ora puoi accedere con la tua nuova password"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "La password non può essere cambiata"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Le due password inserite non corrispondono"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Password cambiata"
@@ -5351,38 +5406,10 @@ msgstr "Password cambiata"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Non implementato"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Questa funzione non è ancora stata implementata"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Non disponi dell'autorizzazione per eseguire quest'azione"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Codice di Ritorno Non Valido"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Il server ha restituito lo stato {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Timeout"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "La richiesta è scaduta"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Esportazione dati"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Elimina gli articoli a magazzino selezionati"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Azioni magazzino"
@@ -5811,73 +5838,73 @@ msgstr "Si è verificato un errore imprevisto"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Articolo già scansionato"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Errore API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Recupero dati istanza non riuscito"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Errore Di Scansione"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Gli elementi selezionati non sono noti"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Più tipi di oggetti selezionati"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Azioni ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Azioni ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Scansione Codice A Barre"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Inserimento codice a barre"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Azione"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Nessun articolo selezionato"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Scansiona e seleziona gli articoli per eseguire azioni"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Scansiona e seleziona gli articoli per eseguire azioni"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} elementi selezionati"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Articoli Scansionati"
@@ -6593,7 +6620,7 @@ msgstr "Punti"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuta"
@@ -6661,11 +6688,11 @@ msgstr "Azioni rapide"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Home"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Utenti / Accesso"
@@ -6673,27 +6700,27 @@ msgstr "Utenti / Accesso"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Importa dati"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Esportazione dati"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Scansioni di codici a barre"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Attività in background"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Report di errori"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Valute"
@@ -6701,11 +6728,11 @@ msgstr "Valute"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Stati Personalizzati"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Unità Personalizzate"
@@ -6715,12 +6742,12 @@ msgstr "Unità Personalizzate"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parametri Categoria"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Tipi di posizione"
@@ -6728,35 +6755,35 @@ msgstr "Tipi di posizione"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Macchine"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Operazioni"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Gestione Dati"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Rapporti"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Estendi / Integra"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Opzioni avanzate"
@@ -6949,11 +6976,15 @@ msgstr "Tokens"
msgid "The settings below are specific to each available plugin"
msgstr "Le impostazioni sottostanti sono specifiche per ogni plugin disponibile"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Autenticazione"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Codici a barre"
@@ -6965,8 +6996,8 @@ msgstr "Codici a barre"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Le impostazioni sottostanti sono specifiche per ogni metodo di notifica disponibile"
@@ -6974,21 +7005,29 @@ msgstr "Le impostazioni sottostanti sono specifiche per ogni metodo di notifica
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Prezzi"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etichette"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Monitoraggio delle scorte"
@@ -6996,15 +7035,15 @@ msgstr "Monitoraggio delle scorte"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Account"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Sicurezza"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Opzioni Visualizzazione"
@@ -7040,15 +7079,15 @@ msgstr "Segna come non letto"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Nessun Articolo Richiesto"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Questo ordine di produzione non ha alcun articolo richiesto."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "L'articolo assemblato non può avere una Distinta base (BOM) definita, o la BOM è vuota."
@@ -7056,6 +7095,18 @@ msgstr "L'articolo assemblato non può avere una Distinta base (BOM) definita, o
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Distinta base non validata"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "L'articolo assemblato non può avere una Distinta base (BOM) definita, o
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revisione"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Stato Cliente"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Stato Cliente"
msgid "External"
msgstr "Esterna"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Riferimento"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Produzione Genitore"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Quantità Produzione"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Puoi produrre"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Output Completati"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Emesso da"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsabile"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Qualsiasi posizione"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Posizione Di Destinazione"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Qualsiasi posizione"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Creato"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Posizione Di Destinazione"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Creato"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Data inizio"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Data obiettivo"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Completato"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Dettagli della Produzione"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Articoli richiesti"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Scorte Assegnate"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Scorte Consumate"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Output Incompleti"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Ordini Esterni"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Ordine di Produzione Subordinato"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Risultati Test"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Modifica Ordine di produzione"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Nuovo Ordine di Produzione"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Annulla Ordine Di Produzione"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Ordine annullato"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Annulla quest'ordine"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Sospendi Ordine di produzione"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Metti questo ordine in sospeso"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Ordine in sospeso"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Emetti ordine di produzione"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Emetti questo ordine di produzione"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Ordine emesso"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Completa l'Ordine di Produzione"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Contrassegna questo ordine come completato"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Ordine completato"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Emetti Ordine"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Completa l'ordine"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Azioni Ordine di Produzione"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Modifica ordine"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplica Ordine"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Sospendi ordine"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Annulla ordine"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Mostra ordini di produzione esterni"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Mostra ordini di produzione esterni"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Vista Tabella"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Visualizzazione calendario"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Visualizzazione calendario"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Vista Parametrica"
@@ -7470,7 +7522,7 @@ msgstr "Produttore"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Collegamento esterno"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Dettagli Articolo"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Aggiungi articolo fornitore"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Nessuna giacenza"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Ruoli gruppo"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Informazioni utente"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Categoria Superiore"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Sottocategorie"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Posizione predefinita"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Categoria articolo di livello superiore"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Modifica Categoria Articoli"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Sposta articoli nella categoria superiore"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Elimina articoli"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Elimina categoria articolo"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Azioni articolo"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Azione articoli in questa categoria"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Azione Categorie Figlio"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Azione per categorie figli in questa categoria"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Azioni Categoria"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Dettagli categoria"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Assegnazione ordine di produzione"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Assegnazione Ordini Di Vendita"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Valida Distinta Base"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Vuoi convalidare la distinta base per questo assemblaggio?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Distinta base validata"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "La distinta base per questo articolo è stata validata"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Distinta base non validata"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "La distinta base per questo articolo è stata precedentemente verificata, ma richiede la riconvalida"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "La distinta base per questo articolo non è stata ancora validata"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Validata il"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Validata da"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Validata da"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante di"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revisione di"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Validata da"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante di"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revisione di"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Posizione Predefinita"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Posizione Predefinita Della Categoria"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Unità"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Parole Chiave"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Giacenza Disponibile"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "In ordine"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Richiesto per gli ordini"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Assegnato agli Ordini di Produzione"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Assegnato agli Ordini di Vendita"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Scorta Minima"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Bloccato"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Modello articolo"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Articolo assemblato"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Articolo Componente"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Articolo Testabile"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Articolo tracciabile"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Articolo Acquistabile"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Articolo Vendibile"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Data di creazione"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Creato Da"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Scadenza Predefinita"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "giorni"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Fascia di Prezzo"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Ultimo Numero Di Serie"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Seleziona Revisione Articolo"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varianti"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Allocazioni"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Distinta base"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Ultimo Numero Di Serie"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Seleziona Revisione Articolo"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varianti"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Allocazioni"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Distinta base"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Utilizzato In"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Prezzo Articolo"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Modelli test"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Articoli correlati"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "L'articolo è bloccato"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "I parametri dell'articolo non possono essere modificati, poiché l'articolo è bloccata"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Richiesto"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Deficit"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "I parametri dell'articolo non possono essere modificati, poiché l'artic
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Richiesto"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Deficit"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Aggiungi articolo"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Elimina Articolo"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "L'eliminazione di questo articolo non è reversibile"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Ordine"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Ordine Stock"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Cerca per numero di serie"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Azioni articolo"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Valore Magazzino"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Valida Distinta Base"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Vuoi convalidare la distinta base per questo assemblaggio?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Distinta base validata"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "La distinta base per questo articolo è stata validata"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "La distinta base per questo articolo è stata precedentemente verificata, ma richiede la riconvalida"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "La distinta base per questo articolo non è stata ancora validata"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Validata il"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Validata da"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Consenti Varianti"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Ereditato"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Opzionale"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Consumabile"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Imposta quantità"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Logoramento"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Arrotondamento Multiplo"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Prezzo Massimo"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Prezzo d'acquisto"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Data di emissione"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Non controllato"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Posizione principale"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sottoallocazioni"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Tipo di posizione"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Posizione delle scorte di primo livello"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Dettagli posizione"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Articoli predefiniti"
@@ -8768,86 +8915,86 @@ msgstr "Articoli predefiniti"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Modifica la posizione delle scorte"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Sposta articoli nella categoria superiore"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Elimina Posizione di Giacenza"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Azione Articoli"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Scansiona gli elementi in magazzino in questa ubicazione"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Azioni posizione"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Azione per le posizioni figlie in questa posizione"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Azione per le posizioni figlie in questa posizione"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Scansione articolo magazzino"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Articolo di magazzino scansionato nella posizione"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Errore nella scansione dell'articolo a magazzino"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Scansiona Ubicazione magazzino"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Posizione magazzino scansionata nella posizione"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Errore nella scansione della posizione a magazzino"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Articolo base"
@@ -8867,7 +9014,7 @@ msgstr "Articolo base"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Numero di serie precedente"
@@ -8875,35 +9022,35 @@ msgstr "Numero di serie precedente"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Cerca Numero Di Serie"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Prossimo Numero Di Serie"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Assegnato agli Ordini"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Installato In"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Elemento principale"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Elemento di magazzino principale"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Consumato Da"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Ultimo Inventario"
@@ -8911,7 +9058,7 @@ msgstr "Ultimo Inventario"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Dettagli stock"
@@ -8919,15 +9066,15 @@ msgstr "Dettagli stock"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Articoli installati"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Articoli secondari"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Modifica elementi magazzino"
@@ -8941,20 +9088,24 @@ msgstr "Modifica elementi magazzino"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Articolo Creato"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Creato {n} articoli a magazzino"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Elimina Elemento di Magazzino"
@@ -8966,44 +9117,44 @@ msgstr "Elimina Elemento di Magazzino"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Serializza Elementi di Magazzino"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Serializza Elementi di Magazzino"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Elemento di magazzino serializzato"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Scansiona nella posizione"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Scansiona nella posizione"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Scansiona questo articolo nella posizione"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Operazioni Scorte"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Scansiona nella posizione"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Scansiona questo articolo nella posizione"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Operazioni Scorte"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serializza"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Serializza magazzino"
@@ -9011,14 +9162,22 @@ msgstr "Serializza magazzino"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Azioni per le voci di magazzino"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Azioni per le voci di magazzino"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Azioni per le voci di magazzino"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Obsoleto"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Scaduto"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Non disponibile"
@@ -9116,27 +9275,22 @@ msgstr "Nessuna Scorta Disponibile"
msgid "This stock item has been depleted"
msgstr "Questo articolo di magazzino è esaurito"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Informazioni sulle scorte"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Elementi Assegnati"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Seleziona Colonne"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtro"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtri tabella"
@@ -9435,12 +9589,12 @@ msgstr "Aggiungi filtro"
msgid "Clear Filters"
msgstr "Rimuovi filtri"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Nessun record trovato"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Errore nel caricare le opzioni della tabella"
@@ -9468,7 +9622,7 @@ msgstr "Errore nel caricare le opzioni della tabella"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Il server ha restituito un tipo di dati errato"
@@ -9477,7 +9631,7 @@ msgstr "Il server ha restituito un tipo di dati errato"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Errore nel caricare i dati della tabella"
@@ -9494,49 +9648,49 @@ msgstr "Errore nel caricare i dati della tabella"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Mostra dettagli"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "Visualizza {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Elimina elementi selezionati"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Sei sicuro di voler eliminare gli elementi selezionati?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Questa azione non può essere annullata"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Elementi eliminati"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Eliminazione degli elementi non riuscita"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "I filtri tabella personalizzati sono attivi"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Cancella record selezionati"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Ricarica dati"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Filtri attivi"
@@ -9548,71 +9702,66 @@ msgstr "Filtri attivi"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Questo elemento BOM è definito per un genitore diverso"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Informazioni Articolo"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Questo articolo della distinta base non è stato validato"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Informazioni Articolo"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Sostituti"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Articolo Virtuale"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Scorte esterne"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Comprende le scorte sostitutive"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Comprende varianti scorte"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "In produzione"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Comprende le scorte sostitutive"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Comprende varianti scorte"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "In produzione"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "In produzione"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Articolo consumabile"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Scorte non disponibili"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Mostra elementi testabili"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Mostra articoli tracciabili"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Articolo Attivo"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Mostra articoli assemblati"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Mostra articoli virtuali"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Mostra articoli con stock disponibile"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Mostra gli articoli in ordine"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validato"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Mostra articoli validati"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Ereditato"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Visualizza articoli ereditati"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Consenti Varianti"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Mostra articoli che consentono la sostituzione della variante"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Opzionale"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Mostra articoli opzionali"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Consumabile"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Mostra articoli consumabili"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Ha Prezzi"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Mostra articoli con prezzi"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Importa Dati BOM"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Aggiungi Articolo BOM"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Articolo BOM creato"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Modifica Articolo BOM"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Articolo BOM aggiornato"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Elimina articolo BOM"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Articolo BOM eliminato"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Articolo BOM validato"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Convalida dell'articolo BOM non riuscita"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Visualizza Distinta Base"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Valida Linea BOM"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Modifica Sostituti"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "Aggiungi Articoli BOM"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Aggiungi un singolo articolo BOM"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Importa da File"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "Importa Articoli BOM da File"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "La distinta base non può essere modificata, in quanto la parte è bloccata"
@@ -9966,18 +10108,6 @@ msgstr "Viene Ereditato"
msgid "Unit Quantity"
msgstr "Quantità Unità"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Imposta quantità"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Logoramento"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Arrotondamento Multiplo"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Informazioni distinta base (BOM)"
@@ -10361,10 +10491,6 @@ msgstr "Nessun allegato trovato"
msgid "Drag attachment file here to upload"
msgstr "Trascina qui il file allegato per caricare"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Articolo"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Modello"
@@ -10456,59 +10582,59 @@ msgstr "Crea un nuovo parametro"
msgid "Import parameters from a file"
msgstr "Importa parametri da file"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Aggiungi Modello Parametro"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Duplica Modello Parametro"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Elimina Modello Parametro"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Modifica Modello Parametro"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Casella di spunta"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Mostra i modelli di casella di spunta"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Ha scelte"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Mostra modelli con scelte"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Ha Unità"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Mostra modelli con unità"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Mostra modelli abilitati"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Tipo Modello"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Filtra per tipo di modello"
@@ -11623,7 +11749,7 @@ msgstr "Filtra per stato elemento riga"
msgid "Receive selected items"
msgstr "Ricevi gli elementi selezionati"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Ricevi Articolo"
diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po
index 40b2376664..3f6c91ffa0 100644
--- a/src/frontend/src/locales/ja/messages.po
+++ b/src/frontend/src/locales/ja/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "エラー:コンポーネント描画"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "このコンポーネントの描画中にエラーが発生しました。詳細はコンソールを参照してください。"
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "コピーしました"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "コピー"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "複製"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "編集"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "削除"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "キャンセル"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "アクション"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "検索"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "列の選択"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "パス"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "いいえ"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "いいえ"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "パーツ"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "パーツ"
@@ -158,9 +184,9 @@ msgstr "パラメータ"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "パラメータ"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "部品試験テンプレート"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "メーカー・パーツ"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "パーツカテゴリ"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "パーツカテゴリ"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "在庫商品"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "在庫商品"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "在庫場所"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "在庫場所"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "ストックロケーションの種類"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "株式履歴"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "会社"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "プロジェクトコード"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "プロジェクトコード"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "注文"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "購入注文"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "発注ライン"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "セールスオーダー"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "セールスオーダー"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "リターンオーダー"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "返品注文"
@@ -442,12 +467,12 @@ msgstr "お問い合わせ"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "連絡先"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "所有者"
@@ -458,7 +483,7 @@ msgstr "所有者"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "ユーザー"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "ユーザー"
@@ -486,7 +511,7 @@ msgstr "グループ"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "ラベルテンプレート"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "ラベルテンプレート"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "レポートテンプレート"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "レポートテンプレート"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "エラー"
msgid "Errors"
msgstr "エラー"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "管理者"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "組立注文"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "未実施"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "この機能はまだ実装されていません"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "権限がありません"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "この操作を実行する権限がありません"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "無効なリターンコード"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "サーバーが返したステータス [0]"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "タイムアウト"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "リクエストがタイムアウトしました"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "プロセス失敗"
msgid "Process completed successfully"
msgstr "プロセスは正常に完了しました。"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "エラー:コンポーネント描画"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr "バーコードデータの入力"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "バーコードをスキャン"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "バーコードが想定されるモデルタイプと一致しません"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "成功"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "バーコードの処理に失敗しました"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "バーコードのスキャンに失敗しました"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "バーコードのリンクに失敗"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "リンク"
@@ -774,7 +824,7 @@ msgstr "これにより、関連するバーコードへのリンクが削除さ
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "リンク解除バーコード"
@@ -786,14 +836,6 @@ msgstr "管理画面で開く"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "コピーしました"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "コピー"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "ラベル印刷中"
@@ -930,7 +972,7 @@ msgstr "来月"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "オーダー更新エラー"
msgid "Overdue"
msgstr "締め切り超過"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "ダッシュボードウィジェットの読み込みに失敗しました。"
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "ウィジェット未選択"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "メニューを使用して、ダッシュボードにウィジェットを追加します"
@@ -1288,15 +1330,15 @@ msgstr "メールアドレス:"
msgid "No name defined"
msgstr "名称未定"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "画像を削除"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "このアイテムから関連画像を削除しますか?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "このアイテムから関連画像を削除しますか?"
msgid "Remove"
msgstr "削除"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "クリックしてファイルを選択"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "画像アップロード完了"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "画像は正常にアップロードされました"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "アップロードエラー"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "クリア"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "送信"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "既存の画像から選択"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "画像を選択"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "リモート画像ダウンロード"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "新しい画像をアップロード"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "画像をアップロード"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "画像を削除"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "イメージのダウンロード"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "画像のダウンロードに成功しました"
@@ -1418,23 +1460,23 @@ msgstr "画像のダウンロードに成功しました"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "画像のアップロードに失敗しました"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "画像のアップロードに成功しました"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "メモが正常に保存されました"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "メモの保存に失敗しました"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "メモの保存エラー"
@@ -1442,15 +1484,15 @@ msgstr "メモの保存エラー"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "メモを保存"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "エディターを閉じる"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "編集を有効にする"
@@ -1587,11 +1629,6 @@ msgstr "お探しのページが見つかりません。"
msgid "This page does not exist"
msgstr "このページは存在しません"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "権限がありません"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "このページを表示する権限がありません。"
@@ -1604,8 +1641,8 @@ msgstr "サーバーエラー"
msgid "A server error occurred"
msgstr "サーバーエラーが発生しました"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "フォームエラー"
@@ -1613,11 +1650,11 @@ msgstr "フォームエラー"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "1つ以上のフォームフィールドにエラーがあります"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "ログインに失敗しました"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "入力内容を確認し、もう一度やり直してください。"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "メール送信成功"
@@ -1808,7 +1845,7 @@ msgstr "ホスト"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "ホスト選択の保存"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "サーバー"
@@ -1896,14 +1933,15 @@ msgstr "API バージョン"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "プラグイン"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "パック選択"
msgid "{0} icons"
msgstr "{0} アイコン"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "読み込み中"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "一致するものが見つかりませんでした"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "アイテム"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "テーブルに必要な modelRenderer エントリ"
@@ -2060,7 +2107,7 @@ msgstr "加工データ"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "エラーが発生しました"
@@ -2148,7 +2195,7 @@ msgstr "データは正常にインポートされました"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "閉じる"
@@ -2182,8 +2229,8 @@ msgstr "オプション"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "バーコードアクション"
@@ -2298,7 +2345,7 @@ msgstr "グループロールの更新中"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "更新しました"
@@ -2344,9 +2391,9 @@ msgstr "項目なし"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "バックグラウンドワーカープロセスは実行されていま
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "メール設定"
@@ -2605,8 +2652,8 @@ msgstr "{code} についてもっと知る"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "通知"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "設定"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "ユーザー設定"
@@ -2671,8 +2718,8 @@ msgstr "ユーザー設定"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "システム設定"
@@ -2684,8 +2731,8 @@ msgstr "システム設定"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "管理センター"
@@ -2722,24 +2769,26 @@ msgstr "ログアウト"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "在庫"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "製造"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "購買"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "検索グループの削除"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "添付ファイル"
msgid "Notes"
msgstr "メモ"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "プラグイン提供"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "パネルを折りたたむ"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "パネルを展開する"
@@ -2914,18 +2968,18 @@ msgstr "プラグイン情報"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "投稿者"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "日付"
@@ -2950,7 +3004,7 @@ msgstr "日付"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "パッケージ"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "プラグイン設定"
@@ -3090,8 +3143,8 @@ msgstr "発送"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "非アクティブ"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "仮想部品"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "在庫なし"
@@ -3111,8 +3164,8 @@ msgstr "在庫なし"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "注文中"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "詳細"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "カテゴリ"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "カテゴリ"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "場所"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "シリアル番号"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "数量"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "次へ"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "パーツを編集"
@@ -3891,8 +3946,8 @@ msgstr "販売要件"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "在庫あり"
msgid "Required Quantity"
msgstr "必要数量"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "新規発注"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "発注書作成完了"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "サプライヤー部品作成"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "注文書に追加する"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "注文書に追加された部品"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "サプライヤー部品の選択"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "サプライヤー部品番号をコピー"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "新サプライヤー部品"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "注文書の選択"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "新規発注"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "選択した注文書に追加する"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "部品選択なし"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "購入可能な部品が選択されていない"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "部品が追加された"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "選択されたすべての部品が発注書に追加される"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "少なくとも1つの部品を選択して注文する必要があります。"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "サプライヤーの部品が必要"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "数量が必要です"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "無効な部品選択"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "選択した部品の誤りを訂正してください。"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "InvenTreeプロジェクトについて"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "代替部品"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "BOM代替品編集"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "代替品を追加"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "代替品を追加した"
@@ -4506,33 +4561,33 @@ msgstr "代替品を追加した"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "ビルド出力"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "完了数量"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "完了数量"
msgid "Status"
msgstr "ステータス"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "完全なビルド出力"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "ビルドアウトプット完了"
@@ -4560,64 +4615,64 @@ msgstr "ビルドアウトプット完了"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "廃棄数量"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "スクラップビルドの出力"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "選択されたビルド出力は完了しますが、廃棄済みとしてマークされます。"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "割り当てられた在庫品は消費されます"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "ビルド出力は廃止"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "ビルド出力は廃止"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "ビルド出力のキャンセル"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "選択されたビルド出力は削除されます"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "割り当てられた在庫品は、在庫に戻されます。"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "ビルドアウトプットはキャンセルされました"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "割り当てられた"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "ソース・ロケーション"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "在庫配分のソースの場所を選択します。"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "在庫配分のソースの場所を選択します。"
msgid "Allocate Stock"
msgstr "株式の割当"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "割り当てられた在庫品目"
@@ -4658,8 +4713,8 @@ msgstr "割り当てられた在庫品目"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "在庫を消費する"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "完全に消費されました"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "消費済み"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "この明細行のプロジェクトコードを選択してください"
@@ -4698,7 +4753,7 @@ msgstr "この明細行のプロジェクトコードを選択してください
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "このカテゴリの通知を受け取る"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "地域を選択"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "選択された項目"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "選択されたパートカテゴリーのデフォルトの場所"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "選択された受入在庫場所"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "デフォルトの場所を選択"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "バーチャルパート"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "セット場所"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "バッチコードの割り当て"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "セット場所"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "バッチコードの割り当て"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "有効期限の設定"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "パッケージの調整"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "ステータスを変更"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "コメントを挿入"
@@ -4812,22 +4867,22 @@ msgstr "コメントを挿入"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "デフォルトの場所に保存"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "行先での保存"
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "入荷済みの在庫がある店舗"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "入荷済みの在庫がある店舗"
msgid "Batch Code"
msgstr "バッチコード"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "受領品のバッチコードを入力"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "シリアル番号"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "受け取った商品のシリアル番号を入力"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "有効期限"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "受け取った商品の有効期限を入力してください。"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "パッケージング"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "備考"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "受信"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "ラインアイテムの受信"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "受領品目"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "入荷した商品"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "出荷状況を確認する"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "「確認済み」とマークすることで、全送付品の照合が完了したことを示します"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "出荷はチェック済みとしてマークされました"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "出荷のチェックを外す"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "チェックを外すと、出荷時に再確認が必要になります"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "出荷はチェックが外された"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "完全出荷"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "オーダーの住所を使用する場合は空欄のままにしてください"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "在庫状況"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "戻る"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "カウント"
@@ -5229,7 +5284,7 @@ msgstr "内部サーバーエラー"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "ログアウト"
@@ -5257,81 +5312,81 @@ msgstr "多要素認証ログインに成功しました"
msgid "MFA details were automatically provided in the browser"
msgstr "多要素認証の詳細情報はブラウザに自動的に記録されました"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "ログアウトに成功しました"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "言語変更"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "アクティブ言語がプロフィールで設定した言語に変更されました。"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "テーマ変更"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "アクティブなテーマがプロフィールで設定したものに変更されました。"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "リセット失敗"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "ログイン済み"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "このブラウザのセッションがサーバー上で競合しています。まずそちらからログアウトしてください。"
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "ログイン中"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "ログインに成功しました"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "MFAの設定に失敗しました"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "パスワード設定"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "パスワードは正常に設定されました。新しいパスワードでログインできます。"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "パスワードを変更できませんでした"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "2つのパスワードフィールドが一致しませんでした"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "パスワードが変更されました"
@@ -5351,38 +5406,10 @@ msgstr "パスワードが変更されました"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "未実施"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "この機能はまだ実装されていません"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "この操作を実行する権限がありません"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "無効なリターンコード"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "サーバーが返したステータス [0]"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "タイムアウト"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "リクエストがタイムアウトしました"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "データエクスポート中"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "選択された在庫品を削除します"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "ストックアクション"
@@ -5811,73 +5838,73 @@ msgstr "予期しないエラーが発生しました"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "スキャン済みアイテム"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "APIエラー"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "インスタンスデータの取得に失敗"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "スキャンエラー"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "選択された要素は不明"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "複数のオブジェクトタイプを選択"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "アクション..."
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "アクション..."
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "バーコードスキャン"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "バーコード入力"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "アクション"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "選択されたアイテムなし"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "アイテムをスキャンして選択し、アクションを実行する"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "アイテムをスキャンして選択し、アクションを実行する"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} 選択された項目"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "スキャンされたアイテム"
@@ -6593,7 +6620,7 @@ msgstr "ドット"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "通貨"
@@ -6661,11 +6688,11 @@ msgstr "クイックアクション"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "ホーム"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "ユーザー/アクセス"
@@ -6673,27 +6700,27 @@ msgstr "ユーザー/アクセス"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "データインポート"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "データエクスポート"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "バーコードスキャン"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "バックグラウンドタスク"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "エラーレポート"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "通貨"
@@ -6701,11 +6728,11 @@ msgstr "通貨"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "カスタムステート"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "カスタム単位"
@@ -6715,12 +6742,12 @@ msgstr "カスタム単位"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "カテゴリー・パラメーター"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "ロケーションタイプ"
@@ -6728,35 +6755,35 @@ msgstr "ロケーションタイプ"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "機械"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "操作"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "データ管理"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "レポート"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "拡張/統合"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "高度なオプション"
@@ -6949,11 +6976,15 @@ msgstr "トークン"
msgid "The settings below are specific to each available plugin"
msgstr "以下の設定は、利用可能な各プラグインごとに固有のものになります"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "認証"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "バーコード"
@@ -6965,8 +6996,8 @@ msgstr "バーコード"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "以下の設定は、各通知方法ごとに固有のものになります"
@@ -6974,21 +7005,29 @@ msgstr "以下の設定は、各通知方法ごとに固有のものになりま
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "価格"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "ラベル"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "在庫管理"
@@ -6996,15 +7035,15 @@ msgstr "在庫管理"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "アカウント"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "セキュリティ"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "表示オプション"
@@ -7040,15 +7079,15 @@ msgstr "未読にする"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "必須品目はありません"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "このビルドオーダーには必須品目はありません"
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "組み立てられた部品には部品表(BOM)が定義されていないか、BOMが空である可能性があります。"
@@ -7056,6 +7095,18 @@ msgstr "組み立てられた部品には部品表(BOM)が定義されてい
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "BOMが未検証です"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "組み立てられた部品には部品表(BOM)が定義されてい
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "リビジョン"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "カスタムステータス"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "カスタムステータス"
msgid "External"
msgstr "外部"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "参照"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "親ビルド"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "数量"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "ビルド"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "完成したアウトプット"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "発行者"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "責任"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "場所"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "目的地"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "場所"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "作成日"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "目的地"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "作成日"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "開始日"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "終了日に達したら"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "完了"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "詳細"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "必要な部品"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "割当株式"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "消費在庫"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "不完全なアウトプット"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "外部からのオーダー"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "チャイルド・ビルド・オーダー"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "テストの結果"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "ビルド順序の編集"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "ビルドオーダーの追加"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "ビルドオーダーのキャンセル"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "注文のキャンセル"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "この注文をキャンセル"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "ホールドビルドオーダー"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "この注文を保留にします"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "注文の保留"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "ビルドオーダーの発行"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "本命令の発令"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "オーダー発行"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "コンプリート・ビルド・オーダー"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "この注文を完了としてマークしてください。"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "注文完了"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "発行順序"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "完全な注文"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "ビルドオーダーアクション"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "掲載依頼を編集"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "重複した注文"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "ホールドオーダー"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "お見積をキャンセル"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "外部ビルドオーダーを表示します"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "外部ビルドオーダーを表示します"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "テーブルビュー"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "カレンダービュー"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "カレンダービュー"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "パラメトリックビュー"
@@ -7470,7 +7522,7 @@ msgstr "製造元"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "外部リンク"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "部品詳細"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "サプライヤー部品の追加"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "在庫切れ"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "グループロール"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "ユーザー情報"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "親カテゴリ"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "サブカテゴリ"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "デフォルトの場所"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "トップレベルのパーツカテゴリ"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "部品カテゴリーの編集"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "項目を親カテゴリに移動"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "アイテムの削除"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "部品カテゴリの削除"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "パーツアクション"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "このカテゴリの部品のアクション"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "チャイルド・カテゴリー・アクション"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "このカテゴリーに含まれる子どもの行動"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "カテゴリー・アクション"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "カテゴリー詳細"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "ビルド・オーダー・アロケーション"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "販売注文の割り当て"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "BOMの検証"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "このアセンブリの部品表を検証しますか?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "部品表の検証が完了しました"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "この部品の部品表は検証済みです"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "BOMが未検証です"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "この部品の部品表は既にチェック済みですが、再検証が必要となります。"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "この部品の部品表はまだ検証されていません"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "検証日時"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "検証者"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "検証者"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "変種"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "改訂版"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "検証者"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "変種"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "改訂版"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "デフォルトの場所"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "カテゴリー デフォルトの場所"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "単位"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "キーワード"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "在庫状況"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "注文中"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "ご注文に必要なもの"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "建設受注に割り当て"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "販売注文に割り当て"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "最小在庫"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "ロック中"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "テンプレート部品"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "組立部品"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "構成部品"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "テスト可能な部分"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "追跡可能部品"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "購入可能部品"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "売却可能部分"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "作成日時"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "作成者"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "デフォルトの有効期限"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "日"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "料金帯"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "最新のシリアル番号"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "部品リビジョンの選択"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "バリアント"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "割り当て"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "部品表"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "最新のシリアル番号"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "部品リビジョンの選択"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "バリアント"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "割り当て"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "部品表"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "中古"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "部品価格"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "テストテンプレート"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "関連部品"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "部品がロックされています"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "パートがロックされているため、パートパラメータを編集できません。"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "必須"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "不足数"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "パートがロックされているため、パートパラメータを
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "必須"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "不足数"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "部品追加"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "削除部分"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "この部分の削除は元に戻せません"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "注文"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "注文在庫"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "シリアル番号で検索"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "パートアクション"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "株式価値"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "BOMの検証"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "このアセンブリの部品表を検証しますか?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "部品表の検証が完了しました"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "この部品の部品表は検証済みです"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "この部品の部品表は既にチェック済みですが、再検証が必要となります。"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "この部品の部品表はまだ検証されていません"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "検証日時"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "検証者"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "バリアントを許可"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "継承"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "オプション"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "消耗品"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "設定数量"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "歩留まり損失"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "丸め倍数"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "最大価格"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "購入価格"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "発行日"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "未確認"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "親の位置"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "サブロケーション"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "ロケーションタイプ"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "トップレベルの在庫ロケーション"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "場所の詳細"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "デフォルトパーツ"
@@ -8768,86 +8915,86 @@ msgstr "デフォルトパーツ"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "在庫場所の編集"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "アイテムを親の場所に移動"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "在庫場所の削除"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "アクション"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "この場所にある在庫品に対する措置"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "ロケーションアクション"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "この場所の子供のための行動"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "この場所の子供のための行動"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "在庫品のスキャン"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "在庫品を在庫場所に置いてスキャンしました"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "在庫品のスキャン中にエラーが発生しました"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "在庫場所をスキャンしてください"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "在庫場所に置いて、場所のスキャンをしました"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "在庫場所のスキャン中にエラーが発生しました"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "ベース部"
@@ -8867,7 +9014,7 @@ msgstr "ベース部"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "以前のシリアル番号"
@@ -8875,35 +9022,35 @@ msgstr "以前のシリアル番号"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "シリアル番号を探す"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "次のシリアル番号"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "注文に割り当て"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "設置場所"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "親アイテム"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "親株式"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "消費者"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "最後のストックテイク"
@@ -8911,7 +9058,7 @@ msgstr "最後のストックテイク"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "在庫詳細"
@@ -8919,15 +9066,15 @@ msgstr "在庫詳細"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "設置項目"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "子供用品"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "在庫商品を編集"
@@ -8941,20 +9088,24 @@ msgstr "在庫商品を編集"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "作成された在庫品"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "{n}個の在庫品を作成しました"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "ストックアイテムの削除"
@@ -8966,44 +9117,44 @@ msgstr "ストックアイテムの削除"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "ストックアイテムのシリアル化"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "ストックアイテムのシリアル化"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "シリアル化された在庫品"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "在庫場所に置いてスキャンしてください"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "在庫場所に置いてスキャンしてください"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "在庫場所に置いてこの在庫品をスキャンしてください"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "株式運用"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "在庫場所に置いてスキャンしてください"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "在庫場所に置いてこの在庫品をスキャンしてください"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "株式運用"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "シリアライズ"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "在庫のシリアル化"
@@ -9011,14 +9162,22 @@ msgstr "在庫のシリアル化"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "在庫品アクション"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "在庫品アクション"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "在庫品アクション"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "期限失効"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "期限切れ"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "利用不可"
@@ -9116,27 +9275,22 @@ msgstr "在庫なし"
msgid "This stock item has been depleted"
msgstr "この在庫はなくなりました"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "株式情報"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "割り当てライン"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "列の選択"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "フィルタ"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "テーブルフィルター"
@@ -9435,12 +9589,12 @@ msgstr "フィルタを追加"
msgid "Clear Filters"
msgstr "絞り込み条件を解除する"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "記録が見つかりません"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "テーブルオプションの読み込み中にエラーが発生しました"
@@ -9468,7 +9622,7 @@ msgstr "テーブルオプションの読み込み中にエラーが発生しま
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "サーバーが不正なデータ型を返しました。"
@@ -9477,7 +9631,7 @@ msgstr "サーバーが不正なデータ型を返しました。"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "テーブルデータの読み込み中にエラーが発生しました"
@@ -9494,49 +9648,49 @@ msgstr "テーブルデータの読み込み中にエラーが発生しました
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "詳細を見る"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "{model}を表示"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "選択したアイテムを削除"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "選択したアイテムを削除しますか?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "この操作は元に戻せません。"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "削除されたアイテム"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "アイテムの削除に失敗しました"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "カスタムテーブルフィルターが有効"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "選択したレコードの削除"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "データを更新する"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "適用中のフィルター"
@@ -9548,71 +9702,66 @@ msgstr "適用中のフィルター"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "このBOMアイテムは、別の親に定義されています。"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "部品情報"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "このBOMは検証されていません"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "部品情報"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "代替品"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "仮想部品"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "外部在庫"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "代用株を含む"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "建物"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "代用株を含む"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "バリアントストック付き"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "建物"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "建物"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "消耗品"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "在庫なし"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "テスト可能な項目を表示"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "追跡可能なアイテムの表示"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "アクティブパート"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "組み立てられた商品を表示"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "仮想アイテムを表示します"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "在庫のある商品を表示"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "注文商品の表示"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "検証済み"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "有効な項目を表示"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "継承"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "継承された項目を表示"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "バリアントを許可"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "バリアント置換が可能な項目を表示"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "オプション"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "オプション項目の表示"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "消耗品"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "消耗品の表示"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "価格"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "価格表示アイテム"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "BOMデータのインポート"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "BOMアイテムの追加"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "BOMアイテムの作成"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "BOMアイテムの編集"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "BOMアイテム更新"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "BOMアイテムの削除"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "BOMアイテム削除"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "BOMアイテムの検証"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "BOMアイテムの検証に失敗しました"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "BOMを見る"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "BOMラインの検証"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "代理編集"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "BOMの項目を追加する"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "BOMに1つの部品を追加する"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "ファイルからインポート"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "ファイルからBOMの項目をインポートする"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "部品がロックされているため、部品表を編集できません。"
@@ -9966,18 +10108,6 @@ msgstr "継承"
msgid "Unit Quantity"
msgstr "単位 数量"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "設定数量"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "歩留まり損失"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "丸め倍数"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "BOM情報"
@@ -10361,10 +10491,6 @@ msgstr "%s 孤立した添付ファイルが見つかりました"
msgid "Drag attachment file here to upload"
msgstr "添付ファイルをここにドラッグしてアップロードしてください。"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "アイテム"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "モデル"
@@ -10456,59 +10582,59 @@ msgstr "新しいパラメーターを作成します"
msgid "Import parameters from a file"
msgstr "ファイルからパラメーターをインポートします"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "パラメータテンプレートの追加"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "重複パラメーターテンプレート"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "パラメータテンプレートの削除"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "パラメータテンプレートの編集"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "チェックボックス"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "チェックボックステンプレートを表示"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "選択肢があります"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "選択肢のあるテンプレートを表示"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "ユニット"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "単位付きテンプレートの表示"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "有効なテンプレートを表示します"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "モデルタイプ"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "モデルタイプで絞り込みます"
@@ -11623,7 +11749,7 @@ msgstr "項目ステータスによるフィルタリング"
msgid "Receive selected items"
msgstr "選択した商品を受け取る"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "商品を受け取る"
diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po
index e34518ecf7..b16c117817 100644
--- a/src/frontend/src/locales/ko/messages.po
+++ b/src/frontend/src/locales/ko/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,29 +18,49 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "컴포넌트를 렌더링하는 중 오류가 발생했습니다"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "이 컴포넌트를 렌더링 하는 중 오류가 발생했습니다. 자세한 내용은 콘솔을 확인하세요"
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "복사 완료"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "복사"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
-msgstr ""
+msgstr "복제"
#: lib/components/RowActions.tsx:46
#: src/components/items/ActionDropdown.tsx:245
msgid "Edit"
-msgstr ""
+msgstr "편집"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
#: src/pages/Notifications.tsx:109
#: src/tables/plugin/PluginListTable.tsx:247
msgid "Delete"
-msgstr ""
+msgstr "삭제"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -52,11 +72,11 @@ msgstr ""
#: src/tables/FilterSelectDrawer.tsx:382
#: src/tables/build/BuildOutputTable.tsx:610
msgid "Cancel"
-msgstr ""
+msgstr "취소"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -65,49 +85,54 @@ msgstr ""
#: src/forms/StockForms.tsx:1099
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
-msgstr ""
+msgstr "작업"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
-msgstr ""
+msgstr "찾다"
+
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "열 선택"
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
-msgstr ""
+msgstr "통과"
#: lib/components/YesNoButton.tsx:21
msgid "Fail"
-msgstr ""
+msgstr "실패하다"
#: lib/components/YesNoButton.tsx:43
#: src/tables/Filter.tsx:41
#: src/tables/Filter.tsx:77
msgid "Yes"
-msgstr ""
+msgstr "예"
#: lib/components/YesNoButton.tsx:44
#: src/tables/Filter.tsx:41
#: src/tables/Filter.tsx:78
msgid "No"
-msgstr ""
+msgstr "아니요"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -127,20 +153,20 @@ msgstr ""
#: src/tables/stock/StockTrackingTable.tsx:119
#: src/tables/stock/StockTrackingTable.tsx:237
msgid "Part"
-msgstr ""
+msgstr "부품"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
-msgstr ""
+msgstr "부품"
#: lib/enums/ModelInformation.tsx:37
#: src/pages/Index/Settings/AdminCenter/PartParameterPanel.tsx:13
@@ -153,51 +179,51 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:39
msgid "Parameter"
-msgstr ""
+msgstr "매개변수"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
-msgstr ""
+msgstr "매개변수"
#: lib/enums/ModelInformation.tsx:45
#: src/tables/part/PartCategoryTemplateTable.tsx:87
msgid "Parameter Template"
-msgstr ""
+msgstr "매개변수 템플릿"
#: lib/enums/ModelInformation.tsx:46
#: src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx:13
msgid "Parameter Templates"
-msgstr ""
+msgstr "매개변수 템플릿"
#: lib/enums/ModelInformation.tsx:52
msgid "Part Test Template"
-msgstr ""
+msgstr "부품 테스트 템플릿"
#: lib/enums/ModelInformation.tsx:53
msgid "Part Test Templates"
-msgstr ""
+msgstr "부품 테스트 템플릿 목록"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
#: src/tables/purchasing/SupplierPartTable.tsx:106
#: src/tables/stock/StockItemTable.tsx:99
msgid "Supplier Part"
-msgstr ""
+msgstr "공급업체 부품"
#: lib/enums/ModelInformation.tsx:60
#: src/pages/purchasing/PurchasingIndex.tsx:129
msgid "Supplier Parts"
-msgstr ""
+msgstr "공급업체 부품 목록"
#: lib/enums/ModelInformation.tsx:69
#: src/pages/company/ManufacturerPartDetail.tsx:289
@@ -205,33 +231,33 @@ msgstr ""
#: src/tables/part/PartPurchaseOrdersTable.tsx:56
#: src/tables/stock/StockItemTable.tsx:106
msgid "Manufacturer Part"
-msgstr ""
+msgstr "제조업체 부품"
#: lib/enums/ModelInformation.tsx:70
#: src/pages/purchasing/PurchasingIndex.tsx:179
msgid "Manufacturer Parts"
-msgstr ""
+msgstr "제조업체 부품"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
-msgstr ""
+msgstr "부품 카테고리"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
-msgstr ""
+msgstr "부품 카테고리 목록"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -239,72 +265,71 @@ msgstr ""
#: src/tables/stock/StockTrackingTable.tsx:72
#: src/tables/stock/StockTrackingTable.tsx:247
msgid "Stock Item"
-msgstr ""
+msgstr "재고 항목"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
-msgstr ""
+msgstr "재고 품목"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
-msgstr ""
+msgstr "재고 위치"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
-msgstr ""
+msgstr "재고 위치 목록"
#: lib/enums/ModelInformation.tsx:108
msgid "Stock Location Type"
-msgstr ""
+msgstr "재고 위치 유형"
#: lib/enums/ModelInformation.tsx:109
msgid "Stock Location Types"
-msgstr ""
+msgstr "재고 위치 유형 목록"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
-msgstr ""
+msgstr "재고 이력"
#: lib/enums/ModelInformation.tsx:115
msgid "Stock Histories"
-msgstr ""
+msgstr "재고 이력"
#: lib/enums/ModelInformation.tsx:120
msgid "Build"
-msgstr ""
+msgstr "생산"
#: lib/enums/ModelInformation.tsx:121
msgid "Builds"
-msgstr ""
+msgstr "생산"
#: lib/enums/ModelInformation.tsx:130
msgid "Build Line"
-msgstr ""
+msgstr "생산 항목"
#: lib/enums/ModelInformation.tsx:131
msgid "Build Lines"
-msgstr ""
+msgstr "생산 항목"
#: lib/enums/ModelInformation.tsx:138
msgid "Build Item"
-msgstr ""
+msgstr "생산 아이템"
#: lib/enums/ModelInformation.tsx:139
msgid "Build Items"
-msgstr ""
+msgstr "생산 아이템"
#: lib/enums/ModelInformation.tsx:144
#: src/pages/company/CompanyDetail.tsx:347
@@ -312,124 +337,124 @@ msgstr ""
#: src/tables/company/ContactTable.tsx:67
#: src/tables/company/ParametricCompanyTable.tsx:18
msgid "Company"
-msgstr ""
+msgstr "회사"
#: lib/enums/ModelInformation.tsx:145
msgid "Companies"
-msgstr ""
+msgstr "회사 목록"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
-msgstr ""
+msgstr "프로젝트 코드"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
-msgstr ""
+msgstr "프로젝트 코드 목록"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
msgid "Purchase Order"
-msgstr ""
+msgstr "발주서"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
-msgstr ""
+msgstr "발주서"
#: lib/enums/ModelInformation.tsx:169
msgid "Purchase Order Line"
-msgstr ""
+msgstr "발주서 항목"
#: lib/enums/ModelInformation.tsx:170
msgid "Purchase Order Lines"
-msgstr ""
+msgstr "발주서 항목"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
#: src/tables/stock/StockTrackingTable.tsx:163
msgid "Sales Order"
-msgstr ""
+msgstr "판매 주문서"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
-msgstr ""
+msgstr "판매 주문서"
#: lib/enums/ModelInformation.tsx:185
#: src/pages/sales/SalesOrderShipmentDetail.tsx:439
msgid "Sales Order Shipment"
-msgstr ""
+msgstr "판매 주문 배송"
#: lib/enums/ModelInformation.tsx:186
msgid "Sales Order Shipments"
-msgstr ""
+msgstr "판매 주문 출하 목록"
#: lib/enums/ModelInformation.tsx:194
#: src/pages/sales/ReturnOrderDetail.tsx:564
#: src/tables/stock/StockTrackingTable.tsx:174
msgid "Return Order"
-msgstr ""
+msgstr "반품 주문"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
-msgstr ""
+msgstr "반품 주문 목록"
#: lib/enums/ModelInformation.tsx:204
msgid "Return Order Line Item"
-msgstr ""
+msgstr "반품 주문 항목"
#: lib/enums/ModelInformation.tsx:205
msgid "Return Order Line Items"
-msgstr ""
+msgstr "반품 주문 라인 항목 목록"
#: lib/enums/ModelInformation.tsx:210
#: src/tables/company/AddressTable.tsx:52
msgid "Address"
-msgstr ""
+msgstr "주소"
#: lib/enums/ModelInformation.tsx:211
#: src/pages/company/CompanyDetail.tsx:266
msgid "Addresses"
-msgstr ""
+msgstr "주소 목록"
#: lib/enums/ModelInformation.tsx:217
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:89
@@ -438,27 +463,27 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:208
#: src/pages/sales/SalesOrderDetail.tsx:201
msgid "Contact"
-msgstr ""
+msgstr "연락"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
-msgstr ""
+msgstr "연락처 목록"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
-msgstr ""
+msgstr "소유자"
#: lib/enums/ModelInformation.tsx:225
msgid "Owners"
-msgstr ""
+msgstr "소유자 목록"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -468,96 +493,96 @@ msgstr ""
#: src/tables/stock/StockTrackingTable.tsx:225
#: src/tables/stock/StockTrackingTable.tsx:273
msgid "User"
-msgstr ""
+msgstr "사용자"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
-msgstr ""
+msgstr "사용자 목록"
#: lib/enums/ModelInformation.tsx:238
#: src/pages/core/GroupDetail.tsx:78
msgid "Group"
-msgstr ""
+msgstr "그룹"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
msgid "Groups"
-msgstr ""
+msgstr "그룹 목록"
#: lib/enums/ModelInformation.tsx:246
msgid "Import Session"
-msgstr ""
+msgstr "세션 가져오기"
#: lib/enums/ModelInformation.tsx:247
msgid "Import Sessions"
-msgstr ""
+msgstr "세션 목록 가져오기"
#: lib/enums/ModelInformation.tsx:254
msgid "Label Template"
-msgstr ""
+msgstr "라벨 템플릿"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
-msgstr ""
+msgstr "라벨 템플릿 목록"
#: lib/enums/ModelInformation.tsx:262
msgid "Report Template"
-msgstr ""
+msgstr "보고서 템플릿"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
-msgstr ""
+msgstr "리포트 템플릿 목록"
#: lib/enums/ModelInformation.tsx:270
#: src/components/plugins/PluginDrawer.tsx:153
msgid "Plugin Configuration"
-msgstr ""
+msgstr "플러그인 구성"
#: lib/enums/ModelInformation.tsx:271
msgid "Plugin Configurations"
-msgstr ""
+msgstr "플러그인 구성 목록"
#: lib/enums/ModelInformation.tsx:278
msgid "Content Type"
-msgstr ""
+msgstr "콘텐츠 타입"
#: lib/enums/ModelInformation.tsx:279
msgid "Content Types"
-msgstr ""
+msgstr "콘텐츠 타입 목록"
#: lib/enums/ModelInformation.tsx:284
msgid "Selection List"
-msgstr ""
+msgstr "선택 목록"
#: lib/enums/ModelInformation.tsx:285
#: src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx:21
msgid "Selection Lists"
-msgstr ""
+msgstr "선택 목록"
#: lib/enums/ModelInformation.tsx:291
msgid "Selection Entry"
-msgstr ""
+msgstr "선택 항목"
#: lib/enums/ModelInformation.tsx:292
msgid "Selection Entries"
-msgstr ""
+msgstr "선택 항목"
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,48 +607,73 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
-msgstr ""
+msgstr "오류"
#: lib/enums/ModelInformation.tsx:299
#: src/tables/machine/MachineListTable.tsx:402
#: src/tables/machine/MachineTypeTable.tsx:297
msgid "Errors"
-msgstr ""
+msgstr "오류 목록"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
-msgstr ""
+msgstr "관리"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
-msgstr ""
+msgstr "생산 오더"
+
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "구현되지 않음"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "이 기능은 아직 구현되지 않았습니다."
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "권한이 거부되었습니다"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "이 작업을 수행할 권한이 없습니다."
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "잘못된 반품 코드"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "서버가 상태 {returnCode}를 반환했습니다."
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "시간초과"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "요청 시간이 초과되었습니다."
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
-msgstr ""
+msgstr "프로세스 실패"
#: lib/hooks/MonitorDataOutput.tsx:75
msgid "Process completed successfully"
-msgstr ""
-
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr ""
+msgstr "프로세스가 성공적으로 완료되었습니다."
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
@@ -631,176 +681,168 @@ msgstr ""
#: src/components/barcodes/BarcodeCameraInput.tsx:103
msgid "Error while scanning"
-msgstr ""
+msgstr "스캔하는 동안 오류가 발생했습니다."
#: src/components/barcodes/BarcodeCameraInput.tsx:117
msgid "Error while stopping"
-msgstr ""
+msgstr "중지 중 오류 발생"
#: src/components/barcodes/BarcodeCameraInput.tsx:159
msgid "Start scanning by selecting a camera and pressing the play button."
-msgstr ""
+msgstr "카메라를 선택하고 재생 버튼을 눌러 스캔을 시작합니다."
#: src/components/barcodes/BarcodeCameraInput.tsx:180
msgid "Stop scanning"
-msgstr ""
+msgstr "스캔중지"
#: src/components/barcodes/BarcodeCameraInput.tsx:190
msgid "Start scanning"
-msgstr ""
+msgstr "스캔 시작"
#: src/components/barcodes/BarcodeInput.tsx:34
#: src/tables/general/BarcodeScanTable.tsx:55
#: src/tables/settings/BarcodeScanHistoryTable.tsx:64
msgid "Barcode"
-msgstr ""
+msgstr "바코드"
#: src/components/barcodes/BarcodeInput.tsx:35
#: src/components/barcodes/BarcodeKeyboardInput.tsx:18
#: src/defaults/actions.tsx:137
msgid "Scan"
-msgstr ""
+msgstr "스캔"
#: src/components/barcodes/BarcodeInput.tsx:53
msgid "Camera Input"
-msgstr ""
+msgstr "카메라 입력"
#: src/components/barcodes/BarcodeInput.tsx:63
msgid "Scanner Input"
-msgstr ""
+msgstr "스캐너 입력"
#: src/components/barcodes/BarcodeInput.tsx:105
msgid "Barcode Data"
-msgstr ""
+msgstr "바코드 데이터"
#: src/components/barcodes/BarcodeInput.tsx:109
msgid "No barcode data"
-msgstr ""
+msgstr "바코드 데이터 없음"
#: src/components/barcodes/BarcodeInput.tsx:110
msgid "Scan or enter barcode data"
-msgstr ""
+msgstr "바코드 데이터 스캔 또는 입력"
#: src/components/barcodes/BarcodeKeyboardInput.tsx:64
msgid "Enter barcode data"
-msgstr ""
+msgstr "바코드 데이터 입력"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
-msgstr ""
+msgstr "바코드 스캔하기"
#: src/components/barcodes/BarcodeScanDialog.tsx:121
msgid "No matching item found"
-msgstr ""
+msgstr "일치하는 항목이 없습니다."
#: src/components/barcodes/BarcodeScanDialog.tsx:150
msgid "Barcode does not match the expected model type"
-msgstr ""
+msgstr "바코드가 예상 모델 유형과 일치하지 않습니다."
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
-msgstr ""
+msgstr "성공"
#: src/components/barcodes/BarcodeScanDialog.tsx:167
msgid "Failed to handle barcode"
-msgstr ""
+msgstr "바코드 처리에 실패했습니다"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
-msgstr ""
+msgstr "바코드 스캔 실패"
#: src/components/barcodes/QRCode.tsx:94
msgid "Low (7%)"
-msgstr ""
+msgstr "낮음 (7%)"
#: src/components/barcodes/QRCode.tsx:95
msgid "Medium (15%)"
-msgstr ""
+msgstr "중간 (15%)"
#: src/components/barcodes/QRCode.tsx:96
msgid "Quartile (25%)"
-msgstr ""
+msgstr "사분위 (25%)"
#: src/components/barcodes/QRCode.tsx:97
msgid "High (30%)"
-msgstr ""
+msgstr "높음 (30%)"
#: src/components/barcodes/QRCode.tsx:107
msgid "Custom barcode"
-msgstr ""
+msgstr "맞춤형 바코드"
#: src/components/barcodes/QRCode.tsx:108
msgid "A custom barcode is registered for this item. The shown code is not that custom barcode."
-msgstr ""
+msgstr "이 항목에는 사용자 지정 바코드가 등록되어 있습니다. 표시된 코드는 해당 사용자 지정 바코드가 아닙니다."
#: src/components/barcodes/QRCode.tsx:127
msgid "Barcode Data:"
-msgstr ""
+msgstr "바코드 데이터:"
#: src/components/barcodes/QRCode.tsx:138
msgid "Select Error Correction Level"
-msgstr ""
+msgstr "오류 수정 수준 선택"
#: src/components/barcodes/QRCode.tsx:170
msgid "Failed to link barcode"
-msgstr ""
+msgstr "바코드 연결 실패"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
-msgstr ""
+msgstr "링크"
#: src/components/barcodes/QRCode.tsx:200
msgid "This will remove the link to the associated barcode"
-msgstr ""
+msgstr "연결된 바코드 링크가 제거됩니다"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
-msgstr ""
+msgstr "바코드 연결 해제"
#: src/components/buttons/AdminButton.tsx:86
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:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
-msgstr ""
+msgstr "라벨 인쇄"
#: src/components/buttons/PrintingActions.tsx:61
msgid "Printing Reports"
-msgstr ""
+msgstr "보고서 인쇄"
#: src/components/buttons/PrintingActions.tsx:77
#~ msgid "Printing"
@@ -820,12 +862,12 @@ msgstr ""
#: src/components/buttons/PrintingActions.tsx:126
msgid "Print Label"
-msgstr ""
+msgstr "라벨 인쇄"
#: src/components/buttons/PrintingActions.tsx:138
#: src/components/buttons/PrintingActions.tsx:172
msgid "Print"
-msgstr ""
+msgstr "인쇄"
#: src/components/buttons/PrintingActions.tsx:153
#~ msgid "Report printing completed successfully"
@@ -837,27 +879,27 @@ msgstr ""
#: src/components/buttons/PrintingActions.tsx:165
msgid "Print Report"
-msgstr ""
+msgstr "보고서 인쇄하기"
#: src/components/buttons/PrintingActions.tsx:193
msgid "Printing Actions"
-msgstr ""
+msgstr "인쇄 작업"
#: src/components/buttons/PrintingActions.tsx:199
msgid "Print Labels"
-msgstr ""
+msgstr "라벨 인쇄"
#: src/components/buttons/PrintingActions.tsx:205
msgid "Print Reports"
-msgstr ""
+msgstr "보고서 인쇄"
#: src/components/buttons/RemoveRowButton.tsx:9
msgid "Remove this row"
-msgstr ""
+msgstr "이 행 제거"
#: src/components/buttons/SSOButton.tsx:40
msgid "You will be redirected to the provider for further actions."
-msgstr ""
+msgstr "추가 작업을 위해 제공업체 페이지로 이동합니다."
#: src/components/buttons/SSOButton.tsx:44
#~ msgid "This provider is not full set up."
@@ -881,19 +923,19 @@ msgstr ""
#: src/components/buttons/SpotlightButton.tsx:12
msgid "Open spotlight"
-msgstr ""
+msgstr "공개 스포트라이트"
#: src/components/buttons/StarredToggleButton.tsx:36
msgid "Subscription Updated"
-msgstr ""
+msgstr "구독이 업데이트되었습니다."
#: src/components/buttons/StarredToggleButton.tsx:38
msgid "Subscription removed"
-msgstr ""
+msgstr "구독이 제거되었습니다"
#: src/components/buttons/StarredToggleButton.tsx:38
msgid "Subscription added"
-msgstr ""
+msgstr "구독 추가됨"
#: src/components/buttons/StarredToggleButton.tsx:57
#~ msgid "Unsubscribe from part"
@@ -901,28 +943,28 @@ msgstr ""
#: src/components/buttons/StarredToggleButton.tsx:66
msgid "Unsubscribe from notifications"
-msgstr ""
+msgstr "알림 구독 취소"
#: src/components/buttons/StarredToggleButton.tsx:67
msgid "Subscribe to notifications"
-msgstr ""
+msgstr "알림 구독"
#: src/components/calendar/Calendar.tsx:118
#: src/components/calendar/Calendar.tsx:181
msgid "Calendar Filters"
-msgstr ""
+msgstr "달력 필터 편집"
#: src/components/calendar/Calendar.tsx:133
msgid "Previous month"
-msgstr ""
+msgstr "지난달"
#: src/components/calendar/Calendar.tsx:142
msgid "Select month"
-msgstr ""
+msgstr "월 선택"
#: src/components/calendar/Calendar.tsx:163
msgid "Next month"
-msgstr ""
+msgstr "다음 달"
#: src/components/calendar/Calendar.tsx:178
#: src/tables/InvenTreeTableHeader.tsx:294
@@ -930,39 +972,39 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
-msgstr ""
+msgstr "1"
#: src/components/calendar/OrderCalendar.tsx:132
msgid "Order Updated"
-msgstr ""
+msgstr "주문이 업데이트되었습니다"
#: src/components/calendar/OrderCalendar.tsx:142
msgid "Error updating order"
-msgstr ""
+msgstr "주문 업데이트 중 오류가 발생했습니다"
#: src/components/calendar/OrderCalendar.tsx:178
#: src/tables/Filter.tsx:194
msgid "Overdue"
-msgstr ""
+msgstr "지연"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
-msgstr ""
-
-#: src/components/dashboard/DashboardLayout.tsx:293
-msgid "No Widgets Selected"
-msgstr ""
+msgstr "대시보드 위젯을 불러오지 못했습니다."
#: src/components/dashboard/DashboardLayout.tsx:296
+msgid "No Widgets Selected"
+msgstr "선택된 위젯이 없습니다"
+
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
-msgstr ""
+msgstr "메뉴를 사용해 대시보드에 위젯을 추가하세요"
#: src/components/dashboard/DashboardMenu.tsx:62
#: src/components/dashboard/DashboardMenu.tsx:138
msgid "Accept Layout"
-msgstr ""
+msgstr "레이아웃 수락"
#: src/components/dashboard/DashboardMenu.tsx:94
#: src/components/nav/NavigationDrawer.tsx:64
@@ -970,287 +1012,287 @@ msgstr ""
#: src/defaults/links.tsx:31
#: src/pages/Index/Home.tsx:8
msgid "Dashboard"
-msgstr ""
+msgstr "대시보드"
#: src/components/dashboard/DashboardMenu.tsx:102
msgid "Edit Layout"
-msgstr ""
+msgstr "레이아웃 편집"
#: src/components/dashboard/DashboardMenu.tsx:111
msgid "Add Widget"
-msgstr ""
+msgstr "위젯 추가하기"
#: src/components/dashboard/DashboardMenu.tsx:120
msgid "Remove Widgets"
-msgstr ""
+msgstr "위젯 제거"
#: src/components/dashboard/DashboardMenu.tsx:129
msgid "Clear Widgets"
-msgstr ""
+msgstr "위젯 모두 지우기"
#: src/components/dashboard/DashboardWidget.tsx:81
msgid "Remove this widget from the dashboard"
-msgstr ""
+msgstr "대시보드에서 이 위젯을 제거하세요."
#: src/components/dashboard/DashboardWidgetDrawer.tsx:77
msgid "Filter dashboard widgets"
-msgstr ""
+msgstr "대시보드 위젯 필터"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:98
msgid "Add this widget to the dashboard"
-msgstr ""
+msgstr "대시보드에 이 위젯 추가"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:123
msgid "No Widgets Available"
-msgstr ""
+msgstr "사용 가능한 위젯이 없습니다"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:124
msgid "There are no more widgets available for the dashboard"
-msgstr ""
+msgstr "대시보드에 추가할 수 있는 위젯이 더 이상 없습니다."
#: src/components/dashboard/DashboardWidgetLibrary.tsx:25
msgid "Subscribed Parts"
-msgstr ""
+msgstr "구독한 부품"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:26
msgid "Show the number of parts which you have subscribed to"
-msgstr ""
+msgstr "구독 중인 부품 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:32
msgid "Subscribed Categories"
-msgstr ""
+msgstr "구독 카테고리"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:33
msgid "Show the number of part categories which you have subscribed to"
-msgstr ""
+msgstr "구독한 부품 카테고리 수 표시"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:42
msgid "Invalid BOMs"
-msgstr ""
+msgstr "잘못된 BOM"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:43
msgid "Assemblies requiring bill of materials validation"
-msgstr ""
+msgstr "BOM 검증이 필요한 조립품"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:54
#: src/tables/part/PartTable.tsx:264
msgid "Low Stock"
-msgstr ""
+msgstr "재고 부족"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:56
msgid "Show the number of parts which are low on stock"
-msgstr ""
+msgstr "재고가 부족한 부품 수 표시"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:65
msgid "Required for Build Orders"
-msgstr ""
+msgstr "생산 주문에 필요"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:67
msgid "Show parts which are required for active build orders"
-msgstr ""
+msgstr "진행 중인 생산 주문에 필요한 부품을 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:72
msgid "Expired Stock Items"
-msgstr ""
+msgstr "만료된 재고 품목"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:74
msgid "Show the number of stock items which have expired"
-msgstr ""
+msgstr "만료된 재고 품목 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:80
msgid "Stale Stock Items"
-msgstr ""
+msgstr "오래된 재고 품목"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:82
msgid "Show the number of stock items which are stale"
-msgstr ""
+msgstr "오래된 재고 품목 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:88
msgid "Active Build Orders"
-msgstr ""
+msgstr "진행 중인 생산 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:90
msgid "Show the number of build orders which are currently active"
-msgstr ""
+msgstr "현재 진행 중인 생산 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:95
msgid "Overdue Build Orders"
-msgstr ""
+msgstr "지연된 생산 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:97
msgid "Show the number of build orders which are overdue"
-msgstr ""
+msgstr "지연된 생산 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:102
msgid "Assigned Build Orders"
-msgstr ""
+msgstr "할당된 생산 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:104
msgid "Show the number of build orders which are assigned to you"
-msgstr ""
+msgstr "나에게 할당된 생산 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:109
msgid "Active Sales Orders"
-msgstr ""
+msgstr "진행 중인 판매 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:111
msgid "Show the number of sales orders which are currently active"
-msgstr ""
+msgstr "현재 진행 중인 판매 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:116
msgid "Overdue Sales Orders"
-msgstr ""
+msgstr "지연된 판매 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:118
msgid "Show the number of sales orders which are overdue"
-msgstr ""
+msgstr "지연된 판매 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:123
msgid "Assigned Sales Orders"
-msgstr ""
+msgstr "할당된 판매 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:125
msgid "Show the number of sales orders which are assigned to you"
-msgstr ""
+msgstr "나에게 할당된 판매 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:130
#: src/pages/sales/SalesIndex.tsx:87
msgid "Pending Shipments"
-msgstr ""
+msgstr "배송 대기 중"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:132
msgid "Show the number of pending sales order shipments"
-msgstr ""
+msgstr "대기 중인 판매 주문 배송 수 표시"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:137
msgid "Active Purchase Orders"
-msgstr ""
+msgstr "진행 중인 발주서"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:139
msgid "Show the number of purchase orders which are currently active"
-msgstr ""
+msgstr "현재 진행 중인 발주서 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:144
msgid "Overdue Purchase Orders"
-msgstr ""
+msgstr "기한이 지난 발주서"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:146
msgid "Show the number of purchase orders which are overdue"
-msgstr ""
+msgstr "기한이 지난 발주서 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:151
msgid "Assigned Purchase Orders"
-msgstr ""
+msgstr "나에게 할당된 발주서"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:153
msgid "Show the number of purchase orders which are assigned to you"
-msgstr ""
+msgstr "나에게 할당된 발주서 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:158
msgid "Active Return Orders"
-msgstr ""
+msgstr "진행 중인 반품 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:160
msgid "Show the number of return orders which are currently active"
-msgstr ""
+msgstr "현재 진행 중인 반품 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:165
msgid "Overdue Return Orders"
-msgstr ""
+msgstr "기한이 지난 반품 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:167
msgid "Show the number of return orders which are overdue"
-msgstr ""
+msgstr "기한이 지난 반품 주문 건수 표시"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:172
msgid "Assigned Return Orders"
-msgstr ""
+msgstr "나에게 할당된 반품 주문"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:174
msgid "Show the number of return orders which are assigned to you"
-msgstr ""
+msgstr "나에게 할당된 반품 주문 수를 표시합니다"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:194
#: src/components/dashboard/widgets/GetStartedWidget.tsx:15
#: src/defaults/links.tsx:86
msgid "Getting Started"
-msgstr ""
+msgstr "입문하기"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:195
#: src/defaults/links.tsx:89
msgid "Getting started with InvenTree"
-msgstr ""
+msgstr "InvenTree 시작하기"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:202
#: src/components/dashboard/widgets/NewsWidget.tsx:123
msgid "News Updates"
-msgstr ""
+msgstr "뉴스&업데이트"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:203
msgid "The latest news from InvenTree"
-msgstr ""
+msgstr "InvenTree의 최신 소식"
#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18
#: src/components/nav/MainMenu.tsx:93
msgid "Change Color Mode"
-msgstr ""
+msgstr "색 변경"
#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23
msgid "Change the color mode of the user interface"
-msgstr ""
+msgstr "사용자 인터페이스의 색상 모드 변경"
#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18
msgid "Change Language"
-msgstr ""
+msgstr "언어 변경"
#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23
msgid "Change the language of the user interface"
-msgstr ""
+msgstr "사용자 인터페이스 언어를 변경합니다"
#: src/components/dashboard/widgets/NewsWidget.tsx:60
#: src/components/nav/NotificationDrawer.tsx:94
#: src/pages/Notifications.tsx:53
msgid "Mark as read"
-msgstr ""
+msgstr "읽음으로 표시"
#: src/components/dashboard/widgets/NewsWidget.tsx:115
msgid "Requires Superuser"
-msgstr ""
+msgstr "슈퍼유저 권한 필요"
#: src/components/dashboard/widgets/NewsWidget.tsx:116
msgid "This widget requires superuser permissions"
-msgstr ""
+msgstr "이 위젯에는 수퍼유저 권한이 필요합니다."
#: src/components/dashboard/widgets/NewsWidget.tsx:133
msgid "No News"
-msgstr ""
+msgstr "새 소식 없음"
#: src/components/dashboard/widgets/NewsWidget.tsx:134
msgid "There are no unread news items"
-msgstr ""
+msgstr "읽지 않은 뉴스 항목이 없습니다"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:15
msgid "Generating Stocktake Report"
-msgstr ""
+msgstr "재고 실사 보고서 생성 중"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:20
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:53
#: src/pages/part/PartStockHistoryDetail.tsx:96
msgid "Generate Stocktake Report"
-msgstr ""
+msgstr "재고 실사 보고서 생성"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:37
#: src/pages/part/PartStockHistoryDetail.tsx:108
msgid "Generate"
-msgstr ""
+msgstr "생성하다"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:64
msgid "Stocktake"
-msgstr ""
+msgstr "재고 실사"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:65
msgid "Generate a new stocktake report"
-msgstr ""
+msgstr "새 재고 실사 보고서 생성"
#: src/components/details/Details.tsx:117
#~ msgid "Email:"
@@ -1262,7 +1304,7 @@ msgstr ""
#: src/pages/core/UserDetail.tsx:203
#: src/tables/settings/UserTable.tsx:411
msgid "Superuser"
-msgstr ""
+msgstr "수퍼유저"
#: src/components/details/Details.tsx:130
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:72
@@ -1271,7 +1313,7 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:285
#: src/tables/settings/UserTable.tsx:406
msgid "Administrator"
-msgstr ""
+msgstr "관리자"
#: src/components/details/Details.tsx:130
#: src/pages/core/UserDetail.tsx:87
@@ -1282,21 +1324,21 @@ msgstr ""
#: src/components/details/Details.tsx:131
msgid "Email: "
-msgstr ""
+msgstr "이메일:"
#: src/components/details/Details.tsx:423
msgid "No name defined"
-msgstr ""
+msgstr "이름이 정의되지 않음"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
-msgstr ""
+msgstr "이미지 제거하기"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
-msgstr ""
+msgstr "이 항목에 연결된 이미지를 제거하시겠습니까?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1310,85 +1352,85 @@ msgstr ""
#: src/tables/sales/SalesOrderAllocationTable.tsx:223
#: src/tables/sales/SalesOrderAllocationTable.tsx:246
msgid "Remove"
-msgstr ""
-
-#: src/components/details/DetailsImage.tsx:88
-msgid "Image removed"
-msgstr ""
+msgstr "제거하다"
#: src/components/details/DetailsImage.tsx:89
+msgid "Image removed"
+msgstr "이미지가 삭제되었습니다."
+
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
-msgstr ""
+msgstr "이미지가 성공적으로 제거되었습니다."
#: src/components/details/DetailsImage.tsx:115
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
-msgstr ""
+msgstr "드래그 앤 드롭하여 업로드하거나 클립보드의 이미지를 붙여넣으세요"
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
-msgstr ""
-
-#: src/components/details/DetailsImage.tsx:222
-msgid "Image uploaded"
-msgstr ""
+msgstr "파일을 선택하려면 클릭하세요"
#: src/components/details/DetailsImage.tsx:223
-msgid "Image has been uploaded successfully"
-msgstr ""
+msgid "Image uploaded"
+msgstr "이미지 업로드됨"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:224
+msgid "Image has been uploaded successfully"
+msgstr "이미지가 성공적으로 업로드되었습니다."
+
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
-msgstr ""
+msgstr "업로드 오류"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
-msgstr ""
+msgstr "분명한"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
-msgstr ""
+msgstr "제출하다"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
-msgstr ""
+msgstr "기존 이미지에서 선택"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
-msgstr ""
+msgstr "이미지 선택"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
-msgstr ""
+msgstr "원격 이미지 다운로드"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
-msgstr ""
+msgstr "새 이미지 업로드"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
-msgstr ""
+msgstr "이미지 업로드하기"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
-msgstr ""
+msgstr "이미지 삭제"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
-msgstr ""
+msgstr "이미지 내려받기"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
-msgstr ""
+msgstr "이미지가 성공적으로 다운로드되었습니다."
#: src/components/details/PartIcons.tsx:43
#~ msgid "Part is a template part (variants can be made from this part)"
@@ -1418,41 +1460,41 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
-msgstr ""
+msgstr "이미지 업로드 실패"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
-msgstr ""
+msgstr "이미지가 성공적으로 업로드되었습니다."
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
-msgstr ""
+msgstr "메모가 성공적으로 저장되었습니다."
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
-msgstr ""
+msgstr "메모를 저장하지 못했습니다."
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
-msgstr ""
+msgstr "메모를 저장하는 중에 오류가 발생했습니다."
#: src/components/editors/NotesEditor.tsx:151
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
-msgstr ""
+msgstr "메모 저장"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
-msgstr ""
+msgstr "Close Editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
-msgstr ""
+msgstr "편집 활성화"
#: src/components/editors/NotesEditor.tsx:198
#~ msgid "Preview Notes"
@@ -1464,7 +1506,7 @@ msgstr ""
#: 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."
@@ -1472,23 +1514,23 @@ msgstr ""
#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:50
msgid "Error rendering preview"
-msgstr ""
+msgstr "미리보기 렌더링 오류"
#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
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:110
msgid "Error loading template"
-msgstr ""
+msgstr "템플릿을 로드하는 중에 오류가 발생했습니다."
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:122
msgid "Error saving template"
-msgstr ""
+msgstr "템플릿을 저장하는 중에 오류가 발생했습니다."
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151
#~ msgid "Save & Reload preview?"
@@ -1496,36 +1538,36 @@ msgstr ""
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:159
msgid "Could not load the template from the server."
-msgstr ""
+msgstr "서버에서 템플릿을 불러올 수 없습니다"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:176
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:319
msgid "Save & Reload Preview"
-msgstr ""
+msgstr "저장 후 미리보기 다시 불러오기"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:181
msgid "Are you sure you want to Save & Reload the preview?"
-msgstr ""
+msgstr "미리보기를 저장하고 다시 로드하시겠습니까?"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183
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:187
msgid "Save & Reload"
-msgstr ""
+msgstr "저장 후 다시 불러오기"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:219
msgid "Preview updated"
-msgstr ""
+msgstr "미리보기가 업데이트되었습니다"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:220
msgid "The preview has been updated successfully."
-msgstr ""
+msgstr "미리보기가 성공적으로 업데이트되었습니다"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:236
msgid "An unknown error occurred while rendering the preview."
-msgstr ""
+msgstr "미리보기를 렌더링하는 중 알 수 없는 오류가 발생했습니다"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263
#~ msgid "Save & Reload preview"
@@ -1533,15 +1575,15 @@ msgstr ""
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:311
msgid "Reload preview"
-msgstr ""
+msgstr "미리보기 새로고침"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:312
msgid "Use the currently stored template from the server"
-msgstr ""
+msgstr "서버에 현재 저장된 템플릿 사용"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:320
msgid "Save the current template and reload the preview"
-msgstr ""
+msgstr "현재 템플릿을 저장하고 미리보기를 다시 로드하세요."
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:322
#~ msgid "to preview"
@@ -1549,79 +1591,74 @@ msgstr ""
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
msgid "Select instance to preview"
-msgstr ""
+msgstr "미리볼 인스턴스 선택"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
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 ""
-
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-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:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
-msgstr ""
+msgstr "양식 오류"
#: src/components/forms/ApiForm.tsx:487
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
-msgstr ""
+msgstr "하나 이상의 입력 필드에 오류가 있습니다"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
-msgstr ""
+msgstr "업데이트"
#: src/components/forms/AuthenticationForm.tsx:48
#: src/components/forms/AuthenticationForm.tsx:74
@@ -1644,50 +1681,50 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:73
msgid "Login successful"
-msgstr ""
+msgstr "로그인 성공"
#: src/components/forms/AuthenticationForm.tsx:74
msgid "Logged in successfully"
-msgstr ""
+msgstr "성공적으로 로그인되었습니다"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
#: src/functions/auth.tsx:142
msgid "Login failed"
-msgstr ""
+msgstr "로그인 실패"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
-msgstr ""
+msgstr "입력 내용을 확인한 후 다시 시도하세요"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
-msgstr ""
+msgstr "메일 전달 성공"
#: src/components/forms/AuthenticationForm.tsx:101
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:105
msgid "Mail delivery failed"
-msgstr ""
+msgstr "메일 전달 실패"
#: src/components/forms/AuthenticationForm.tsx:125
msgid "Or continue with other methods"
-msgstr ""
+msgstr "또는 다른 방법으로 계속 진행"
#: src/components/forms/AuthenticationForm.tsx:136
#: src/components/forms/AuthenticationForm.tsx:296
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:64
#: src/pages/core/UserDetail.tsx:48
msgid "Username"
-msgstr ""
+msgstr "사용자 이름"
#: src/components/forms/AuthenticationForm.tsx:136
#~ msgid "I will use username and password"
@@ -1696,111 +1733,111 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:138
#: src/components/forms/AuthenticationForm.tsx:298
msgid "Your username"
-msgstr ""
+msgstr "사용자명"
#: src/components/forms/AuthenticationForm.tsx:143
#: src/components/forms/AuthenticationForm.tsx:311
#: src/pages/Auth/ResetPassword.tsx:34
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:195
msgid "Password"
-msgstr ""
+msgstr "비밀번호"
#: src/components/forms/AuthenticationForm.tsx:145
#: src/components/forms/AuthenticationForm.tsx:313
msgid "Your password"
-msgstr ""
+msgstr "귀하의 비밀번호"
#: src/components/forms/AuthenticationForm.tsx:164
msgid "Reset password"
-msgstr ""
+msgstr "비밀번호 재설정"
#: src/components/forms/AuthenticationForm.tsx:173
#: src/components/forms/AuthenticationForm.tsx:303
#: src/pages/Auth/Reset.tsx:17
#: src/pages/core/UserDetail.tsx:71
msgid "Email"
-msgstr ""
+msgstr "이메일"
#: src/components/forms/AuthenticationForm.tsx:174
#: src/pages/Auth/Reset.tsx:18
msgid "We will send you a link to login - if you are registered"
-msgstr ""
+msgstr "등록된 계정이 있으면 로그인 링크를 보내드립니다"
#: src/components/forms/AuthenticationForm.tsx:190
msgid "Send me an email"
-msgstr ""
+msgstr "나에게 이메일을 보내"
#: src/components/forms/AuthenticationForm.tsx:192
msgid "Use username and password"
-msgstr ""
+msgstr "사용자명과 비밀번호 사용"
#: src/components/forms/AuthenticationForm.tsx:201
msgid "Log In"
-msgstr ""
+msgstr "로그인"
#: src/components/forms/AuthenticationForm.tsx:203
#: src/pages/Auth/Reset.tsx:26
msgid "Send Email"
-msgstr ""
+msgstr "이메일 보내기"
#: src/components/forms/AuthenticationForm.tsx:239
msgid "Passwords do not match"
-msgstr ""
+msgstr "비밀번호가 일치하지 않습니다."
#: src/components/forms/AuthenticationForm.tsx:256
msgid "Registration successful"
-msgstr ""
+msgstr "가입이 완료되었습니다"
#: src/components/forms/AuthenticationForm.tsx:257
msgid "Please confirm your email address to complete the registration"
-msgstr ""
+msgstr "가입을 완료하려면 이메일 주소를 확인하세요"
#: src/components/forms/AuthenticationForm.tsx:280
msgid "Input error"
-msgstr ""
+msgstr "입력 오류"
#: src/components/forms/AuthenticationForm.tsx:281
msgid "Check your input and try again. "
-msgstr ""
+msgstr "입력 내용을 확인한 후 다시 시도하세요"
#: src/components/forms/AuthenticationForm.tsx:305
msgid "This will be used for a confirmation"
-msgstr ""
+msgstr "이 정보는 확인 용도로 사용됩니다"
#: src/components/forms/AuthenticationForm.tsx:318
msgid "Password repeat"
-msgstr ""
+msgstr "비밀번호 확인"
#: src/components/forms/AuthenticationForm.tsx:320
msgid "Repeat password"
-msgstr ""
+msgstr "비밀번호를 반복하세요"
#: src/components/forms/AuthenticationForm.tsx:332
#: src/pages/Auth/Login.tsx:128
#: src/pages/Auth/Register.tsx:13
msgid "Register"
-msgstr ""
+msgstr "가입"
#: src/components/forms/AuthenticationForm.tsx:338
msgid "Or use SSO"
-msgstr ""
+msgstr "아니면 SSO를 사용하세요"
#: src/components/forms/AuthenticationForm.tsx:348
msgid "Registration not active"
-msgstr ""
+msgstr "가입이 비활성화되어 있습니다"
#: src/components/forms/AuthenticationForm.tsx:349
msgid "This might be related to missing mail settings or could be a deliberate decision."
-msgstr ""
+msgstr "메일 설정이 없어서일 수도 있고 의도적인 설정일 수도 있습니다"
#: src/components/forms/DateTimeField.tsx:64
msgid "Select date and time"
-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
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1822,22 +1859,22 @@ msgstr ""
#: src/tables/settings/PendingTasksTable.tsx:37
#: src/tables/stock/LocationTypesTable.tsx:74
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
#: src/components/items/RoleTable.tsx:224
#: src/components/items/TransferList.tsx:215
#: src/components/items/TransferList.tsx:223
msgid "Save"
-msgstr ""
+msgstr "구하다"
#: src/components/forms/InstanceOptions.tsx:43
#~ msgid "Select destination instance"
@@ -1845,12 +1882,12 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:59
msgid "Select Server"
-msgstr ""
+msgstr "서버 선택"
#: src/components/forms/InstanceOptions.tsx:69
#: src/components/forms/InstanceOptions.tsx:93
msgid "Edit host options"
-msgstr ""
+msgstr "호스트 옵션 편집"
#: src/components/forms/InstanceOptions.tsx:71
#~ msgid "Edit possible host options"
@@ -1858,7 +1895,7 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:77
msgid "Save host selection"
-msgstr ""
+msgstr "호스트 선택 저장"
#: src/components/forms/InstanceOptions.tsx:98
#~ msgid "Version: {0}"
@@ -1877,118 +1914,128 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
-msgstr ""
+msgstr "섬기는 사람"
#: src/components/forms/InstanceOptions.tsx:131
#: src/components/plugins/PluginDrawer.tsx:88
#: src/tables/plugin/PluginListTable.tsx:127
msgid "Version"
-msgstr ""
+msgstr "버전"
#: src/components/forms/InstanceOptions.tsx:137
#: src/components/modals/AboutInvenTreeModal.tsx:119
#: src/components/modals/ServerInfoModal.tsx:34
msgid "API Version"
-msgstr ""
+msgstr "API 버전"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
-msgstr ""
+msgstr "플러그인"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
#: src/tables/stock/StockItemTestResultTable.tsx:420
msgid "Enabled"
-msgstr ""
+msgstr "활성화됨"
#: src/components/forms/InstanceOptions.tsx:144
msgid "Disabled"
-msgstr ""
+msgstr "장애가 있는"
#: src/components/forms/InstanceOptions.tsx:150
msgid "Worker"
-msgstr ""
+msgstr "노동자"
#: src/components/forms/InstanceOptions.tsx:151
#: src/tables/settings/FailedTasksTable.tsx:48
msgid "Stopped"
-msgstr ""
+msgstr "중지됨"
#: src/components/forms/InstanceOptions.tsx:151
msgid "Running"
-msgstr ""
+msgstr "달리기"
#: src/components/forms/fields/ApiFormField.tsx:206
msgid "Select file to upload"
-msgstr ""
+msgstr "업로드할 파일 선택"
#: src/components/forms/fields/AutoFillRightSection.tsx:47
msgid "Accept suggested value"
-msgstr ""
+msgstr "제안된 값 수락"
#: src/components/forms/fields/DateField.tsx:73
msgid "Select date"
-msgstr ""
+msgstr "날짜 선택"
#: src/components/forms/fields/IconField.tsx:83
msgid "No icon selected"
-msgstr ""
+msgstr "선택한 아이콘이 없습니다."
#: src/components/forms/fields/IconField.tsx:161
msgid "Uncategorized"
-msgstr ""
+msgstr "분류되지 않음"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:141
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
-msgstr ""
+msgstr "찾다..."
#: src/components/forms/fields/IconField.tsx:225
#: src/components/wizards/ImportPartWizard.tsx:304
msgid "Select category"
-msgstr ""
+msgstr "카테고리 선택"
#: src/components/forms/fields/IconField.tsx:234
msgid "Select pack"
-msgstr ""
+msgstr "패키지 선택"
#. placeholder {0}: filteredIcons.length
#: src/components/forms/fields/IconField.tsx:239
msgid "{0} icons"
-msgstr ""
+msgstr "{0} 아이콘"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
-msgstr ""
+msgstr "불러오는 중"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
+msgstr "결과를 찾을 수 없습니다"
+
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "목"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
msgstr ""
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
-msgstr ""
+msgstr "테이블에 modelRenderer 항목이 필요함"
#: src/components/forms/fields/TableField.tsx:187
msgid "No entries available"
-msgstr ""
+msgstr "사용할 수 있는 항목이 없습니다"
#: src/components/forms/fields/TableField.tsx:198
msgid "Add new row"
-msgstr ""
+msgstr "새 행 추가"
#: src/components/images/DetailsImage.tsx:252
#~ msgid "Select image"
@@ -1996,77 +2043,77 @@ msgstr ""
#: src/components/images/Thumbnail.tsx:12
msgid "Thumbnail"
-msgstr ""
+msgstr "썸네일"
#: src/components/importer/ImportDataSelector.tsx:198
msgid "Importing Rows"
-msgstr ""
+msgstr "행 가져오는 중"
#: src/components/importer/ImportDataSelector.tsx:199
msgid "Please wait while the data is imported"
-msgstr ""
+msgstr "데이터를 가져오는 동안 기다려 주세요"
#: src/components/importer/ImportDataSelector.tsx:216
msgid "An error occurred while importing data"
-msgstr ""
+msgstr "데이터 가져오기 중 오류가 발생했습니다"
#: src/components/importer/ImportDataSelector.tsx:237
msgid "Edit Data"
-msgstr ""
+msgstr "데이터 편집"
#: src/components/importer/ImportDataSelector.tsx:269
msgid "Delete Row"
-msgstr ""
+msgstr "행 삭제"
#: src/components/importer/ImportDataSelector.tsx:303
msgid "Row"
-msgstr ""
+msgstr "열"
#: src/components/importer/ImportDataSelector.tsx:321
msgid "Row contains errors"
-msgstr ""
+msgstr "행에 오류가 있습니다."
#: src/components/importer/ImportDataSelector.tsx:366
msgid "Accept"
-msgstr ""
+msgstr "수용하다"
#: src/components/importer/ImportDataSelector.tsx:399
msgid "Valid"
-msgstr ""
+msgstr "유효한"
#: src/components/importer/ImportDataSelector.tsx:400
msgid "Filter by row validation status"
-msgstr ""
+msgstr "행 검증 상태로 필터링"
#: src/components/importer/ImportDataSelector.tsx:405
#: src/components/wizards/WizardDrawer.tsx:113
#: src/tables/build/BuildOutputTable.tsx:582
msgid "Complete"
-msgstr ""
+msgstr "완벽한"
#: src/components/importer/ImportDataSelector.tsx:406
msgid "Filter by row completion status"
-msgstr ""
+msgstr "행 완료 상태로 필터링"
#: src/components/importer/ImportDataSelector.tsx:424
msgid "Import selected rows"
-msgstr ""
+msgstr "선택한 행 가져오기"
#: src/components/importer/ImportDataSelector.tsx:439
msgid "Processing Data"
-msgstr ""
+msgstr "데이터 처리"
#: src/components/importer/ImporterColumnSelector.tsx:56
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
-msgstr ""
+msgstr "오류가 발생했습니다"
#: src/components/importer/ImporterColumnSelector.tsx:69
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"
@@ -2082,55 +2129,55 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:253
msgid "Ignore this field"
-msgstr ""
+msgstr "이 필드를 무시하세요"
#: src/components/importer/ImporterColumnSelector.tsx:267
msgid "Mapping data columns to database fields"
-msgstr ""
+msgstr "데이터 열을 데이터베이스 필드에 매핑"
#: src/components/importer/ImporterColumnSelector.tsx:272
msgid "Accept Column Mapping"
-msgstr ""
+msgstr "열 매핑 적용"
#: src/components/importer/ImporterColumnSelector.tsx:285
msgid "Database Field"
-msgstr ""
+msgstr "데이터베이스 필드"
#: src/components/importer/ImporterColumnSelector.tsx:286
msgid "Field Description"
-msgstr ""
+msgstr "필드 설명"
#: src/components/importer/ImporterColumnSelector.tsx:287
msgid "Imported Column"
-msgstr ""
+msgstr "가져온 열"
#: src/components/importer/ImporterColumnSelector.tsx:288
msgid "Default Value"
-msgstr ""
+msgstr "기본값"
#: src/components/importer/ImporterDrawer.tsx:44
msgid "Upload File"
-msgstr ""
+msgstr "파일 업로드"
#: src/components/importer/ImporterDrawer.tsx:45
msgid "Map Columns"
-msgstr ""
+msgstr "지도 열"
#: src/components/importer/ImporterDrawer.tsx:46
msgid "Import Rows"
-msgstr ""
+msgstr "행 가져오기"
#: src/components/importer/ImporterDrawer.tsx:47
msgid "Process Data"
-msgstr ""
+msgstr "데이터 처리"
#: src/components/importer/ImporterDrawer.tsx:48
msgid "Complete Import"
-msgstr ""
+msgstr "가져오기 완료"
#: src/components/importer/ImporterDrawer.tsx:92
msgid "Failed to fetch import session data"
-msgstr ""
+msgstr "가져오기 세션 데이터를 불러오지 못했습니다"
#: src/components/importer/ImporterDrawer.tsx:97
#~ msgid "Cancel import session"
@@ -2138,20 +2185,20 @@ msgstr ""
#: src/components/importer/ImporterDrawer.tsx:114
msgid "Import Complete"
-msgstr ""
+msgstr "가져오기 완료"
#: src/components/importer/ImporterDrawer.tsx:117
msgid "Data has been imported successfully"
-msgstr ""
+msgstr "데이터를 성공적으로 가져왔습니다."
#: src/components/importer/ImporterDrawer.tsx:119
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
-msgstr ""
+msgstr "닫다"
#: src/components/importer/ImporterDrawer.tsx:119
#~ msgid "Import session has unknown status"
@@ -2159,7 +2206,7 @@ msgstr ""
#: src/components/importer/ImporterDrawer.tsx:138
msgid "Importing Data"
-msgstr ""
+msgstr "데이터 가져오기"
#: src/components/importer/ImporterImportProgress.tsx:36
#~ msgid "Importing Records"
@@ -2171,58 +2218,58 @@ msgstr ""
#: src/components/importer/ImporterStatus.tsx:19
msgid "Unknown Status"
-msgstr ""
+msgstr "알 수 없는 상태"
#: src/components/items/ActionDropdown.tsx:135
msgid "Options"
-msgstr ""
+msgstr "옵션"
#: src/components/items/ActionDropdown.tsx:162
#~ msgid "Link custom barcode"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
-msgstr ""
+msgstr "바코드 작업"
#: src/components/items/ActionDropdown.tsx:176
msgid "View Barcode"
-msgstr ""
+msgstr "바코드 보기"
#: src/components/items/ActionDropdown.tsx:178
msgid "View barcode"
-msgstr ""
+msgstr "바코드 보기"
#: src/components/items/ActionDropdown.tsx:184
msgid "Link Barcode"
-msgstr ""
+msgstr "링크바코드"
#: src/components/items/ActionDropdown.tsx:186
msgid "Link a custom barcode to this item"
-msgstr ""
+msgstr "이 항목에 맞춤 바코드 연결"
#: src/components/items/ActionDropdown.tsx:194
msgid "Unlink custom barcode"
-msgstr ""
+msgstr "사용자 지정 바코드 연결 해제"
#: src/components/items/ActionDropdown.tsx:246
msgid "Edit item"
-msgstr ""
+msgstr "항목 편집"
#: src/components/items/ActionDropdown.tsx:258
msgid "Delete item"
-msgstr ""
+msgstr "항목 삭제"
#: src/components/items/ActionDropdown.tsx:266
#: src/components/items/ActionDropdown.tsx:267
msgid "Hold"
-msgstr ""
+msgstr "잡고 있다"
#: src/components/items/ActionDropdown.tsx:290
msgid "Duplicate item"
-msgstr ""
+msgstr "중복된 항목"
#: src/components/items/BarcodeInput.tsx:24
#~ msgid "Scan barcode data here using barcode scanner"
@@ -2230,18 +2277,18 @@ msgstr ""
#: src/components/items/ColorToggle.tsx:17
msgid "Toggle color scheme"
-msgstr ""
+msgstr "색 구성표 전환"
#: src/components/items/DocTooltip.tsx:92
#: src/components/items/GettingStartedCarousel.tsx:20
msgid "Read More"
-msgstr ""
+msgstr "더 보기"
#: src/components/items/ErrorItem.tsx:8
#: src/functions/api.tsx:51
#: src/tables/settings/PendingTasksTable.tsx:80
msgid "Unknown error"
-msgstr ""
+msgstr "알 수 없는 오류"
#: src/components/items/ErrorItem.tsx:13
#~ msgid "An error occurred:"
@@ -2253,21 +2300,21 @@ msgstr ""
#: src/components/items/InfoItem.tsx:27
msgid "None"
-msgstr ""
+msgstr "없음"
#: src/components/items/InvenTreeLogo.tsx:36
#: src/components/items/InvenTreeLogo.tsx:40
msgid "InvenTree Logo"
-msgstr ""
+msgstr "InvenTree 로고"
#: src/components/items/LanguageSelect.tsx:44
msgid "Default Language"
-msgstr ""
+msgstr "기본 언어"
#: src/components/items/LanguageSelect.tsx:52
#: src/components/items/LanguageToggle.tsx:21
msgid "Select language"
-msgstr ""
+msgstr "언어 선택"
#: src/components/items/OnlyStaff.tsx:10
#: src/components/modals/AboutInvenTreeModal.tsx:50
@@ -2276,7 +2323,7 @@ msgstr ""
#: src/components/items/OnlyStaff.tsx:11
msgid "This information is only available for administrative 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."
@@ -2288,76 +2335,76 @@ msgstr ""
#: src/components/items/RoleTable.tsx:81
msgid "Updating"
-msgstr ""
+msgstr "업데이트 중"
#: src/components/items/RoleTable.tsx:82
msgid "Updating group roles"
-msgstr ""
+msgstr "그룹 역할 업데이트 중"
#: src/components/items/RoleTable.tsx:118
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
-msgstr ""
+msgstr "업데이트됨"
#: src/components/items/RoleTable.tsx:119
msgid "Group roles updated"
-msgstr ""
+msgstr "그룹 역할이 업데이트되었습니다."
#: src/components/items/RoleTable.tsx:135
msgid "Role"
-msgstr ""
+msgstr "역할"
#: src/components/items/RoleTable.tsx:140
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:906
msgid "View"
-msgstr ""
+msgstr "보다"
#: src/components/items/RoleTable.tsx:145
msgid "Change"
-msgstr ""
+msgstr "변화"
#: src/components/items/RoleTable.tsx:150
#: src/forms/StockForms.tsx:950
#: src/tables/stock/StockItemTestResultTable.tsx:368
msgid "Add"
-msgstr ""
+msgstr "추가하다"
#: src/components/items/RoleTable.tsx:203
msgid "Reset group roles"
-msgstr ""
+msgstr "그룹 역할 초기화"
#: src/components/items/RoleTable.tsx:212
msgid "Reset"
-msgstr ""
+msgstr "다시 놓기"
#: src/components/items/RoleTable.tsx:215
msgid "Save group roles"
-msgstr ""
+msgstr "그룹 역할 저장"
#: src/components/items/TransferList.tsx:65
msgid "No items"
-msgstr ""
+msgstr "항목 없음"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
#: src/tables/part/PartTable.tsx:138
#: src/tables/stock/StockItemTable.tsx:197
msgid "Available"
-msgstr ""
+msgstr "사용 가능"
#: src/components/items/TransferList.tsx:162
msgid "Selected"
-msgstr ""
+msgstr "선택된"
#: src/components/modals/AboutInvenTreeModal.tsx:103
#~ msgid "Your InvenTree version status is"
@@ -2365,31 +2412,31 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:113
msgid "InvenTree Version"
-msgstr ""
+msgstr "InvenTree 버전"
#: src/components/modals/AboutInvenTreeModal.tsx:125
msgid "Python Version"
-msgstr ""
+msgstr "Python 버전"
#: src/components/modals/AboutInvenTreeModal.tsx:130
msgid "Django Version"
-msgstr ""
+msgstr "장고 버전"
#: src/components/modals/AboutInvenTreeModal.tsx:139
msgid "Commit Hash"
-msgstr ""
+msgstr "커밋 해시"
#: src/components/modals/AboutInvenTreeModal.tsx:144
msgid "Commit Date"
-msgstr ""
+msgstr "커밋 날짜"
#: src/components/modals/AboutInvenTreeModal.tsx:149
msgid "Commit Branch"
-msgstr ""
+msgstr "커밋 브랜치"
#: src/components/modals/AboutInvenTreeModal.tsx:160
msgid "Version Information"
-msgstr ""
+msgstr "버전 정보"
#: src/components/modals/AboutInvenTreeModal.tsx:165
#~ msgid "Credits"
@@ -2401,7 +2448,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:169
msgid "Links"
-msgstr ""
+msgstr "모래밭"
#: src/components/modals/AboutInvenTreeModal.tsx:169
#~ msgid "View Code on GitHub"
@@ -2411,19 +2458,19 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:208
#: src/defaults/actions.tsx:49
msgid "Documentation"
-msgstr ""
+msgstr "선적 서류 비치"
#: src/components/modals/AboutInvenTreeModal.tsx:176
msgid "Source Code"
-msgstr ""
+msgstr "소스 코드"
#: src/components/modals/AboutInvenTreeModal.tsx:177
msgid "Mobile App"
-msgstr ""
+msgstr "모바일 앱"
#: src/components/modals/AboutInvenTreeModal.tsx:178
msgid "Submit Bug Report"
-msgstr ""
+msgstr "버그 신고 제출"
#: src/components/modals/AboutInvenTreeModal.tsx:189
#: src/components/modals/ServerInfoModal.tsx:147
@@ -2432,39 +2479,39 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:190
msgid "Copy version information"
-msgstr ""
+msgstr "버전 정보 복사"
#: src/components/modals/AboutInvenTreeModal.tsx:210
msgid "Development Version"
-msgstr ""
+msgstr "개발 버전"
#: src/components/modals/AboutInvenTreeModal.tsx:212
msgid "Up to Date"
-msgstr ""
+msgstr "최신"
#: src/components/modals/AboutInvenTreeModal.tsx:214
msgid "Update Available"
-msgstr ""
+msgstr "업데이트 사용 가능"
#: src/components/modals/LicenseModal.tsx:41
msgid "No license text available"
-msgstr ""
+msgstr "사용 가능한 라이센스 텍스트가 없습니다."
#: src/components/modals/LicenseModal.tsx:48
msgid "No Information provided - this is likely a server issue"
-msgstr ""
+msgstr "제공된 정보가 없습니다. 서버 문제일 가능성이 높습니다."
#: src/components/modals/LicenseModal.tsx:81
msgid "Loading license information"
-msgstr ""
+msgstr "라이선스 정보 불러오는 중"
#: src/components/modals/LicenseModal.tsx:87
msgid "Failed to fetch license information"
-msgstr ""
+msgstr "라이선스 정보를 불러오지 못했습니다"
#: src/components/modals/LicenseModal.tsx:99
msgid "{key} Packages"
-msgstr ""
+msgstr "{key} 패키지"
#: src/components/modals/QrCodeModal.tsx:24
#~ msgid "Unknown response"
@@ -2480,11 +2527,11 @@ msgstr ""
#: src/components/modals/ServerInfoModal.tsx:22
msgid "Instance Name"
-msgstr ""
+msgstr "인스턴스 이름"
#: src/components/modals/ServerInfoModal.tsx:28
msgid "Server Version"
-msgstr ""
+msgstr "서버 버전"
#: src/components/modals/ServerInfoModal.tsx:38
#~ msgid "Bebug Mode"
@@ -2492,66 +2539,66 @@ msgstr ""
#: src/components/modals/ServerInfoModal.tsx:40
msgid "Database"
-msgstr ""
+msgstr "데이터 베이스"
#: src/components/modals/ServerInfoModal.tsx:49
#: src/components/nav/Alerts.tsx:120
msgid "Debug Mode"
-msgstr ""
+msgstr "디버그 모드"
#: src/components/modals/ServerInfoModal.tsx:54
msgid "Server is running in debug mode"
-msgstr ""
+msgstr "서버가 디버그 모드에서 실행 중입니다."
#: src/components/modals/ServerInfoModal.tsx:62
msgid "Docker Mode"
-msgstr ""
+msgstr "Docker 모드"
#: src/components/modals/ServerInfoModal.tsx:65
msgid "Server is deployed using docker"
-msgstr ""
+msgstr "서버는 docker를 사용하여 배포됩니다."
#: src/components/modals/ServerInfoModal.tsx:71
msgid "Plugin Support"
-msgstr ""
+msgstr "플러그인 지원"
#: src/components/modals/ServerInfoModal.tsx:76
msgid "Plugin support enabled"
-msgstr ""
+msgstr "플러그인 지원 활성화됨"
#: src/components/modals/ServerInfoModal.tsx:78
msgid "Plugin support disabled"
-msgstr ""
+msgstr "플러그인 지원 비활성화됨"
#: src/components/modals/ServerInfoModal.tsx:85
msgid "Server status"
-msgstr ""
+msgstr "서버 상태"
#: src/components/modals/ServerInfoModal.tsx:91
msgid "Healthy"
-msgstr ""
+msgstr "건강한"
#: src/components/modals/ServerInfoModal.tsx:93
msgid "Issues detected"
-msgstr ""
+msgstr "발견된 문제"
#: src/components/modals/ServerInfoModal.tsx:102
#: src/components/nav/Alerts.tsx:127
msgid "Background Worker"
-msgstr ""
+msgstr "백그라운드 작업자"
#: src/components/modals/ServerInfoModal.tsx:107
msgid "The background worker process is not running"
-msgstr ""
+msgstr "백그라운드 작업자 프로세스가 실행되고 있지 않습니다."
#: src/components/modals/ServerInfoModal.tsx:107
#~ msgid "The Background worker process is not running."
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
-msgstr ""
+msgstr "이메일 설정"
#: src/components/modals/ServerInfoModal.tsx:118
#~ msgid "Email settings not configured"
@@ -2560,77 +2607,77 @@ msgstr ""
#: src/components/modals/ServerInfoModal.tsx:120
#: src/components/nav/Alerts.tsx:143
msgid "Email settings not configured."
-msgstr ""
+msgstr "이메일 설정이 구성되지 않았습니다"
#: src/components/nav/Alerts.tsx:57
msgid "Alerts"
-msgstr ""
+msgstr "경고"
#: src/components/nav/Alerts.tsx:97
msgid "No issues detected"
-msgstr ""
+msgstr "감지된 문제 없음"
#: src/components/nav/Alerts.tsx:122
msgid "The server is running in debug mode."
-msgstr ""
+msgstr "서버가 디버그 모드로 실행 중입니다"
#: src/components/nav/Alerts.tsx:129
msgid "The background worker process is not running."
-msgstr ""
+msgstr "백그라운드 워커 프로세스가 실행 중이 아닙니다"
#: src/components/nav/Alerts.tsx:134
msgid "Server Restart"
-msgstr ""
+msgstr "서버 재시작"
#: src/components/nav/Alerts.tsx:136
msgid "The server requires a restart to apply changes."
-msgstr ""
+msgstr "변경 사항을 적용하려면 서버를 재시작해야 합니다"
#: src/components/nav/Alerts.tsx:141
msgid "Email settings"
-msgstr ""
+msgstr "이메일 설정"
#: src/components/nav/Alerts.tsx:148
msgid "Database Migrations"
-msgstr ""
+msgstr "데이터베이스 마이그레이션"
#: src/components/nav/Alerts.tsx:150
msgid "There are pending database migrations."
-msgstr ""
+msgstr "대기 중인 데이터베이스 마이그레이션이 있습니다"
#: src/components/nav/Alerts.tsx:165
msgid "Learn more about {code}"
-msgstr ""
+msgstr "{code}에 대해 더 알아보기"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
-msgstr ""
+msgstr "알림"
#: src/components/nav/Header.tsx:216
#~ msgid "Administrator Mode"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
-msgstr ""
+msgid "Superuser Mode"
+msgstr "수퍼유저 모드"
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
-msgstr ""
+msgid "Admin Mode"
+msgstr "관리 모드"
#: src/components/nav/Header.tsx:237
msgid "The current user has elevated privileges and should not be used for regular usage."
-msgstr ""
+msgstr "현재 사용자는 높은 권한을 가지고 있으므로 일반적인 용도로 사용하면 안 됩니다"
#: src/components/nav/Layout.tsx:144
msgid "Nothing found..."
-msgstr ""
+msgstr "찾을 수 없음..."
#: src/components/nav/MainMenu.tsx:40
#: src/pages/Index/Profile/Profile.tsx:15
@@ -2642,7 +2689,7 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx:21
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:39
msgid "Settings"
-msgstr ""
+msgstr "설정"
#: src/components/nav/MainMenu.tsx:59
#: src/defaults/menuItems.tsx:15
@@ -2653,10 +2700,10 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
-msgstr ""
+msgstr "사용자 설정"
#: src/components/nav/MainMenu.tsx:61
#: src/pages/Index/Settings/UserSettings.tsx:145
@@ -2671,10 +2718,10 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
-msgstr ""
+msgstr "시스템 설정"
#: src/components/nav/MainMenu.tsx:71
#~ msgid "Switch to pseudo language"
@@ -2684,21 +2731,21 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
-msgstr ""
+msgstr "관리 센터"
#: src/components/nav/MainMenu.tsx:99
#: src/defaults/actions.tsx:58
#: src/defaults/links.tsx:140
#: src/defaults/links.tsx:186
msgid "About InvenTree"
-msgstr ""
+msgstr "InvenTree 소개"
#: src/components/nav/MainMenu.tsx:108
msgid "Logout"
-msgstr ""
+msgstr "로그아웃"
#: src/components/nav/NavHoverMenu.tsx:84
#~ msgid "View all"
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
-msgstr ""
+msgstr "재고"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
-msgstr ""
+msgstr "조작"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2747,85 +2796,86 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:568
#: src/pages/purchasing/PurchasingIndex.tsx:214
msgid "Purchasing"
-msgstr ""
+msgstr "구매"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
#: src/pages/sales/SalesOrderDetail.tsx:634
#: src/pages/sales/SalesOrderShipmentDetail.tsx:442
msgid "Sales"
-msgstr ""
+msgstr "매상"
#: src/components/nav/NavigationDrawer.tsx:180
msgid "Navigation"
-msgstr ""
+msgstr "탐색"
#: src/components/nav/NavigationDrawer.tsx:214
msgid "About"
-msgstr ""
+msgstr "에 대한"
#: src/components/nav/NavigationTree.tsx:212
msgid "Error loading navigation tree."
-msgstr ""
+msgstr "탐색 트리를 불러오는 중 오류가 발생했습니다"
#: src/components/nav/NotificationDrawer.tsx:183
#: src/pages/Notifications.tsx:74
msgid "Mark all as read"
-msgstr ""
+msgstr "모두 읽음으로 표시"
#: src/components/nav/NotificationDrawer.tsx:193
msgid "View all notifications"
-msgstr ""
+msgstr "모든 알림 보기"
#: src/components/nav/NotificationDrawer.tsx:216
msgid "You have no unread notifications."
-msgstr ""
+msgstr "읽지 않은 알림이 없습니다"
#: src/components/nav/NotificationDrawer.tsx:238
msgid "Error loading notifications."
-msgstr ""
+msgstr "알림을 불러오는 중 오류가 발생했습니다"
#: src/components/nav/SearchDrawer.tsx:111
msgid "No Overview Available"
-msgstr ""
+msgstr "사용 가능한 개요 없음"
#: src/components/nav/SearchDrawer.tsx:112
msgid "No overview available for this model type"
-msgstr ""
+msgstr "이 모델 유형에는 표시할 개요가 없습니다"
#: src/components/nav/SearchDrawer.tsx:130
msgid "View all results"
-msgstr ""
+msgstr "모든 결과 보기"
#: src/components/nav/SearchDrawer.tsx:145
msgid "results"
-msgstr ""
+msgstr "결과"
#: src/components/nav/SearchDrawer.tsx:149
msgid "Remove search group"
-msgstr ""
+msgstr "검색 그룹 제거"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
-msgstr ""
+msgstr "공급자"
#: src/components/nav/SearchDrawer.tsx:314
#: src/pages/part/PartSupplierDetail.tsx:23
#: src/pages/purchasing/PurchasingIndex.tsx:150
msgid "Manufacturers"
-msgstr ""
+msgstr "제조사"
#: src/components/nav/SearchDrawer.tsx:324
#: src/pages/sales/SalesIndex.tsx:133
msgid "Customers"
-msgstr ""
+msgstr "고객"
#: src/components/nav/SearchDrawer.tsx:462
#~ msgid "No results"
@@ -2833,124 +2883,128 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:493
msgid "Enter search text"
-msgstr ""
+msgstr "검색어를 입력하세요"
#: src/components/nav/SearchDrawer.tsx:504
msgid "Refresh search results"
-msgstr ""
+msgstr "검색 결과 새로 고침"
#: src/components/nav/SearchDrawer.tsx:515
#: src/components/nav/SearchDrawer.tsx:522
msgid "Search Options"
-msgstr ""
+msgstr "검색 옵션"
#: src/components/nav/SearchDrawer.tsx:525
msgid "Whole word search"
-msgstr ""
+msgstr "단어 전체 검색"
#: src/components/nav/SearchDrawer.tsx:534
msgid "Regex search"
-msgstr ""
+msgstr "정규식 검색"
#: src/components/nav/SearchDrawer.tsx:543
msgid "Notes search"
-msgstr ""
+msgstr "메모 검색"
#: src/components/nav/SearchDrawer.tsx:591
msgid "An error occurred during search query"
-msgstr ""
+msgstr "검색 요청 중 오류가 발생했습니다"
#: src/components/nav/SearchDrawer.tsx:602
#: src/tables/part/PartTestTemplateTable.tsx:82
msgid "No Results"
-msgstr ""
+msgstr "결과 없음"
#: src/components/nav/SearchDrawer.tsx:605
msgid "No results available for search query"
-msgstr ""
+msgstr "검색어에 대한 결과가 없습니다"
#: src/components/panels/AttachmentPanel.tsx:18
msgid "Attachments"
-msgstr ""
+msgstr "첨부파일"
#: src/components/panels/NotesPanel.tsx:25
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:267
msgid "Notes"
-msgstr ""
+msgstr "메모"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
+msgstr "플러그인 제공"
+
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
-msgstr ""
+msgstr "패널 축소"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
-msgstr ""
+msgstr "패널 확장"
#: src/components/plugins/LocateItemButton.tsx:68
#: src/components/plugins/LocateItemButton.tsx:88
msgid "Locate Item"
-msgstr ""
+msgstr "항목 찾기"
#: src/components/plugins/LocateItemButton.tsx:70
msgid "Item location requested"
-msgstr ""
+msgstr "항목 위치 조회 요청됨"
#: src/components/plugins/PluginDrawer.tsx:47
msgid "Plugin Inactive"
-msgstr ""
+msgstr "플러그인 비활성 상태"
#: src/components/plugins/PluginDrawer.tsx:50
msgid "Plugin is not active"
-msgstr ""
+msgstr "플러그인이 활성화되지 않았습니다"
#: src/components/plugins/PluginDrawer.tsx:59
msgid "Plugin Information"
-msgstr ""
+msgstr "플러그인 정보"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
#: src/tables/plugin/PluginListTable.tsx:110
msgid "Description"
-msgstr ""
+msgstr "설명"
#: src/components/plugins/PluginDrawer.tsx:78
msgid "Author"
-msgstr ""
+msgstr "작가"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
-msgstr ""
+msgstr "날짜"
#: src/components/plugins/PluginDrawer.tsx:93
#: src/forms/selectionListFields.tsx:103
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2967,21 +3021,21 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:401
#: src/tables/stock/StockItemTable.tsx:176
msgid "Active"
-msgstr ""
+msgstr "활동적인"
#: src/components/plugins/PluginDrawer.tsx:99
#: src/pages/company/CompanyDetail.tsx:100
#: src/tables/plugin/PluginListTable.tsx:140
msgid "Website"
-msgstr ""
+msgstr "웹사이트"
#: src/components/plugins/PluginDrawer.tsx:113
msgid "Package Name"
-msgstr ""
+msgstr "패키지 이름"
#: src/components/plugins/PluginDrawer.tsx:119
msgid "Installation Path"
-msgstr ""
+msgstr "설치 경로"
#: src/components/plugins/PluginDrawer.tsx:124
#: src/tables/machine/MachineTypeTable.tsx:182
@@ -2989,18 +3043,17 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:101
#: src/tables/plugin/PluginListTable.tsx:425
msgid "Builtin"
-msgstr ""
+msgstr "내장"
#: src/components/plugins/PluginDrawer.tsx:129
msgid "Package"
-msgstr ""
+msgstr "패키지"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
-msgstr ""
+msgstr "플러그인 설정"
#: src/components/plugins/PluginPanel.tsx:87
#~ msgid "Error occurred while rendering plugin content"
@@ -3029,31 +3082,31 @@ msgstr ""
#: src/components/plugins/PluginUIFeature.tsx:103
msgid "Error occurred while rendering the template editor."
-msgstr ""
+msgstr "템플릿 편집기를 렌더링하는 중 오류가 발생했습니다"
#: src/components/plugins/PluginUIFeature.tsx:120
msgid "Error Loading Plugin Editor"
-msgstr ""
+msgstr "플러그인 편집기 불러오기 오류"
#: src/components/plugins/PluginUIFeature.tsx:158
msgid "Error occurred while rendering the template preview."
-msgstr ""
+msgstr "템플릿 미리보기를 렌더링하는 중 오류가 발생했습니다"
#: src/components/plugins/PluginUIFeature.tsx:169
msgid "Error Loading Plugin Preview"
-msgstr ""
+msgstr "플러그인 미리보기 불러오기 오류"
#: src/components/plugins/RemoteComponent.tsx:111
msgid "Invalid source or function name"
-msgstr ""
+msgstr "잘못된 소스 또는 함수 이름"
#: src/components/plugins/RemoteComponent.tsx:143
msgid "Error Loading Content"
-msgstr ""
+msgstr "콘텐츠 불러오기 오류"
#: src/components/plugins/RemoteComponent.tsx:147
msgid "Error occurred while loading plugin content"
-msgstr ""
+msgstr "플러그인 콘텐츠를 불러오는 중 오류가 발생했습니다"
#: src/components/render/Instance.tsx:238
#~ msgid "Unknown model: {model}"
@@ -3061,7 +3114,7 @@ msgstr ""
#: src/components/render/Instance.tsx:259
msgid "Unknown model: {model_name}"
-msgstr ""
+msgstr "알 수 없는 모델: {model_name}"
#: src/components/render/ModelType.tsx:234
#~ msgid "Purchase Order Line Item"
@@ -3082,7 +3135,7 @@ msgstr ""
#: src/components/render/Order.tsx:122
#: src/tables/sales/SalesOrderAllocationTable.tsx:172
msgid "Shipment"
-msgstr ""
+msgstr "선적"
#: src/components/render/Part.tsx:28
#: src/components/render/Plugin.tsx:17
@@ -3090,64 +3143,64 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
-msgstr ""
+msgstr "비활성"
#: src/components/render/Part.tsx:31
#: src/tables/part/PartTable.tsx:282
#: src/tables/part/PartVariantTable.tsx:25
msgid "Virtual"
-msgstr ""
+msgstr "가상"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
-msgstr ""
+msgstr "재고 없음"
#: src/components/render/Part.tsx:47
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
-msgstr ""
+msgstr "주문시"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
-msgstr ""
+msgstr "생산 중"
#: src/components/render/Part.tsx:74
#: src/tables/stock/StockTrackingTable.tsx:261
msgid "Details"
-msgstr ""
+msgstr "상세 정보"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
-msgstr ""
+msgstr "카테고리"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
-msgstr ""
+msgstr "위치"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
-msgstr ""
+msgstr "시리얼 번호"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3200,12 +3255,12 @@ msgstr ""
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:69
#: src/tables/stock/StockTrackingTable.tsx:104
msgid "Quantity"
-msgstr ""
+msgstr "수량"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3217,7 +3272,7 @@ msgstr ""
#: src/forms/StockForms.tsx:1189
#: src/tables/build/BuildLineTable.tsx:96
msgid "Batch"
-msgstr ""
+msgstr "일괄"
#: src/components/settings/ConfigValueList.tsx:33
#~ msgid "<0>{0}0> is set via {1} and was last set {2}"
@@ -3225,21 +3280,21 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:36
msgid "Setting"
-msgstr ""
+msgstr "환경"
#: src/components/settings/ConfigValueList.tsx:39
msgid "Source"
-msgstr ""
+msgstr "원천"
#: src/components/settings/QuickAction.tsx:47
msgid "Act"
-msgstr ""
+msgstr "행동"
#: src/components/settings/QuickAction.tsx:73
#: src/components/settings/QuickAction.tsx:113
#: src/tables/settings/ProjectCodeTable.tsx:46
msgid "Add Project Code"
-msgstr ""
+msgstr "프로젝트 코드 추가"
#: src/components/settings/QuickAction.tsx:78
#: src/components/settings/QuickAction.tsx:124
@@ -3247,63 +3302,63 @@ msgstr ""
#: src/tables/settings/CustomStateTable.tsx:140
#: src/tables/settings/CustomStateTable.tsx:202
msgid "Add State"
-msgstr ""
+msgstr "상태 추가"
#: src/components/settings/QuickAction.tsx:85
msgid "Open an Issue"
-msgstr ""
+msgstr "이슈 열기"
#: src/components/settings/QuickAction.tsx:86
msgid "Report a bug or request a feature on GitHub"
-msgstr ""
+msgstr "GitHub에서 버그를 신고하거나 기능을 요청하세요"
#: src/components/settings/QuickAction.tsx:88
msgid "Open Issue"
-msgstr ""
+msgstr "공개 이슈"
#: src/components/settings/QuickAction.tsx:97
msgid "Add New Group"
-msgstr ""
+msgstr "새 그룹 추가"
#: src/components/settings/QuickAction.tsx:98
msgid "Create a new group to manage your users"
-msgstr ""
+msgstr "사용자를 관리할 새 그룹 만들기"
#: src/components/settings/QuickAction.tsx:100
msgid "New Group"
-msgstr ""
+msgstr "새 그룹"
#: src/components/settings/QuickAction.tsx:105
msgid "Add New User"
-msgstr ""
+msgstr "새 사용자 추가"
#: src/components/settings/QuickAction.tsx:106
msgid "Create a new user to manage your groups"
-msgstr ""
+msgstr "그룹을 관리할 새 사용자 만들기"
#: src/components/settings/QuickAction.tsx:108
msgid "New User"
-msgstr ""
+msgstr "신규 사용자"
#: src/components/settings/QuickAction.tsx:114
msgid "Create a new project code to organize your items"
-msgstr ""
+msgstr "항목을 정리할 새 프로젝트 코드 만들기"
#: src/components/settings/QuickAction.tsx:116
msgid "Add Code"
-msgstr ""
+msgstr "코드 추가"
#: src/components/settings/QuickAction.tsx:121
msgid "Add Custom State"
-msgstr ""
+msgstr "사용자 지정 상태 추가"
#: src/components/settings/QuickAction.tsx:122
msgid "Create a new custom state for your workflow"
-msgstr ""
+msgstr "워크플로용 새 사용자 지정 상태 만들기"
#: src/components/settings/SettingItem.tsx:33
msgid "Do you want to proceed to change this setting?"
-msgstr ""
+msgstr "이 설정을 변경하시겠습니까?"
#: src/components/settings/SettingItem.tsx:47
#: src/components/settings/SettingItem.tsx:100
@@ -3312,44 +3367,44 @@ msgstr ""
#: src/components/settings/SettingItem.tsx:221
msgid "This setting requires confirmation"
-msgstr ""
+msgstr "이 설정에는 확인이 필요합니다"
#: src/components/settings/SettingList.tsx:74
msgid "Edit Setting"
-msgstr ""
+msgstr "설정 편집"
#: src/components/settings/SettingList.tsx:87
msgid "Setting {key} updated successfully"
-msgstr ""
+msgstr "설정 {key}가 성공적으로 업데이트되었습니다"
#: src/components/settings/SettingList.tsx:120
msgid "Setting updated"
-msgstr ""
+msgstr "설정이 업데이트되었습니다."
#. placeholder {0}: setting.key
#: src/components/settings/SettingList.tsx:121
msgid "Setting {0} updated successfully"
-msgstr ""
+msgstr "설정 {0}이 성공적으로 업데이트되었습니다"
#: src/components/settings/SettingList.tsx:130
msgid "Error editing setting"
-msgstr ""
+msgstr "설정 편집 중 오류 발생"
#: src/components/settings/SettingList.tsx:146
msgid "Error loading settings"
-msgstr ""
+msgstr "설정을 불러오는 중 오류 발생"
#: src/components/settings/SettingList.tsx:157
msgid "No Settings"
-msgstr ""
+msgstr "설정 없음"
#: src/components/settings/SettingList.tsx:158
msgid "There are no configurable settings available"
-msgstr ""
+msgstr "구성 가능한 설정이 없습니다."
#: src/components/settings/SettingList.tsx:197
msgid "No settings specified"
-msgstr ""
+msgstr "지정된 설정이 없습니다."
#: src/components/tables/FilterGroup.tsx:29
#~ msgid "Add table filter"
@@ -3709,15 +3764,15 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:105
msgid "Exact Match"
-msgstr ""
+msgstr "정확한 일치"
#: src/components/wizards/ImportPartWizard.tsx:112
msgid "Current part"
-msgstr ""
+msgstr "현재 부분"
#: src/components/wizards/ImportPartWizard.tsx:118
msgid "Already Imported"
-msgstr ""
+msgstr "이미 가져옴"
#: src/components/wizards/ImportPartWizard.tsx:205
#: src/pages/company/CompanyDetail.tsx:137
@@ -3733,116 +3788,116 @@ msgstr ""
#: src/tables/purchasing/PurchaseOrderTable.tsx:122
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:40
msgid "Supplier"
-msgstr ""
+msgstr "공급자"
#: src/components/wizards/ImportPartWizard.tsx:221
#: src/forms/StockForms.tsx:622
msgid "Loading..."
-msgstr ""
+msgstr "불러오는 중..."
#: src/components/wizards/ImportPartWizard.tsx:223
msgid "Error fetching suppliers"
-msgstr ""
+msgstr "공급업체를 불러오는 중 오류 발생"
#: src/components/wizards/ImportPartWizard.tsx:224
msgid "Select supplier"
-msgstr ""
+msgstr "공급업체 선택"
#. placeholder {0}: searchResults.length
#: src/components/wizards/ImportPartWizard.tsx:246
msgid "Found {0} results"
-msgstr ""
+msgstr "{0}개 결과를 찾았습니다."
#: src/components/wizards/ImportPartWizard.tsx:259
msgid "Import this part"
-msgstr ""
+msgstr "이 부분을 가져옵니다"
#: src/components/wizards/ImportPartWizard.tsx:313
msgid "Are you sure you want to import this part into the selected category now?"
-msgstr ""
+msgstr "이 부품을 선택한 카테고리로 지금 가져오시겠습니까?"
#: src/components/wizards/ImportPartWizard.tsx:326
msgid "Import Now"
-msgstr ""
+msgstr "지금 가져오기"
#: src/components/wizards/ImportPartWizard.tsx:372
msgid "Select and edit the parameters you want to add to this part."
-msgstr ""
+msgstr "이 부품에 추가할 파라미터를 선택하고 편집하세요"
#: src/components/wizards/ImportPartWizard.tsx:379
msgid "Default category parameters"
-msgstr ""
+msgstr "기본 카테고리 파라미터"
#: src/components/wizards/ImportPartWizard.tsx:391
msgid "Other parameters"
-msgstr ""
+msgstr "기타 파라미터"
#: src/components/wizards/ImportPartWizard.tsx:446
msgid "Add a new parameter"
-msgstr ""
+msgstr "새 파라미터 추가"
#: src/components/wizards/ImportPartWizard.tsx:468
msgid "Skip"
-msgstr ""
+msgstr "건너뛰다"
#: src/components/wizards/ImportPartWizard.tsx:476
msgid "Create Parameters"
-msgstr ""
+msgstr "파라미터 생성"
#: src/components/wizards/ImportPartWizard.tsx:493
msgid "Create initial stock for the imported part."
-msgstr ""
+msgstr "가져온 부품의 초기 재고를 생성합니다"
#: src/components/wizards/ImportPartWizard.tsx:511
msgid "Next"
-msgstr ""
+msgstr "다음"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
-msgstr ""
+msgstr "부품 편집"
#: src/components/wizards/ImportPartWizard.tsx:567
msgid "Part imported successfully!"
-msgstr ""
+msgstr "부품을 성공적으로 가져왔습니다!"
#: src/components/wizards/ImportPartWizard.tsx:576
msgid "Failed to import part: "
-msgstr ""
+msgstr "부품 가져오기에 실패했습니다:"
#: src/components/wizards/ImportPartWizard.tsx:641
msgid "Are you sure, you want to import the supplier and manufacturer part into this part?"
-msgstr ""
+msgstr "공급업체 부품과 제조사 부품을 이 부품으로 가져오시겠습니까?"
#: src/components/wizards/ImportPartWizard.tsx:655
msgid "Import"
-msgstr ""
+msgstr "수입"
#: src/components/wizards/ImportPartWizard.tsx:692
msgid "Parameters created successfully!"
-msgstr ""
+msgstr "파라미터가 성공적으로 생성되었습니다!"
#: src/components/wizards/ImportPartWizard.tsx:720
msgid "Failed to create parameters, please fix the errors and try again"
-msgstr ""
+msgstr "파라미터 생성에 실패했습니다. 오류를 수정한 뒤 다시 시도하세요"
#. placeholder {0}: supplierPart?.supplier
#: src/components/wizards/ImportPartWizard.tsx:740
msgid "Part imported successfully from supplier {0}."
-msgstr ""
+msgstr "공급업체 {0}에서 부품을 성공적으로 가져왔습니다"
#: src/components/wizards/ImportPartWizard.tsx:753
msgid "Open Part"
-msgstr ""
+msgstr "부품 열기"
#: src/components/wizards/ImportPartWizard.tsx:760
msgid "Open Supplier Part"
-msgstr ""
+msgstr "공급업체 부품 열기"
#: src/components/wizards/ImportPartWizard.tsx:767
msgid "Open Manufacturer Part"
-msgstr ""
+msgstr "제조사 부품 열기"
#: src/components/wizards/ImportPartWizard.tsx:797
#: src/tables/part/PartTable.tsx:499
@@ -3851,35 +3906,35 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:803
msgid "Import Supplier Part"
-msgstr ""
+msgstr "공급업체 부품 가져오기"
#: src/components/wizards/ImportPartWizard.tsx:805
msgid "Search Supplier Part"
-msgstr ""
+msgstr "공급업체 부품 검색"
#: src/components/wizards/ImportPartWizard.tsx:807
msgid "Confirm import"
-msgstr ""
+msgstr "가져오기 확인"
#: src/components/wizards/ImportPartWizard.tsx:809
msgid "Done"
-msgstr ""
+msgstr "완료"
#: src/components/wizards/OrderPartsWizard.tsx:75
msgid "Error fetching part requirements"
-msgstr ""
+msgstr "부품 요구사항을 불러오는 중 오류 발생"
#: src/components/wizards/OrderPartsWizard.tsx:113
msgid "Requirements"
-msgstr ""
+msgstr "요구사항"
#: src/components/wizards/OrderPartsWizard.tsx:117
msgid "Build Requirements"
-msgstr ""
+msgstr "생산 요구 사항"
#: src/components/wizards/OrderPartsWizard.tsx:123
msgid "Sales Requirements"
-msgstr ""
+msgstr "판매 요건"
#: src/components/wizards/OrderPartsWizard.tsx:129
#: src/forms/StockForms.tsx:903
@@ -3891,111 +3946,111 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
-msgstr ""
+msgstr "재고 있음"
#: src/components/wizards/OrderPartsWizard.tsx:146
#: src/tables/build/BuildLineTable.tsx:406
msgid "Required Quantity"
-msgstr ""
-
-#: src/components/wizards/OrderPartsWizard.tsx:203
-msgid "New Purchase Order"
-msgstr ""
+msgstr "필요한 수량"
#: src/components/wizards/OrderPartsWizard.tsx:205
-msgid "Purchase order created"
-msgstr ""
+msgid "New Purchase Order"
+msgstr "새 발주서"
-#: src/components/wizards/OrderPartsWizard.tsx:217
-msgid "New Supplier Part"
-msgstr ""
+#: src/components/wizards/OrderPartsWizard.tsx:207
+msgid "Purchase order created"
+msgstr "발주서가 생성되었습니다"
#: src/components/wizards/OrderPartsWizard.tsx:219
+msgid "New Supplier Part"
+msgstr "새 공급업체 부품"
+
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
-msgstr ""
+msgstr "생성된 협력업체 부품"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
-msgstr ""
+msgstr "발주서에 추가"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
-msgstr ""
+msgstr "부품이 발주서에 추가되었습니다"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
-msgstr ""
-
-#: src/components/wizards/OrderPartsWizard.tsx:323
-msgid "Copy supplier part number"
-msgstr ""
+msgstr "협력업체 부품 선택"
#: src/components/wizards/OrderPartsWizard.tsx:326
+msgid "Copy supplier part number"
+msgstr "공급업체 부품 번호 복사"
+
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
-msgstr ""
+msgstr "새로운 공급업체 부품"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
-msgstr ""
+msgstr "발주서 선택"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
-msgstr ""
+msgstr "새 발주서"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
-msgstr ""
+msgstr "선택한 발주서에 추가"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
-msgstr ""
+msgstr "선택한 부품이 없습니다."
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
-msgstr ""
+msgstr "구매 가능한 부품이 선택되지 않았습니다."
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
-msgstr ""
+msgstr "부품이 추가되었습니다"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
-msgstr ""
+msgstr "선택한 모든 부품이 발주서에 추가되었습니다"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
-msgstr ""
+msgstr "주문하려면 부품을 하나 이상 선택해야 합니다."
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
-msgstr ""
+msgstr "공급업체 부품이 필요합니다"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
-msgstr ""
+msgstr "수량이 필요합니다"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
-msgstr ""
+msgstr "잘못된 부품 선택"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
-msgstr ""
+msgstr "선택한 부분의 오류를 수정해주세요"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
msgid "Order Parts"
-msgstr ""
+msgstr "자재 발주"
#: src/contexts/LanguageContext.tsx:22
#~ msgid "Arabic"
@@ -4156,86 +4211,86 @@ msgstr ""
#: src/defaults/actions.tsx:43
msgid "Go to the InvenTree dashboard"
-msgstr ""
+msgstr "InvenTree 대시보드로 이동"
#: src/defaults/actions.tsx:50
msgid "Visit the documentation to learn more about InvenTree"
-msgstr ""
+msgstr "InvenTree에 대해 더 알아보려면 문서를 확인하세요"
#: src/defaults/actions.tsx:59
msgid "About the InvenTree org"
-msgstr ""
+msgstr "InvenTree 조직 소개"
#: src/defaults/actions.tsx:65
msgid "Server Information"
-msgstr ""
+msgstr "서버 정보"
#: src/defaults/actions.tsx:66
#: src/defaults/links.tsx:169
msgid "About this InvenTree instance"
-msgstr ""
+msgstr "InvenTree 인스턴스 정보"
#: src/defaults/actions.tsx:72
#: src/defaults/links.tsx:153
#: src/defaults/links.tsx:175
msgid "License Information"
-msgstr ""
+msgstr "라이센스 정보"
#: src/defaults/actions.tsx:73
msgid "Licenses for dependencies of the service"
-msgstr ""
+msgstr "서비스 의존성 라이선스"
#: src/defaults/actions.tsx:79
msgid "Open Navigation"
-msgstr ""
+msgstr "내비게이션 열기"
#: src/defaults/actions.tsx:80
msgid "Open the main navigation menu"
-msgstr ""
+msgstr "메인 탐색 메뉴 열기"
#: src/defaults/actions.tsx:87
msgid "Go to your user settings"
-msgstr ""
+msgstr "사용자 설정으로 이동"
#: src/defaults/actions.tsx:96
msgid "Import Data"
-msgstr ""
+msgstr "데이터 가져오기"
#: src/defaults/actions.tsx:97
msgid "Import data from a file"
-msgstr ""
+msgstr "파일에서 데이터 가져오기"
#: src/defaults/actions.tsx:107
msgid "Go to Purchase Orders"
-msgstr ""
+msgstr "발주서로 이동"
#: src/defaults/actions.tsx:117
msgid "Go to Sales Orders"
-msgstr ""
+msgstr "판매 주문으로 이동"
#: src/defaults/actions.tsx:128
msgid "Go to Return Orders"
-msgstr ""
+msgstr "반품 주문으로 이동"
#: src/defaults/actions.tsx:138
msgid "Scan a barcode or QR code"
-msgstr ""
+msgstr "바코드 또는 QR 코드를 스캔"
#: src/defaults/actions.tsx:147
msgid "Go to Build Orders"
-msgstr ""
+msgstr "생산 주문으로 이동"
#: src/defaults/actions.tsx:156
msgid "Go to System Settings"
-msgstr ""
+msgstr "시스템 설정으로 이동"
#: src/defaults/actions.tsx:165
msgid "Go to the Admin Center"
-msgstr ""
+msgstr "관리 센터로 이동"
#: src/defaults/actions.tsx:174
msgid "Manage InvenTree plugins"
-msgstr ""
+msgstr "InvenTree 플러그인 관리"
#: src/defaults/dashboardItems.tsx:29
#~ msgid "Latest Parts"
@@ -4279,15 +4334,15 @@ msgstr ""
#: src/defaults/defaultHostList.tsx:10
msgid "Local Server"
-msgstr ""
+msgstr "로컬 서버"
#: src/defaults/defaultHostList.tsx:12
msgid "InvenTree Demo"
-msgstr ""
+msgstr "InvenTree 데모"
#: src/defaults/defaultHostList.tsx:14
msgid "Current Server"
-msgstr ""
+msgstr "현재 서버"
#: src/defaults/links.tsx:17
#~ msgid "GitHub"
@@ -4313,35 +4368,35 @@ msgstr ""
#: src/defaults/links.tsx:93
msgid "API"
-msgstr ""
+msgstr "API"
#: src/defaults/links.tsx:96
msgid "InvenTree API documentation"
-msgstr ""
+msgstr "InvenTree API 문서"
#: src/defaults/links.tsx:100
msgid "Developer Manual"
-msgstr ""
+msgstr "개발자 매뉴얼"
#: src/defaults/links.tsx:103
msgid "InvenTree developer manual"
-msgstr ""
+msgstr "InvenTree 개발자 매뉴얼"
#: src/defaults/links.tsx:107
msgid "FAQ"
-msgstr ""
+msgstr "자주 묻는 질문"
#: src/defaults/links.tsx:110
msgid "Frequently asked questions"
-msgstr ""
+msgstr "자주 묻는 질문"
#: src/defaults/links.tsx:114
msgid "GitHub Repository"
-msgstr ""
+msgstr "GitHub 저장소"
#: src/defaults/links.tsx:117
msgid "InvenTree source code on GitHub"
-msgstr ""
+msgstr "GitHub의 InvenTree 소스 코드"
#: src/defaults/links.tsx:117
#~ msgid "Licenses for packages used by InvenTree"
@@ -4350,7 +4405,7 @@ msgstr ""
#: src/defaults/links.tsx:127
#: src/defaults/links.tsx:168
msgid "System Information"
-msgstr ""
+msgstr "시스템 정보"
#: src/defaults/links.tsx:134
#~ msgid "Licenses"
@@ -4358,11 +4413,11 @@ msgstr ""
#: src/defaults/links.tsx:176
msgid "Licenses for dependencies of the InvenTree software"
-msgstr ""
+msgstr "InvenTree 소프트웨어 의존성 라이선스"
#: src/defaults/links.tsx:187
msgid "About the InvenTree Project"
-msgstr ""
+msgstr "InvenTree 프로젝트 소개"
#: src/defaults/menuItems.tsx:7
#~ msgid "Open sourcea"
@@ -4480,21 +4535,21 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
-msgstr ""
+msgstr "대체 부품"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
-msgstr ""
+msgstr "BOM 대체 부품 편집"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
-msgstr ""
+msgstr "대체 부품 추가"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
-msgstr ""
+msgstr "대체 부품이 추가되었습니다"
#: src/forms/BuildForms.tsx:112
#: src/forms/BuildForms.tsx:217
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
-msgstr ""
+msgstr "생산 결과물"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
-msgstr ""
+msgstr "완료할 수량"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4546,99 +4601,99 @@ msgstr ""
#: src/tables/stock/StockItemTable.tsx:181
#: src/tables/stock/StockTrackingTable.tsx:82
msgid "Status"
-msgstr ""
+msgstr "상태"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
-msgstr ""
+msgstr "생산 결과물 완료"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
-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:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
-msgstr ""
+msgstr "폐기할 수량"
+
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
+msgid "Scrap Build Outputs"
+msgstr "생산 결과물 폐기"
+
+#: src/forms/BuildForms.tsx:461
+msgid "Selected build outputs will be completed, but marked as scrapped"
+msgstr "선택한 생산 결과물은 완료 처리되지만 폐기된 것으로 표시됩니다"
#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
-msgid "Scrap Build Outputs"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:468
-msgid "Selected build outputs will be completed, but marked as scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:470
msgid "Allocated stock items will be consumed"
-msgstr ""
+msgstr "할당된 재고 품목이 소모됩니다"
+
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "생산 결과물이 폐기되었습니다"
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
-msgstr ""
+msgstr "생산 결과물 취소"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
-msgstr ""
+msgstr "선택한 생산 결과물이 제거됩니다"
+
+#: src/forms/BuildForms.tsx:523
+msgid "Allocated stock items will be returned to stock"
+msgstr "할당된 재고 품목은 재고로 반환됩니다."
#: src/forms/BuildForms.tsx:530
-msgid "Allocated stock items will be returned to stock"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:537
msgid "Build outputs have been cancelled"
-msgstr ""
+msgstr "생산 결과물이 취소되었습니다"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
-msgstr ""
+msgstr "품목 번호(IPN)"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
#: src/tables/stock/StockItemTable.tsx:192
msgid "Allocated"
-msgstr ""
+msgstr "할당됨"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
-msgstr ""
+msgstr "원본 위치"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
-msgstr ""
+msgstr "재고 할당의 원본 위치를 선택하세요"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4646,50 +4701,50 @@ msgstr ""
#: src/tables/sales/SalesOrderLineItemTable.tsx:378
#: src/tables/sales/SalesOrderLineItemTable.tsx:404
msgid "Allocate Stock"
-msgstr ""
+msgstr "재고 할당"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
-msgstr ""
+msgstr "재고 품목이 할당되었습니다"
#: src/forms/BuildForms.tsx:817
#: src/forms/BuildForms.tsx:918
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
#: src/tables/build/BuildLineTable.tsx:893
msgid "Consume Stock"
-msgstr ""
+msgstr "재고 소비"
#: src/forms/BuildForms.tsx:856
#: src/forms/BuildForms.tsx:957
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
-msgstr ""
+msgstr "완전히 소비됨"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
-msgstr ""
+msgstr "소비됨"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
-msgstr ""
+msgstr "이 품목의 프로젝트 코드를 선택하세요."
#: src/forms/CompanyForms.tsx:150
#~ msgid "Company updated"
@@ -4698,15 +4753,15 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
-msgstr ""
+msgstr "구독 중"
#: src/forms/PartForms.tsx:102
msgid "Subscribe to notifications for this part"
-msgstr ""
+msgstr "이 부품의 알림을 구독"
#: src/forms/PartForms.tsx:108
#~ msgid "Part created"
@@ -4718,11 +4773,11 @@ msgstr ""
#: src/forms/PartForms.tsx:216
msgid "Parent part category"
-msgstr ""
+msgstr "상위 부품 카테고리"
#: src/forms/PartForms.tsx:231
msgid "Subscribe to notifications for this category"
-msgstr ""
+msgstr "이 카테고리의 알림을 구독"
#: src/forms/PurchaseOrderForms.tsx:421
#~ msgid "Assign Batch Code{0}"
@@ -4737,97 +4792,97 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
-msgstr ""
+msgstr "위치 선택"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
-msgstr ""
+msgstr "항목 대상 위치가 선택되었습니다"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
-msgstr ""
+msgstr "부품 카테고리 기본 위치가 선택되었습니다"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
-msgstr ""
+msgstr "입고 재고 위치가 선택되었습니다"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
-msgstr ""
+msgstr "기본 위치가 선택되었습니다"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
-msgstr ""
+msgstr "가상 부품"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
-msgstr ""
+msgstr "이 부품은 가상이므로 실제 재고가 입고되지 않습니다"
#: src/forms/PurchaseOrderForms.tsx:566
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "위치 설정"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "배치 코드 지정"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
-msgstr ""
+msgstr "시리얼 번호 지정"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
-msgstr ""
+msgstr "만료일 설정"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
-msgstr ""
+msgstr "포장 조정"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
-msgstr ""
+msgstr "상태 변경"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
-msgstr ""
+msgstr "메모 추가"
#: src/forms/PurchaseOrderForms.tsx:658
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
-msgstr ""
+msgstr "기본 위치에 저장"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
-msgstr ""
+msgstr "항목 대상 위치에 보관"
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
-msgstr ""
+msgstr "이미 입고된 재고로 보관"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4835,125 +4890,125 @@ msgstr ""
#: src/tables/part/PartTestResultTable.tsx:289
#: src/tables/sales/SalesOrderAllocationTable.tsx:146
msgid "Batch Code"
-msgstr ""
+msgstr "배치 코드"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
-msgstr ""
+msgstr "입고된 항목의 배치 코드를 입력하세요"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
-msgstr ""
+msgstr "일련번호"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
-msgstr ""
+msgstr "입고된 항목의 시리얼 번호를 입력하세요"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
-msgstr ""
+msgstr "만료 날짜"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
-msgstr ""
+msgstr "입고된 항목의 만료일을 입력하세요"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
-msgstr ""
+msgstr "포장"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
-msgstr ""
+msgstr "메모"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
-msgstr ""
+msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
#: src/tables/sales/ReturnOrderLineItemTable.tsx:170
msgid "Received"
-msgstr ""
+msgstr "받았다"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
-msgstr ""
+msgstr "항목 입고"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
-msgstr ""
+msgstr "받은 상품"
#: src/forms/ReturnOrderForms.tsx:259
msgid "Receive Items"
-msgstr ""
+msgstr "아이템 받기"
#: src/forms/ReturnOrderForms.tsx:266
msgid "Item received into stock"
-msgstr ""
+msgstr "입고된 품목"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
-msgstr ""
+msgstr "부품과 수량 기준 가격이 다릅니다{0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
-msgstr ""
+msgstr "출하 확인"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
-msgstr ""
+msgstr "출하를 확인됨으로 표시하면 이 출하에 포함된 모든 항목이 올바른지 검증했음을 의미합니다"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
-msgstr ""
+msgstr "출하가 확인됨으로 표시되었습니다"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
-msgstr ""
+msgstr "출하 확인 해제"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
-msgstr ""
+msgstr "출하를 미확인으로 표시하면 추가 검증이 필요함을 의미합니다"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
-msgstr ""
+msgstr "출하가 미확인으로 표시되었습니다"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
-msgstr ""
+msgstr "출하 완료 처리 중"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
-msgstr ""
+msgstr "출하가 성공적으로 완료되었습니다"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
-msgstr ""
+msgstr "출하 완료"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
-msgstr ""
+msgstr "주문 주소를 사용하려면 비워두세요."
#: src/forms/StockForms.tsx:110
#~ msgid "Create Stock Item"
@@ -4965,210 +5020,210 @@ msgstr ""
#: src/forms/StockForms.tsx:202
msgid "Add given quantity as packs instead of individual items"
-msgstr ""
+msgstr "개별 항목 대신 포장 단위로 수량을 추가합니다"
#: src/forms/StockForms.tsx:216
msgid "Enter initial quantity for this stock item"
-msgstr ""
+msgstr "이 재고 품목의 초기 수량을 입력하세요"
#: src/forms/StockForms.tsx:226
msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr ""
+msgstr "새 재고의 시리얼 번호를 입력하세요. 비워 둘 수도 있습니다"
#: src/forms/StockForms.tsx:246
msgid "Stock Status"
-msgstr ""
+msgstr "재고현황"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
-msgstr ""
+msgstr "재고 품목 추가"
#: src/forms/StockForms.tsx:369
msgid "Select the part to install"
-msgstr ""
+msgstr "설치할 부품 선택"
#: src/forms/StockForms.tsx:495
msgid "Confirm Stock Transfer"
-msgstr ""
+msgstr "재고 이전 확인"
#: src/forms/StockForms.tsx:681
msgid "Move to default location"
-msgstr ""
+msgstr "기본 위치로 이동"
#: src/forms/StockForms.tsx:804
msgid "Move"
-msgstr ""
+msgstr "이동하다"
#: src/forms/StockForms.tsx:851
msgid "Return"
-msgstr ""
+msgstr "반품"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
-msgstr ""
+msgstr "실사"
#: src/forms/StockForms.tsx:1295
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
-msgstr ""
+msgstr "재고 추가"
#: src/forms/StockForms.tsx:1296
msgid "Stock added"
-msgstr ""
+msgstr "재고 추가됨"
#: src/forms/StockForms.tsx:1299
msgid "Increase the quantity of the selected stock items by a given amount."
-msgstr ""
+msgstr "선택한 재고 품목의 수량을 지정한 만큼 늘립니다"
#: src/forms/StockForms.tsx:1310
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
-msgstr ""
+msgstr "재고 차감"
#: src/forms/StockForms.tsx:1311
msgid "Stock removed"
-msgstr ""
+msgstr "재고가 차감되었습니다"
#: src/forms/StockForms.tsx:1314
msgid "Decrease the quantity of the selected stock items by a given amount."
-msgstr ""
+msgstr "선택한 재고 품목의 수량을 지정한 만큼 줄입니다"
#: src/forms/StockForms.tsx:1325
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
-msgstr ""
+msgstr "재고 이전"
#: src/forms/StockForms.tsx:1326
msgid "Stock transferred"
-msgstr ""
+msgstr "재고양도"
#: src/forms/StockForms.tsx:1329
msgid "Transfer selected items to the specified location."
-msgstr ""
+msgstr "선택한 항목을 지정한 위치로 이동합니다"
#: src/forms/StockForms.tsx:1340
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
-msgstr ""
+msgstr "재고 반환"
#: src/forms/StockForms.tsx:1341
msgid "Stock returned"
-msgstr ""
+msgstr "재고가 반환되었습니다"
#: src/forms/StockForms.tsx:1344
msgid "Return selected items into stock, to the specified location."
-msgstr ""
+msgstr "선택한 항목을 지정한 위치의 재고로 반환합니다"
#: src/forms/StockForms.tsx:1355
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
-msgstr ""
+msgstr "재고 수량"
#: src/forms/StockForms.tsx:1356
msgid "Stock counted"
-msgstr ""
+msgstr "재고 계산"
#: src/forms/StockForms.tsx:1359
msgid "Count the selected stock items, and adjust the quantity accordingly."
-msgstr ""
+msgstr "선택한 재고 품목을 실사하고 수량을 그에 맞게 조정합니다"
#: src/forms/StockForms.tsx:1370
msgid "Change Stock Status"
-msgstr ""
+msgstr "재고현황 변경"
#: src/forms/StockForms.tsx:1371
msgid "Stock status changed"
-msgstr ""
+msgstr "재고 상태가 변경되었습니다."
#: src/forms/StockForms.tsx:1374
msgid "Change the status of the selected stock items."
-msgstr ""
+msgstr "선택한 재고 품목의 상태를 변경합니다"
#: src/forms/StockForms.tsx:1397
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
-msgstr ""
+msgstr "배치 코드 변경"
#: src/forms/StockForms.tsx:1400
msgid "Change batch code for the selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목의 배치 코드를 변경합니다"
#: src/forms/StockForms.tsx:1417
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
-msgstr ""
+msgstr "재고 병합"
#: src/forms/StockForms.tsx:1418
msgid "Stock merged"
-msgstr ""
+msgstr "재고 병합"
#: src/forms/StockForms.tsx:1420
msgid "Merge Stock Items"
-msgstr ""
+msgstr "재고 품목 병합"
#: src/forms/StockForms.tsx:1422
msgid "Merge operation cannot be reversed"
-msgstr ""
+msgstr "병합 작업은 되돌릴 수 없습니다."
#: src/forms/StockForms.tsx:1423
msgid "Tracking information may be lost when merging items"
-msgstr ""
+msgstr "항목을 병합하면 추적 정보가 손실될 수 있습니다."
#: src/forms/StockForms.tsx:1424
msgid "Supplier information may be lost when merging items"
-msgstr ""
+msgstr "품목을 병합하면 공급업체 정보가 손실될 수 있습니다."
#: src/forms/StockForms.tsx:1442
msgid "Assign Stock to Customer"
-msgstr ""
+msgstr "고객에게 재고 할당"
#: src/forms/StockForms.tsx:1443
msgid "Stock assigned to customer"
-msgstr ""
+msgstr "고객에게 할당된 재고"
#: src/forms/StockForms.tsx:1453
msgid "Delete Stock Items"
-msgstr ""
+msgstr "재고 품목 삭제"
#: src/forms/StockForms.tsx:1454
msgid "Stock deleted"
-msgstr ""
+msgstr "재고가 삭제되었습니다."
#: src/forms/StockForms.tsx:1457
msgid "This operation will permanently delete the selected stock items."
-msgstr ""
+msgstr "이 작업은 선택한 재고 품목을 영구적으로 삭제합니다"
#: src/forms/StockForms.tsx:1466
msgid "Parent stock location"
-msgstr ""
+msgstr "모재 위치"
#: src/forms/StockForms.tsx:1597
msgid "Find Serial Number"
-msgstr ""
+msgstr "일련번호 찾기"
#: src/forms/StockForms.tsx:1608
msgid "No matching items"
-msgstr ""
+msgstr "일치하는 항목이 없습니다."
#: src/forms/StockForms.tsx:1614
msgid "Multiple matching items"
-msgstr ""
+msgstr "일치하는 항목이 여러 개 있습니다"
#: src/forms/StockForms.tsx:1623
msgid "Invalid response from server"
-msgstr ""
+msgstr "서버의 응답이 올바르지 않습니다"
#: src/forms/selectionListFields.tsx:95
msgid "Entries"
-msgstr ""
+msgstr "항목"
#: src/forms/selectionListFields.tsx:96
msgid "List of entries to choose from"
-msgstr ""
+msgstr "선택할 수 있는 항목 목록"
#: src/forms/selectionListFields.tsx:100
#: src/pages/part/PartStockHistoryDetail.tsx:64
@@ -5178,35 +5233,35 @@ msgstr ""
#: src/tables/part/PartTestResultTable.tsx:206
#: src/tables/stock/StockItemTestResultTable.tsx:207
msgid "Value"
-msgstr ""
+msgstr "값"
#: src/forms/selectionListFields.tsx:101
msgid "Label"
-msgstr ""
+msgstr "상표"
#: src/functions/api.tsx:33
msgid "Bad request"
-msgstr ""
+msgstr "잘못된 요청"
#: src/functions/api.tsx:36
msgid "Unauthorized"
-msgstr ""
+msgstr "승인되지 않은"
#: src/functions/api.tsx:39
msgid "Forbidden"
-msgstr ""
+msgstr "금지됨"
#: src/functions/api.tsx:42
msgid "Not found"
-msgstr ""
+msgstr "찾을 수 없음"
#: src/functions/api.tsx:45
msgid "Method not allowed"
-msgstr ""
+msgstr "허용되지 않는 방법"
#: src/functions/api.tsx:48
msgid "Internal server error"
-msgstr ""
+msgstr "내부 서버 오류"
#: src/functions/auth.tsx:34
#~ msgid "Error fetching token from server."
@@ -5229,13 +5284,13 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
-msgstr ""
+msgstr "로그아웃됨"
#: src/functions/auth.tsx:125
msgid "There was a conflicting session for this browser, which has been logged out."
-msgstr ""
+msgstr "이 브라우저에 충돌하는 세션이 있어 로그아웃되었습니다"
#: src/functions/auth.tsx:142
#~ msgid "Found an existing login - using it to log you in."
@@ -5243,7 +5298,7 @@ msgstr ""
#: src/functions/auth.tsx:143
msgid "No response from server."
-msgstr ""
+msgstr "서버에서 응답이 없습니다"
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
@@ -5251,89 +5306,89 @@ msgstr ""
#: src/functions/auth.tsx:186
msgid "MFA Login successful"
-msgstr ""
+msgstr "MFA 로그인 성공"
#: src/functions/auth.tsx:187
msgid "MFA details were automatically provided in the browser"
-msgstr ""
+msgstr "MFA 세부 정보가 브라우저에 자동으로 제공되었습니다."
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
-msgstr ""
+msgstr "성공적으로 로그아웃되었습니다"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
-msgstr ""
+msgstr "언어가 변경됨"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
-msgstr ""
+msgstr "현재 사용 언어가 프로필에 설정된 언어로 변경되었습니다"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
-msgstr ""
+msgstr "테마가 변경됨"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
-msgstr ""
+msgstr "현재 사용 테마가 프로필에 설정된 테마로 변경되었습니다"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
-msgstr ""
+msgstr "재설정 실패"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
-msgstr ""
+msgstr "이미 로그인되어 있습니다."
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
-msgstr ""
+msgstr "이 브라우저에 대해 서버에 충돌하는 세션이 있습니다. 먼저 해당 세션에서 로그아웃하세요"
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
-msgstr ""
+msgstr "로그인됨"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
-msgstr ""
+msgstr "성공적으로 로그인되었습니다"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
-msgstr ""
+msgstr "MFA 설정에 실패했습니다"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
-msgstr ""
+msgstr "MFA 설정 성공"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
-msgstr ""
+msgstr "TOTP 기반 MFA가 성공적으로 설정되었습니다. 다시 로그인해야 합니다"
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
-msgstr ""
+msgstr "비밀번호가 설정되었습니다"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
-msgstr ""
+msgstr "비밀번호가 성공적으로 설정되었습니다. 이제 새로운 비밀번호로 로그인하실 수 있습니다"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
-msgstr ""
+msgstr "비밀번호를 변경할 수 없습니다."
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
-msgstr ""
+msgstr "두 개의 비밀번호 필드가 일치하지 않습니다"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
-msgstr ""
+msgstr "비밀번호가 변경되었습니다."
#: src/functions/forms.tsx:50
#~ msgid "Form method not provided"
@@ -5351,73 +5406,45 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
-msgstr ""
+msgstr "데이터 내보내기"
#: src/hooks/UseDataExport.tsx:111
msgid "Export Data"
-msgstr ""
+msgstr "데이터 내보내기"
#: src/hooks/UseDataExport.tsx:114
msgid "Export"
-msgstr ""
+msgstr "내보내다"
#: src/hooks/UseForm.tsx:102
msgid "Item Created"
-msgstr ""
+msgstr "생성된 항목"
#: src/hooks/UseForm.tsx:122
msgid "Item Updated"
-msgstr ""
+msgstr "업데이트된 항목"
#: src/hooks/UseForm.tsx:143
msgid "Items Updated"
-msgstr ""
+msgstr "항목이 업데이트되었습니다"
#: src/hooks/UseForm.tsx:145
msgid "Update multiple items"
-msgstr ""
+msgstr "여러 항목 업데이트"
#: src/hooks/UseForm.tsx:175
msgid "Item Deleted"
-msgstr ""
+msgstr "삭제된 항목"
#: src/hooks/UseForm.tsx:179
msgid "Are you sure you want to delete this item?"
-msgstr ""
+msgstr "이 항목을 삭제하시겠습니까?"
#: src/hooks/UsePlaceholder.tsx:59
#~ msgid "Latest serial number"
@@ -5425,101 +5452,101 @@ msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:104
msgid "Count selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목 실사"
#: src/hooks/UseStockAdjustActions.tsx:114
msgid "Add to selected stock items"
-msgstr ""
+msgstr "선택한 재고 항목에 추가"
#: src/hooks/UseStockAdjustActions.tsx:124
msgid "Remove from selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목에서 차감"
#: src/hooks/UseStockAdjustActions.tsx:134
msgid "Transfer selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목 이전"
#: src/hooks/UseStockAdjustActions.tsx:144
msgid "Merge selected stock items"
-msgstr ""
+msgstr "선택한 재고 항목 병합"
#: src/hooks/UseStockAdjustActions.tsx:154
msgid "Change status of selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목의 상태 변경"
#: src/hooks/UseStockAdjustActions.tsx:164
msgid "Change batch code of selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목의 배치 코드 변경"
#: src/hooks/UseStockAdjustActions.tsx:172
msgid "Assign Stock"
-msgstr ""
+msgstr "재고 할당"
#: src/hooks/UseStockAdjustActions.tsx:174
msgid "Assign selected stock items to a customer"
-msgstr ""
+msgstr "선택한 재고 품목을 고객에게 할당"
#: src/hooks/UseStockAdjustActions.tsx:184
msgid "Return selected items into stock"
-msgstr ""
+msgstr "선택한 항목을 재고로 반환"
#: src/hooks/UseStockAdjustActions.tsx:192
msgid "Delete Stock"
-msgstr ""
+msgstr "재고 삭제"
#: src/hooks/UseStockAdjustActions.tsx:194
msgid "Delete selected stock items"
-msgstr ""
+msgstr "선택한 재고 품목 삭제"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
-msgstr ""
+msgstr "재고 작업"
#: src/pages/Auth/ChangePassword.tsx:32
#: src/pages/Auth/Reset.tsx:14
msgid "Reset Password"
-msgstr ""
+msgstr "비밀번호 재설정"
#: src/pages/Auth/ChangePassword.tsx:46
msgid "Current Password"
-msgstr ""
+msgstr "현재 비밀번호"
#: src/pages/Auth/ChangePassword.tsx:47
msgid "Enter your current password"
-msgstr ""
+msgstr "현재 비밀번호를 입력하세요"
#: src/pages/Auth/ChangePassword.tsx:53
msgid "New Password"
-msgstr ""
+msgstr "새 비밀번호"
#: src/pages/Auth/ChangePassword.tsx:54
msgid "Enter your new password"
-msgstr ""
+msgstr "새 비밀번호를 입력하세요"
#: src/pages/Auth/ChangePassword.tsx:60
msgid "Confirm New Password"
-msgstr ""
+msgstr "새 비밀번호 확인"
#: src/pages/Auth/ChangePassword.tsx:61
msgid "Confirm your new password"
-msgstr ""
+msgstr "새 비밀번호를 확인하세요"
#: src/pages/Auth/ChangePassword.tsx:80
msgid "Confirm"
-msgstr ""
+msgstr "확인하다"
#: src/pages/Auth/Layout.tsx:59
msgid "Log off"
-msgstr ""
+msgstr "로그오프"
#: src/pages/Auth/LoggedIn.tsx:19
msgid "Checking if you are already logged in"
-msgstr ""
+msgstr "이미 로그인되어 있는지 확인하기"
#: src/pages/Auth/Login.tsx:36
msgid "No selection"
-msgstr ""
+msgstr "선택사항 없음"
#: src/pages/Auth/Login.tsx:91
#~ msgid "Welcome, log in below"
@@ -5531,15 +5558,15 @@ msgstr ""
#: src/pages/Auth/Login.tsx:107
msgid "Login"
-msgstr ""
+msgstr "로그인"
#: src/pages/Auth/Login.tsx:113
msgid "Logging you in"
-msgstr ""
+msgstr "로그인 중"
#: src/pages/Auth/Login.tsx:120
msgid "Don't have an account?"
-msgstr ""
+msgstr "계정이 없나요?"
#: src/pages/Auth/Logout.tsx:22
#~ msgid "Logging out"
@@ -5557,40 +5584,40 @@ msgstr ""
#: src/pages/Auth/MFA.tsx:29
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:86
msgid "Multi-Factor Authentication"
-msgstr ""
+msgstr "다단계 인증"
#: src/pages/Auth/MFA.tsx:33
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:219
msgid "TOTP Code"
-msgstr ""
+msgstr "TOTP 코드"
#: src/pages/Auth/MFA.tsx:35
msgid "Enter one of your codes: {mfa_types}"
-msgstr ""
+msgstr "다음 코드 중 하나를 입력하세요: {mfa_types}"
#: src/pages/Auth/MFA.tsx:42
msgid "Remember this device"
-msgstr ""
+msgstr "이 기기 기억하기"
#: src/pages/Auth/MFA.tsx:44
msgid "If enabled, you will not be asked for MFA on this device for 30 days."
-msgstr ""
+msgstr "이 옵션을 켜면 이 기기에서는 30일 동안 MFA를 다시 묻지 않습니다"
#: src/pages/Auth/MFA.tsx:53
msgid "Log in"
-msgstr ""
+msgstr "로그인"
#: src/pages/Auth/MFASetup.tsx:23
msgid "MFA Setup Required"
-msgstr ""
+msgstr "MFA 설정 필요"
#: src/pages/Auth/MFASetup.tsx:34
msgid "Add TOTP"
-msgstr ""
+msgstr "TOTP 추가"
#: src/pages/Auth/Register.tsx:23
msgid "Go back to login"
-msgstr ""
+msgstr "로그인으로 돌아가기"
#: src/pages/Auth/Reset.tsx:41
#: src/pages/Auth/Set-Password.tsx:112
@@ -5600,11 +5627,11 @@ msgstr ""
#: src/pages/Auth/ResetPassword.tsx:22
#: src/pages/Auth/VerifyEmail.tsx:19
msgid "Key invalid"
-msgstr ""
+msgstr "키가 유효하지 않음"
#: src/pages/Auth/ResetPassword.tsx:23
msgid "You need to provide a valid key to set a new password. Check your inbox for a reset link."
-msgstr ""
+msgstr "새 비밀번호를 설정하려면 유효한 키를 제공해야 합니다. 받은편지함에서 재설정 링크를 확인하세요"
#: src/pages/Auth/ResetPassword.tsx:30
#~ msgid "Token invalid"
@@ -5612,7 +5639,7 @@ msgstr ""
#: src/pages/Auth/ResetPassword.tsx:31
msgid "Set new password"
-msgstr ""
+msgstr "새 비밀번호 설정"
#: src/pages/Auth/ResetPassword.tsx:31
#~ msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link."
@@ -5620,11 +5647,11 @@ msgstr ""
#: src/pages/Auth/ResetPassword.tsx:35
msgid "The desired new password"
-msgstr ""
+msgstr "설정할 새 비밀번호"
#: src/pages/Auth/ResetPassword.tsx:44
msgid "Send Password"
-msgstr ""
+msgstr "비밀번호 보내기"
#: src/pages/Auth/Set-Password.tsx:49
#~ msgid "No token provided"
@@ -5636,24 +5663,24 @@ msgstr ""
#: src/pages/Auth/VerifyEmail.tsx:20
msgid "You need to provide a valid key."
-msgstr ""
+msgstr "유효한 키를 제공해야 합니다"
#: src/pages/Auth/VerifyEmail.tsx:28
msgid "Verify Email"
-msgstr ""
+msgstr "이메일 확인"
#: src/pages/Auth/VerifyEmail.tsx:30
msgid "Verify"
-msgstr ""
+msgstr "확인하다"
#. placeholder {0}: error.statusText
#: 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."
@@ -5811,75 +5838,75 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
-msgstr ""
+msgstr "항목이 이미 스캔되었습니다"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
-msgstr ""
+msgstr "API 오류"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
-msgstr ""
+msgstr "인스턴스 데이터를 불러오지 못했습니다"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
-msgstr ""
+msgstr "스캔 오류"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
-msgstr ""
+msgstr "선택한 요소를 알 수 없습니다."
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
-msgstr ""
+msgstr "여러 개체 유형이 선택됨"
+
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "작업 ..."
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
-msgstr ""
+msgstr "바코드 스캐닝"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
-msgstr ""
+msgstr "바코드 입력"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
-msgstr ""
+msgstr "행동"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
-msgstr ""
+msgstr "선택한 항목이 없습니다."
+
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "작업을 수행할 항목을 스캔하고 선택하세요."
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
-msgstr ""
+msgstr "{0}개 항목 선택됨"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
-msgstr ""
+msgstr "스캔한 항목"
#: src/pages/Index/Scan.tsx:276
#~ msgid "Actions for {0}"
@@ -5981,7 +6008,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:33
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:113
msgid "Edit Account Information"
-msgstr ""
+msgstr "계정 정보 편집"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:34
#~ msgid "User details updated"
@@ -5989,7 +6016,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:37
msgid "Account details updated"
-msgstr ""
+msgstr "계정 세부정보가 업데이트되었습니다."
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:46
#~ msgid "User Actions"
@@ -6002,7 +6029,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:136
msgid "Edit Profile Information"
-msgstr ""
+msgstr "프로필 정보 편집"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55
#~ msgid "Last name"
@@ -6018,7 +6045,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:59
msgid "Profile details updated"
-msgstr ""
+msgstr "프로필 세부정보가 업데이트되었습니다."
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:61
#~ msgid "Last name: {0}"
@@ -6027,12 +6054,12 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:65
#: src/pages/core/UserDetail.tsx:55
msgid "First Name"
-msgstr ""
+msgstr "이름"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:66
#: src/pages/core/UserDetail.tsx:63
msgid "Last Name"
-msgstr ""
+msgstr "성"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67
#~ msgid "First name:"
@@ -6050,113 +6077,113 @@ msgstr ""
#: src/pages/core/UserDetail.tsx:119
#: src/tables/settings/CustomStateTable.tsx:101
msgid "Display Name"
-msgstr ""
+msgstr "표시 이름"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:86
#: src/pages/core/UserDetail.tsx:127
msgid "Position"
-msgstr ""
+msgstr "직책"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:90
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:967
msgid "Type"
-msgstr ""
+msgstr "유형"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:91
#: src/pages/core/UserDetail.tsx:143
msgid "Organisation"
-msgstr ""
+msgstr "조직"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:92
msgid "Primary Group"
-msgstr ""
+msgstr "기본 그룹"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:104
msgid "Account Details"
-msgstr ""
+msgstr "계정 정보"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:107
msgid "Account Actions"
-msgstr ""
+msgstr "계정 작업"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:111
msgid "Edit Account"
-msgstr ""
+msgstr "계정 편집"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:117
#: src/tables/settings/UserTable.tsx:323
msgid "Change Password"
-msgstr ""
+msgstr "비밀번호 변경"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:119
msgid "Change User Password"
-msgstr ""
+msgstr "사용자 비밀번호 변경"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:131
msgid "Profile Details"
-msgstr ""
+msgstr "프로필 정보"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:134
msgid "Edit Profile"
-msgstr ""
+msgstr "프로필 편집"
#. placeholder {0}: item.label
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:153
msgid "{0}"
-msgstr ""
+msgstr "{0}"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:105
msgid "Reauthentication Succeeded"
-msgstr ""
+msgstr "재인증에 성공했습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:106
msgid "You have been reauthenticated successfully."
-msgstr ""
+msgstr "재인증이 성공적으로 완료되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:114
msgid "Error during reauthentication"
-msgstr ""
+msgstr "재인증 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:117
msgid "Reauthentication Failed"
-msgstr ""
+msgstr "재인증 실패"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:118
msgid "Failed to reauthenticate"
-msgstr ""
+msgstr "재인증하지 못했습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:133
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:173
msgid "Reauthenticate"
-msgstr ""
+msgstr "재인증"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:135
msgid "Reauthentiction is required to continue."
-msgstr ""
+msgstr "계속하려면 재인증이 필요합니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:197
msgid "Enter your password"
-msgstr ""
+msgstr "비밀번호를 입력하세요"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:221
msgid "Enter one of your TOTP codes"
-msgstr ""
+msgstr "TOTP 코드 중 하나를 입력하세요."
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:273
msgid "WebAuthn Credential Removed"
-msgstr ""
+msgstr "WebAuthn 자격 증명이 제거됨"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:274
msgid "WebAuthn credential removed successfully."
-msgstr ""
+msgstr "WebAuthn 자격 증명이 성공적으로 제거되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:283
msgid "Error removing WebAuthn credential"
-msgstr ""
+msgstr "WebAuthn 자격 증명 제거 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:304
msgid "Remove WebAuthn Credential"
-msgstr ""
+msgstr "WebAuthn 자격 증명 제거"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:312
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:403
@@ -6164,175 +6191,175 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:674
#: src/tables/sales/SalesOrderAllocationTable.tsx:219
msgid "Confirm Removal"
-msgstr ""
+msgstr "제거 확인"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:314
msgid "Confirm removal of webauth credential"
-msgstr ""
+msgstr "WebAuthn 자격 증명 제거 확인"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:366
msgid "TOTP Removed"
-msgstr ""
+msgstr "TOTP가 제거되었습니다."
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:367
msgid "TOTP token removed successfully."
-msgstr ""
+msgstr "TOTP 토큰이 성공적으로 제거되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:377
msgid "Error removing TOTP token"
-msgstr ""
+msgstr "TOTP 토큰 제거 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:396
msgid "Remove TOTP Token"
-msgstr ""
+msgstr "TOTP 토큰 제거"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:405
msgid "Confirm removal of TOTP code"
-msgstr ""
+msgstr "TOTP 코드 제거 확인"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:465
msgid "TOTP Already Registered"
-msgstr ""
+msgstr "TOTP가 이미 등록되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:466
msgid "A TOTP token is already registered for this account."
-msgstr ""
+msgstr "이 계정에는 이미 TOTP 토큰이 등록되어 있습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:481
msgid "Error Fetching TOTP Registration"
-msgstr ""
+msgstr "TOTP 등록 정보를 불러오는 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:482
msgid "An unexpected error occurred while fetching TOTP registration data."
-msgstr ""
+msgstr "TOTP 등록 데이터를 불러오는 중 예기치 않은 오류가 발생했습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:524
msgid "TOTP Registered"
-msgstr ""
+msgstr "TOTP가 등록되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:525
msgid "TOTP token registered successfully."
-msgstr ""
+msgstr "TOTP 토큰이 성공적으로 등록되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:534
msgid "Error registering TOTP token"
-msgstr ""
+msgstr "TOTP 토큰 등록 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:553
msgid "Register TOTP Token"
-msgstr ""
+msgstr "TOTP 토큰 등록"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:598
msgid "Error fetching recovery codes"
-msgstr ""
+msgstr "복구 코드를 불러오는 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:634
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:650
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:866
msgid "Recovery Codes"
-msgstr ""
+msgstr "복구 코드"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:652
msgid "The following one time recovery codes are available for use"
-msgstr ""
+msgstr "다음 일회성 복구 코드를 사용할 수 있습니다."
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:669
msgid "Copy recovery codes to clipboard"
-msgstr ""
+msgstr "복구 코드를 클립보드에 복사"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:679
msgid "No Unused Codes"
-msgstr ""
+msgstr "미사용 코드 없음"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:681
msgid "There are no available recovery codes"
-msgstr ""
+msgstr "사용 가능한 복구 코드가 없습니다."
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:782
msgid "WebAuthn Registered"
-msgstr ""
+msgstr "WebAuthn이 등록되었습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:783
msgid "WebAuthn credential registered successfully"
-msgstr ""
+msgstr "WebAuthn 자격 증명이 성공적으로 등록되었습니다."
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:792
msgid "Error registering WebAuthn credential"
-msgstr ""
+msgstr "WebAuthn 자격 증명 등록 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:795
msgid "WebAuthn Registration Failed"
-msgstr ""
+msgstr "WebAuthn 등록 실패"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:796
msgid "Failed to register WebAuthn credential"
-msgstr ""
+msgstr "WebAuthn 자격 증명을 등록하지 못했습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:819
msgid "Error fetching WebAuthn registration"
-msgstr ""
+msgstr "WebAuthn 등록 정보를 불러오는 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:859
msgid "TOTP"
-msgstr ""
+msgstr "TOTP"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:860
msgid "Time-based One-Time Password"
-msgstr ""
+msgstr "시간 기반 일회용 비밀번호"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:867
msgid "One-Time pre-generated recovery codes"
-msgstr ""
+msgstr "사전 생성된 일회용 복구 코드"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:873
msgid "WebAuthn"
-msgstr ""
+msgstr "웹인증"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:874
msgid "Web Authentication (WebAuthn) is a web standard for secure authentication"
-msgstr ""
+msgstr "웹 인증(WebAuthn)은 안전한 인증을 위한 웹 표준입니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:970
msgid "Last used at"
-msgstr ""
+msgstr "마지막 사용 시각"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:973
msgid "Created at"
-msgstr ""
+msgstr "생성 시각"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:984
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:204
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:362
msgid "Not Configured"
-msgstr ""
+msgstr "구성되지 않음"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:988
msgid "No multi-factor tokens configured for this account"
-msgstr ""
+msgstr "이 계정에는 구성된 다단계 인증 토큰이 없습니다"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:993
msgid "Register Authentication Method"
-msgstr ""
+msgstr "인증방법 등록"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:1009
msgid "No MFA Methods Available"
-msgstr ""
+msgstr "사용 가능한 MFA 방법이 없습니다."
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:1013
msgid "There are no MFA methods available for configuration"
-msgstr ""
+msgstr "구성에 사용할 수 있는 MFA 방법이 없습니다."
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:27
msgid "Secret"
-msgstr ""
+msgstr "비밀"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:40
msgid "One-Time Password"
-msgstr ""
+msgstr "일회용 비밀번호"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:41
msgid "Enter the TOTP code to ensure it registered correctly"
-msgstr ""
+msgstr "정상적으로 등록되었는지 확인하려면 TOTP 코드를 입력하세요"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55
#~ msgid "Single Sign On Accounts"
@@ -6340,11 +6367,11 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60
msgid "Email Addresses"
-msgstr ""
+msgstr "이메일 주소"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:68
msgid "Single Sign On"
-msgstr ""
+msgstr "단일 로그인"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69
#~ msgid "Multifactor"
@@ -6356,11 +6383,11 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:76
msgid "Not enabled"
-msgstr ""
+msgstr "활성화되지 않음"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:79
msgid "Single Sign On is not enabled for this server "
-msgstr ""
+msgstr "이 서버에서는 단일 로그인이 활성화되어 있지 않습니다"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83
#~ msgid "Multifactor authentication is not configured for your account"
@@ -6368,11 +6395,11 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:94
msgid "Access Tokens"
-msgstr ""
+msgstr "액세스 토큰"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:108
msgid "Session Information"
-msgstr ""
+msgstr "세션 정보"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:146
#: src/tables/general/BarcodeScanTable.tsx:60
@@ -6380,44 +6407,44 @@ msgstr ""
#: src/tables/settings/EmailTable.tsx:131
#: src/tables/settings/ErrorTable.tsx:59
msgid "Timestamp"
-msgstr ""
+msgstr "타임스탬프"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:147
msgid "Method"
-msgstr ""
+msgstr "방법"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:190
msgid "Error while updating email"
-msgstr ""
+msgstr "이메일 업데이트 중 오류 발생"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:207
msgid "Currently no email addresses are registered."
-msgstr ""
+msgstr "현재 등록된 이메일 주소가 없습니다"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:215
msgid "The following email addresses are associated with your account:"
-msgstr ""
+msgstr "다음 이메일 주소가 계정에 연결되어 있습니다:"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:228
#: src/tables/purchasing/SupplierPartTable.tsx:254
msgid "Primary"
-msgstr ""
+msgstr "주요한"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:233
msgid "Verified"
-msgstr ""
+msgstr "확인됨"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:237
msgid "Unverified"
-msgstr ""
+msgstr "미확인"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255
msgid "Make Primary"
-msgstr ""
+msgstr "기본으로 만들기"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:261
msgid "Re-send Verification"
-msgstr ""
+msgstr "확인 메일 다시 보내기"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270
#~ msgid "Provider has not been configured"
@@ -6425,15 +6452,15 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275
msgid "Add Email Address"
-msgstr ""
+msgstr "이메일 주소 추가"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:277
msgid "E-Mail"
-msgstr ""
+msgstr "이메일"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278
msgid "E-Mail address"
-msgstr ""
+msgstr "이메일 주소"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280
#~ msgid "Not configured"
@@ -6445,7 +6472,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:290
msgid "Error while adding email"
-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"
@@ -6453,19 +6480,19 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301
msgid "Add Email"
-msgstr ""
+msgstr "이메일 추가"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:365
msgid "There are no providers connected to this account."
-msgstr ""
+msgstr "이 계정에 연결된 제공업체가 없습니다"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:374
msgid "You can sign in to your account using any of the following providers"
-msgstr ""
+msgstr "다음 제공업체를 사용해 계정에 로그인할 수 있습니다"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:387
msgid "Remove Provider Link"
-msgstr ""
+msgstr "제공업체 연결 제거"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:556
#~ msgid "Unused Codes"
@@ -6510,7 +6537,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:61
msgid "Display Settings"
-msgstr ""
+msgstr "디스플레이 설정"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65
#~ msgid "bars"
@@ -6522,7 +6549,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67
msgid "Language"
-msgstr ""
+msgstr "언어"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67
#~ msgid "dots"
@@ -6530,7 +6557,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:78
msgid "Use pseudo language"
-msgstr ""
+msgstr "의사언어를 사용하라"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81
#~ msgid "Theme"
@@ -6538,7 +6565,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:85
msgid "Color Mode"
-msgstr ""
+msgstr "컬러 모드"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87
#~ msgid "Primary color"
@@ -6546,39 +6573,39 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:96
msgid "Highlight color"
-msgstr ""
+msgstr "하이라이트 컬러"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:110
msgid "Example"
-msgstr ""
+msgstr "예"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116
msgid "White color"
-msgstr ""
+msgstr "화이트 색상"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:139
msgid "Black color"
-msgstr ""
+msgstr "블랙 컬러"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:162
msgid "Border Radius"
-msgstr ""
+msgstr "테두리 반경"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:178
msgid "Loader"
-msgstr ""
+msgstr "짐을 싣는 사람"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:185
msgid "Bars"
-msgstr ""
+msgstr "바"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:186
msgid "Oval"
-msgstr ""
+msgstr "타원형"
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:187
msgid "Dots"
-msgstr ""
+msgstr "도트"
#: src/pages/Index/Settings/AccountSettings/useConfirm.tsx:93
#~ msgid "Reauthentication"
@@ -6593,37 +6620,37 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
-msgstr ""
+msgstr "통화"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:33
msgid "Rate"
-msgstr ""
+msgstr "비율"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:46
msgid "Exchange rates updated"
-msgstr ""
+msgstr "환율이 업데이트되었습니다."
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:53
msgid "Exchange rate update error"
-msgstr ""
+msgstr "환율 업데이트 오류"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:63
msgid "Refresh currency exchange rates"
-msgstr ""
+msgstr "통화 환율 새로고침"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:99
msgid "Last fetched"
-msgstr ""
+msgstr "마지막 가져온 시각"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:100
msgid "Base currency"
-msgstr ""
+msgstr "기본 통화"
#: src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx:13
msgid "Email Messages"
-msgstr ""
+msgstr "이메일 메시지"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:22
#~ msgid "Active Alerts"
@@ -6635,130 +6662,130 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:36
msgid "System Status"
-msgstr ""
+msgstr "시스템 상태"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:47
msgid "Admin Center Information"
-msgstr ""
+msgstr "관리 센터 정보"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:53
msgid "The home panel (and the whole Admin Center) is a new feature starting with the new UI and was previously (before 1.0) not available."
-msgstr ""
+msgstr "홈 패널(및 전체 관리자 센터)은 새 UI부터 제공된 새로운 기능이며, 이전(1.0 이전)에는 사용할 수 없었습니다."
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:60
msgid "The admin center provides a centralized location for all administration functionality and is meant to replace all interaction with the (django) backend admin interface."
-msgstr ""
+msgstr "관리자 센터는 모든 관리 기능을 한곳에서 제공하며, 기존 (django) 백엔드 관리자 인터페이스와의 상호작용을 대체하도록 설계되었습니다."
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:67
msgid "Please open feature requests (after checking the tracker) for any existing backend admin functionality you are missing in this UI. The backend admin interface should be used carefully and seldom."
-msgstr ""
+msgstr "이 UI에 없는 기존 백엔드 관리자 기능이 필요하다면 먼저 이슈 추적기를 확인한 뒤 기능 요청을 등록하세요. 백엔드 관리자 인터페이스는 신중하게, 그리고 드물게 사용해야 합니다."
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:85
msgid "Quick Actions"
-msgstr ""
+msgstr "빠른 작업"
#: src/pages/Index/Settings/AdminCenter/Index.tsx:107
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
-msgstr ""
+msgstr "집"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
-msgstr ""
+msgstr "사용자 / 액세스"
#: src/pages/Index/Settings/AdminCenter/Index.tsx:127
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
-msgstr ""
+msgstr "데이터 가져오기"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
-msgstr ""
+msgstr "데이터 내보내기"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
-msgstr ""
+msgstr "바코드 스캔"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
-msgstr ""
+msgstr "백그라운드 작업"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
-msgstr ""
+msgstr "오류 보고서"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
-msgstr ""
+msgstr "통화"
#: src/pages/Index/Settings/AdminCenter/Index.tsx:170
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
-msgstr ""
+msgstr "사용자 지정 상태"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
-msgstr ""
+msgstr "사용자 지정 단위"
#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
#: src/pages/part/CategoryDetail.tsx:313
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
-msgstr ""
+msgstr "카테고리 파라미터"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
-msgstr ""
+msgstr "위치 유형"
#: 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:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
-msgstr ""
+msgstr "장비"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
-msgstr ""
+msgstr "운영"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
-msgstr ""
+msgstr "데이터 관리"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
-msgstr ""
+msgstr "보고"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
-msgstr ""
+msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
-msgstr ""
+msgstr "확장 / 연동"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
-msgstr ""
+msgstr "고급 옵션"
#: src/pages/Index/Settings/AdminCenter/LabelTemplatePanel.tsx:40
#~ msgid "Generated Labels"
@@ -6774,7 +6801,7 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:60
msgid "Machine Drivers"
-msgstr ""
+msgstr "장비 드라이버"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62
#~ msgid "There are no machine registry errors."
@@ -6782,37 +6809,37 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:68
msgid "Machine Types"
-msgstr ""
+msgstr "장비 유형"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:76
msgid "Machine Errors"
-msgstr ""
+msgstr "장비 오류"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89
msgid "Registry Registry Errors"
-msgstr ""
+msgstr "레지스트리 오류"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:92
msgid "There are machine registry errors"
-msgstr ""
+msgstr "장비 레지스트리 오류가 있습니다"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:98
msgid "Machine Registry Errors"
-msgstr ""
+msgstr "장비 레지스트리 오류"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:101
msgid "There are no machine registry errors"
-msgstr ""
+msgstr "장비 레지스트리 오류가 없습니다"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:122
#: src/tables/machine/MachineListTable.tsx:502
msgid "Machine Settings"
-msgstr ""
+msgstr "장비 설정"
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33
#: src/tables/settings/UserTable.tsx:195
msgid "Info"
-msgstr ""
+msgstr "정보"
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33
#~ msgid "Plugin Error Stack"
@@ -6820,7 +6847,7 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:37
msgid "External plugins are not enabled for this InvenTree installation."
-msgstr ""
+msgstr "이 InvenTree 설치에는 외부 플러그인이 활성화되어 있지 않습니다."
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45
#~ msgid "Warning"
@@ -6832,23 +6859,23 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:76
msgid "Plugin Errors"
-msgstr ""
+msgstr "플러그인 오류"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:16
msgid "Page Size"
-msgstr ""
+msgstr "페이지 크기"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:19
msgid "Landscape"
-msgstr ""
+msgstr "풍경"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:25
msgid "Merge"
-msgstr ""
+msgstr "병합"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:31
msgid "Attach to Model"
-msgstr ""
+msgstr "모델에 연결"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:55
#~ msgid "Generated Reports"
@@ -6860,7 +6887,7 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:32
msgid "Background worker running"
-msgstr ""
+msgstr "백그라운드 워커 실행 중"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35
#~ msgid "Background Worker Not Running"
@@ -6868,26 +6895,26 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38
msgid "Background worker not running"
-msgstr ""
+msgstr "백그라운드 워커가 실행 중이 아님"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:42
msgid "The background task manager service is not running. Contact your system administrator."
-msgstr ""
+msgstr "백그라운드 작업 관리자 서비스가 실행되고 있지 않습니다. 시스템 관리자에게 문의하세요."
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:49
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:58
msgid "Pending Tasks"
-msgstr ""
+msgstr "보류 중인 작업"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:50
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:66
msgid "Scheduled Tasks"
-msgstr ""
+msgstr "예약된 작업"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:51
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:74
msgid "Failed Tasks"
-msgstr ""
+msgstr "실패한 작업"
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:67
#~ msgid "Stock item"
@@ -6923,19 +6950,19 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:21
msgid "Alias"
-msgstr ""
+msgstr "별명"
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:22
msgid "Dimensionless"
-msgstr ""
+msgstr "무차원"
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:65
msgid "All units"
-msgstr ""
+msgstr "모든 단위"
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:31
msgid "Tokens"
-msgstr ""
+msgstr "토큰"
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32
#~ msgid "Select settings relevant for user lifecycle. More available in"
@@ -6947,15 +6974,19 @@ msgstr ""
#: src/pages/Index/Settings/PluginSettingsGroup.tsx:99
msgid "The settings below are specific to each available plugin"
-msgstr ""
+msgstr "아래 설정은 각 사용 가능한 플러그인에 따라 다릅니다"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
+msgstr "입증"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
-msgstr ""
+msgstr "바코드"
#: src/pages/Index/Settings/SystemSettings.tsx:118
#~ msgid "Physical Units"
@@ -6965,48 +6996,56 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
-msgstr ""
+msgstr "아래 설정은 각 사용 가능한 알림 방식에 따라 다릅니다"
#: src/pages/Index/Settings/SystemSettings.tsx:135
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
-msgstr ""
+msgstr "가격"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
-msgstr ""
+msgstr "부품 재고 실사"
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
-msgstr ""
+msgstr "재고 추적"
#: src/pages/Index/Settings/SystemSettings.tsx:317
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
-msgstr ""
+msgstr "계정"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
-msgstr ""
+msgstr "보안"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
-msgstr ""
+msgstr "표시 옵션"
#: src/pages/Index/Settings/UserSettings.tsx:159
#~ msgid "Switch to System Setting"
@@ -7030,32 +7069,44 @@ msgstr ""
#: src/pages/Notifications.tsx:83
msgid "History"
-msgstr ""
+msgstr "이력"
#: src/pages/Notifications.tsx:91
msgid "Mark as unread"
-msgstr ""
+msgstr "읽지 않은 상태로 표시"
#: src/pages/Notifications.tsx:146
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
-msgstr ""
-
-#: src/pages/build/BuildDetail.tsx:72
-msgid "This build order does not have any required items."
-msgstr ""
+msgstr "필요한 항목 없음"
#: src/pages/build/BuildDetail.tsx:73
+msgid "This build order does not have any required items."
+msgstr "이 생산 주문에는 필요한 항목이 없습니다."
+
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
-msgstr ""
+msgstr "조립된 부품에 BOM(재료 명세서)이 정의되어 있지 않거나 BOM이 비어 있을 수 있습니다."
#: src/pages/build/BuildDetail.tsx:80
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "BOM이 검증되지 않음"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,306 +7139,307 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
-msgstr ""
+msgstr "개정"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
-msgstr ""
+msgstr "사용자 지정 상태"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
#: src/tables/build/BuildOrderTable.tsx:188
#: src/tables/stock/StockLocationTable.tsx:48
msgid "External"
-msgstr ""
+msgstr "외부"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
-msgstr ""
+msgstr "참조"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
-msgstr ""
+msgstr "상위 생산"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
-msgstr ""
+msgstr "생산 수량"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
-msgstr ""
+msgstr "생산 가능"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
-msgstr ""
+msgstr "완료된 생산 결과물"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
-msgstr ""
+msgstr "발행자"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
-msgstr ""
-
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
+msgstr "책임이 있는"
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr ""
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "모든 위치"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr ""
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "목적지 위치"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "생성됨"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
-msgstr ""
+msgstr "시작일"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
-msgstr ""
+msgstr "목표 날짜"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
-msgstr ""
-
-#: src/pages/build/BuildDetail.tsx:429
-msgid "Build Details"
-msgstr ""
-
-#: src/pages/build/BuildDetail.tsx:435
-msgid "Required Parts"
-msgstr ""
+msgstr "완전한"
#: src/pages/build/BuildDetail.tsx:447
+msgid "Build Details"
+msgstr "생산 상세 정보"
+
+#: src/pages/build/BuildDetail.tsx:453
+msgid "Required Parts"
+msgstr "필요한 부품"
+
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
-msgstr ""
-
-#: src/pages/build/BuildDetail.tsx:463
-msgid "Consumed Stock"
-msgstr ""
+msgstr "할당된 재고"
#: src/pages/build/BuildDetail.tsx:481
+msgid "Consumed Stock"
+msgstr "소모된 재고"
+
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
-msgstr ""
+msgstr "미완료 생산 결과물"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
-msgstr ""
+msgstr "외부 주문"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
-msgstr ""
+msgstr "하위 생산 주문"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
-msgstr ""
+msgstr "테스트 결과"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
-msgstr ""
+msgstr "생산 주문 편집"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
-msgstr ""
+msgstr "생산 주문 추가"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
-msgstr ""
+msgstr "생산 주문 취소"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
-msgstr ""
+msgstr "주문이 취소되었습니다."
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
-msgstr ""
+msgstr "이 주문 취소"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
-msgstr ""
+msgstr "생산 주문 보류"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
-msgstr ""
+msgstr "이 주문을 보류 상태로 전환"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
-msgstr ""
+msgstr "주문이 보류되었습니다."
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
-msgstr ""
+msgstr "생산 주문 발행"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
-msgstr ""
+msgstr "이 주문을 발행하세요"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
-msgstr ""
+msgstr "주문이 발행되었습니다."
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
-msgstr ""
+msgstr "생산 주문 완료"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
-msgstr ""
+msgstr "이 주문을 완료로 표시"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
-msgstr ""
+msgstr "주문이 완료되었습니다."
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
-msgstr ""
+msgstr "주문 발행"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
-msgstr ""
+msgstr "주문 완료"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
-msgstr ""
+msgstr "생산 주문 작업"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
-msgstr ""
+msgstr "주문 수정"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
-msgstr ""
+msgstr "중복 주문"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
-msgstr ""
+msgstr "주문 보류"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
-msgstr ""
+msgstr "주문 취소"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
#: src/tables/stock/StockTrackingTable.tsx:141
msgid "Build Order"
-msgstr ""
+msgstr "생산 주문"
#: src/pages/build/BuildIndex.tsx:23
#~ msgid "Build order created"
@@ -7396,14 +7448,14 @@ msgstr ""
#: src/pages/build/BuildIndex.tsx:35
#: src/tables/build/BuildOrderTable.tsx:189
msgid "Show external build orders"
-msgstr ""
+msgstr "외부 생산 주문 표시"
#: src/pages/build/BuildIndex.tsx:39
#~ msgid "New Build Order"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,19 +7464,19 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
-msgstr ""
+msgstr "테이블 보기"
#: src/pages/build/BuildIndex.tsx:80
#: src/pages/purchasing/PurchasingIndex.tsx:80
#: src/pages/sales/SalesIndex.tsx:67
#: src/pages/sales/SalesIndex.tsx:113
msgid "Calendar View"
-msgstr ""
+msgstr "캘린더 보기"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,25 +7485,25 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
-msgstr ""
+msgstr "파라미터 보기"
#: src/pages/company/CompanyDetail.tsx:108
msgid "Phone Number"
-msgstr ""
+msgstr "전화 번호"
#: src/pages/company/CompanyDetail.tsx:115
msgid "Email Address"
-msgstr ""
+msgstr "이메일 주소"
#: src/pages/company/CompanyDetail.tsx:122
msgid "Tax ID"
-msgstr ""
+msgstr "세금 ID"
#: src/pages/company/CompanyDetail.tsx:132
msgid "Default Currency"
-msgstr ""
+msgstr "기본 통화"
#: src/pages/company/CompanyDetail.tsx:143
#: src/pages/company/ManufacturerDetail.tsx:8
@@ -7462,7 +7514,7 @@ msgstr ""
#: src/tables/company/CompanyTable.tsx:111
#: src/tables/purchasing/SupplierPartTable.tsx:113
msgid "Manufacturer"
-msgstr ""
+msgstr "제조업체"
#: src/pages/company/CompanyDetail.tsx:149
#: src/pages/company/CustomerDetail.tsx:8
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7479,7 +7531,7 @@ msgstr ""
#: src/tables/sales/SalesOrderTable.tsx:148
#: src/tables/stock/StockTrackingTable.tsx:185
msgid "Customer"
-msgstr ""
+msgstr "고객"
#: src/pages/company/CompanyDetail.tsx:175
#~ msgid "Edit company"
@@ -7487,11 +7539,11 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:182
msgid "Company Details"
-msgstr ""
+msgstr "회사 상세 정보"
#: src/pages/company/CompanyDetail.tsx:188
msgid "Supplied Parts"
-msgstr ""
+msgstr "공급 부품"
#: src/pages/company/CompanyDetail.tsx:189
#~ msgid "Delete company"
@@ -7499,79 +7551,79 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:195
msgid "Manufactured Parts"
-msgstr ""
+msgstr "제조된 부품"
#: src/pages/company/CompanyDetail.tsx:242
msgid "Assigned Stock"
-msgstr ""
+msgstr "할당된 재고"
#: src/pages/company/CompanyDetail.tsx:289
#: src/tables/company/CompanyTable.tsx:92
msgid "Edit Company"
-msgstr ""
+msgstr "회사 편집"
#: src/pages/company/CompanyDetail.tsx:297
msgid "Delete Company"
-msgstr ""
+msgstr "회사 삭제"
#: src/pages/company/CompanyDetail.tsx:312
msgid "Company Actions"
-msgstr ""
+msgstr "회사의 조치"
#: src/pages/company/ManufacturerPartDetail.tsx:77
#: src/pages/company/SupplierPartDetail.tsx:90
msgid "Internal Part"
-msgstr ""
+msgstr "내부 부품"
#: src/pages/company/ManufacturerPartDetail.tsx:111
msgid "Manufacturer Part Number"
-msgstr ""
+msgstr "제조업체 부품 번호"
#: src/pages/company/ManufacturerPartDetail.tsx:128
#: src/pages/company/SupplierPartDetail.tsx:114
msgid "External Link"
-msgstr ""
+msgstr "외부링크"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
-msgstr ""
+msgstr "부품 상세 정보"
#: src/pages/company/ManufacturerPartDetail.tsx:150
msgid "Manufacturer Details"
-msgstr ""
+msgstr "제조사 상세 정보"
#: src/pages/company/ManufacturerPartDetail.tsx:159
msgid "Manufacturer Part Details"
-msgstr ""
+msgstr "제조사 부품 상세 정보"
#: src/pages/company/ManufacturerPartDetail.tsx:165
#: src/pages/company/SupplierPartDetail.tsx:253
#: src/pages/purchasing/PurchaseOrderDetail.tsx:391
msgid "Received Stock"
-msgstr ""
+msgstr "입고된 재고"
#: src/pages/company/ManufacturerPartDetail.tsx:212
#: src/tables/purchasing/ManufacturerPartTable.tsx:128
msgid "Edit Manufacturer Part"
-msgstr ""
+msgstr "제조업체 부품 편집"
#: src/pages/company/ManufacturerPartDetail.tsx:219
#: src/tables/purchasing/ManufacturerPartTable.tsx:115
#: src/tables/purchasing/ManufacturerPartTable.tsx:135
#: src/tables/purchasing/ManufacturerPartTable.tsx:176
msgid "Add Manufacturer Part"
-msgstr ""
+msgstr "제조업체 부품 추가"
#: src/pages/company/ManufacturerPartDetail.tsx:231
#: src/tables/purchasing/ManufacturerPartTable.tsx:146
msgid "Delete Manufacturer Part"
-msgstr ""
+msgstr "제조업체 부품 삭제"
#: src/pages/company/ManufacturerPartDetail.tsx:246
msgid "Manufacturer Part Actions"
-msgstr ""
+msgstr "제조업체 부품 작업"
#: src/pages/company/ManufacturerPartDetail.tsx:281
#~ msgid "ManufacturerPart"
@@ -7580,7 +7632,7 @@ msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:105
#: src/tables/part/RelatedPartTable.tsx:83
msgid "Part Description"
-msgstr ""
+msgstr "부품 설명"
#: src/pages/company/SupplierPartDetail.tsx:180
#: src/tables/part/PartPurchaseOrdersTable.tsx:73
@@ -7588,97 +7640,97 @@ msgstr ""
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229
#: src/tables/purchasing/SupplierPartTable.tsx:169
msgid "Pack Quantity"
-msgstr ""
+msgstr "팩 수량"
#: src/pages/company/SupplierPartDetail.tsx:205
msgid "Supplier Availability"
-msgstr ""
+msgstr "공급업체 재고 현황"
#: src/pages/company/SupplierPartDetail.tsx:213
msgid "Availability Updated"
-msgstr ""
+msgstr "재고 현황이 업데이트되었습니다."
#: src/pages/company/SupplierPartDetail.tsx:238
msgid "Availability"
-msgstr ""
+msgstr "재고 현황"
#: src/pages/company/SupplierPartDetail.tsx:247
msgid "Supplier Part Details"
-msgstr ""
+msgstr "공급업체 부품 상세 정보"
#: src/pages/company/SupplierPartDetail.tsx:280
#: src/pages/part/PartPricingPanel.tsx:113
#: src/pages/part/pricing/PricingOverviewPanel.tsx:239
msgid "Supplier Pricing"
-msgstr ""
+msgstr "공급업체 가격"
#: src/pages/company/SupplierPartDetail.tsx:314
msgid "Supplier Part Actions"
-msgstr ""
+msgstr "협력업체 부품 작업"
#: src/pages/company/SupplierPartDetail.tsx:338
#: src/tables/purchasing/SupplierPartTable.tsx:283
msgid "Edit Supplier Part"
-msgstr ""
+msgstr "협력업체 부품 편집"
#: src/pages/company/SupplierPartDetail.tsx:346
#: src/tables/purchasing/SupplierPartTable.tsx:308
msgid "Delete Supplier Part"
-msgstr ""
+msgstr "협력업체 부품 삭제"
#: src/pages/company/SupplierPartDetail.tsx:354
#: src/tables/purchasing/SupplierPartTable.tsx:203
#: src/tables/purchasing/SupplierPartTable.tsx:292
msgid "Add Supplier Part"
-msgstr ""
+msgstr "협력업체 부품 추가"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
-msgstr ""
+msgstr "재고 없음"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
-msgstr ""
+msgstr "시스템 개요"
#: src/pages/core/GroupDetail.tsx:45
msgid "Group Name"
-msgstr ""
+msgstr "그룹 이름"
#: src/pages/core/GroupDetail.tsx:52
#: src/pages/core/GroupDetail.tsx:67
#: src/tables/settings/GroupTable.tsx:85
msgid "Group Details"
-msgstr ""
+msgstr "그룹 상세 정보"
#: src/pages/core/GroupDetail.tsx:55
#: src/tables/settings/GroupTable.tsx:112
msgid "Group Roles"
-msgstr ""
+msgstr "그룹 역할"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
-msgstr ""
+msgstr "사용자 정보"
#: src/pages/core/UserDetail.tsx:176
msgid "User Permissions"
-msgstr ""
+msgstr "사용자 권한"
#: src/pages/core/UserDetail.tsx:178
msgid "User Profile"
-msgstr ""
+msgstr "사용자 프로필"
#: src/pages/core/UserDetail.tsx:188
#: src/tables/settings/UserTable.tsx:164
msgid "User Details"
-msgstr ""
+msgstr "사용자 상세 정보"
#: src/pages/core/UserDetail.tsx:206
msgid "Normal user"
-msgstr ""
+msgstr "일반 사용자"
#: src/pages/core/UserDetail.tsx:206
#~ msgid "Basic user"
@@ -7689,144 +7741,97 @@ msgstr ""
#: src/tables/settings/ErrorTable.tsx:63
#: src/tables/settings/ErrorTable.tsx:108
msgid "Path"
-msgstr ""
+msgstr "길"
#: src/pages/part/CategoryDetail.tsx:119
msgid "Parent Category"
-msgstr ""
+msgstr "상위 카테고리"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
-msgstr ""
+msgstr "하위 카테고리"
#: src/pages/part/CategoryDetail.tsx:149
#: src/pages/stock/LocationDetail.tsx:143
#: src/tables/part/PartCategoryTable.tsx:91
#: src/tables/stock/StockLocationTable.tsx:43
msgid "Structural"
-msgstr ""
+msgstr "구조용"
#: src/pages/part/CategoryDetail.tsx:155
msgid "Parent default location"
-msgstr ""
+msgstr "상위 기본 위치"
#: src/pages/part/CategoryDetail.tsx:162
msgid "Default location"
-msgstr ""
+msgstr "기본 위치"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
-msgstr ""
+msgstr "부품 카테고리 편집"
+
+#: src/pages/part/CategoryDetail.tsx:188
+msgid "Move items to parent category"
+msgstr "항목을 상위 카테고리로 이동"
#: src/pages/part/CategoryDetail.tsx:192
-msgid "Move items to parent category"
-msgstr ""
-
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
-msgstr ""
+msgstr "항목 삭제"
+
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
+msgid "Delete Part Category"
+msgstr "부품 카테고리 삭제"
+
+#: src/pages/part/CategoryDetail.tsx:203
+msgid "Parts Action"
+msgstr "부품 작업"
#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
-msgid "Delete Part Category"
-msgstr ""
-
-#: src/pages/part/CategoryDetail.tsx:207
-msgid "Parts Action"
-msgstr ""
-
-#: src/pages/part/CategoryDetail.tsx:208
msgid "Action for parts in this category"
-msgstr ""
+msgstr "이 카테고리의 부품에 대한 작업"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
-msgstr ""
+msgstr "어린이 카테고리 액션"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
-msgstr ""
+msgstr "이 카테고리의 하위 카테고리에 대한 조치"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
-msgstr ""
+msgstr "카테고리 조치"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
-msgstr ""
+msgstr "카테고리 상세 정보"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
-msgstr ""
+msgstr "생산 주문 할당"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
+msgstr "판매 주문 할당"
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "다음의 변형"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "다음의 리비전"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,189 +7856,191 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
-msgstr ""
+msgstr "기본 위치"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
-msgstr ""
+msgstr "범주 기본 위치"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
-msgstr ""
+msgstr "단위"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
-msgstr ""
+msgstr "키워드"
+
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
+#: src/tables/build/BuildLineTable.tsx:311
+#: src/tables/part/PartTable.tsx:316
+#: src/tables/sales/SalesOrderLineItemTable.tsx:134
+msgid "Available Stock"
+msgstr "사용 가능한 재고"
+
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
+#: src/tables/build/BuildLineTable.tsx:273
+#: src/tables/sales/SalesOrderLineItemTable.tsx:176
+msgid "On order"
+msgstr "주문시"
+
+#: src/pages/part/PartDetail.tsx:405
+msgid "Required for Orders"
+msgstr "주문에 필수"
+
+#: src/pages/part/PartDetail.tsx:416
+msgid "Allocated to Build Orders"
+msgstr "생산 주문에 할당됨"
+
+#: src/pages/part/PartDetail.tsx:428
+msgid "Allocated to Sales Orders"
+msgstr "판매 주문에 할당됨"
+
+#: src/pages/part/PartDetail.tsx:455
+msgid "Minimum Stock"
+msgstr "최소 재고"
+
+#: src/pages/part/PartDetail.tsx:470
+#: src/tables/part/ParametricPartTable.tsx:24
+#: src/tables/part/PartTable.tsx:204
+msgid "Locked"
+msgstr "잠김"
+
+#: src/pages/part/PartDetail.tsx:476
+msgid "Template Part"
+msgstr "템플릿 부분"
+
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
+msgid "Assembled Part"
+msgstr "조립부품"
+
+#: src/pages/part/PartDetail.tsx:486
+msgid "Component Part"
+msgstr "구성 부품"
+
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
+msgid "Testable Part"
+msgstr "테스트 가능한 부분"
+
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
+msgid "Trackable Part"
+msgstr "추적 가능한 부분"
+
+#: src/pages/part/PartDetail.tsx:502
+msgid "Purchaseable Part"
+msgstr "구매 가능한 부품"
+
+#: src/pages/part/PartDetail.tsx:508
+msgid "Saleable Part"
+msgstr "판매 가능 부품"
#: src/pages/part/PartDetail.tsx:510
#~ msgid "Stocktake By"
#~ msgstr "Stocktake By"
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
-#: src/tables/build/BuildLineTable.tsx:311
-#: src/tables/part/PartTable.tsx:316
-#: src/tables/sales/SalesOrderLineItemTable.tsx:134
-msgid "Available Stock"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:528
+#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
+#: src/pages/sales/ReturnOrderDetail.tsx:250
+#: src/pages/sales/SalesOrderDetail.tsx:243
+#: src/tables/ColumnRenderers.tsx:704
+msgid "Creation Date"
+msgstr "생성 날짜"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
-#: src/tables/build/BuildLineTable.tsx:273
-#: src/tables/sales/SalesOrderLineItemTable.tsx:176
-msgid "On order"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
+#: src/tables/Filter.tsx:433
+msgid "Created By"
+msgstr "작성자"
-#: src/pages/part/PartDetail.tsx:532
-msgid "Required for Orders"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:547
+msgid "Default Expiry"
+msgstr "기본 만료"
-#: src/pages/part/PartDetail.tsx:543
-msgid "Allocated to Build Orders"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:552
+msgid "days"
+msgstr "날"
-#: src/pages/part/PartDetail.tsx:555
-msgid "Allocated to Sales Orders"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:562
+#: src/pages/part/pricing/BomPricingPanel.tsx:78
+#: src/pages/part/pricing/VariantPricingPanel.tsx:95
+#: src/tables/part/PartTable.tsx:180
+msgid "Price Range"
+msgstr "가격대"
-#: src/pages/part/PartDetail.tsx:582
-msgid "Minimum Stock"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "최신 시리얼 번호"
-#: src/pages/part/PartDetail.tsx:597
-#: src/tables/part/ParametricPartTable.tsx:24
-#: src/tables/part/PartTable.tsx:204
-msgid "Locked"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:603
-msgid "Template Part"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
-msgid "Assembled Part"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:613
-msgid "Component Part"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "부품 리비전 선택"
#: src/pages/part/PartDetail.tsx:613
#~ msgid "Scheduling"
#~ msgstr "Scheduling"
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
-msgid "Testable Part"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "변형"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
-msgid "Trackable Part"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "할당"
-#: src/pages/part/PartDetail.tsx:629
-msgid "Purchaseable Part"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:635
-msgid "Saleable Part"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:655
-#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
-#: src/pages/sales/ReturnOrderDetail.tsx:250
-#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
-msgid "Creation Date"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
-#: src/tables/Filter.tsx:433
-msgid "Created By"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:674
-msgid "Default Expiry"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:679
-msgid "days"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:689
-#: src/pages/part/pricing/BomPricingPanel.tsx:78
-#: src/pages/part/pricing/VariantPricingPanel.tsx:95
-#: src/tables/part/PartTable.tsx:180
-msgid "Price Range"
-msgstr ""
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "BOM"
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
-msgstr ""
+msgstr "사용 위치"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
-msgstr ""
+msgstr "부품 가격"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
-msgstr ""
+msgstr "테스트 템플릿"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
-msgstr ""
+msgstr "관련 부품"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
-msgstr ""
+msgstr "부품이 잠겨 있습니다"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
-msgstr ""
+msgstr "부품이 잠겨 있어 파라미터를 편집할 수 없습니다"
+
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "필요"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "부족분"
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
@@ -8035,49 +8050,39 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
-msgstr ""
+msgstr "부품 추가"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
-msgstr ""
+msgstr "부품 삭제"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
-msgstr ""
+msgstr "이 부분을 삭제하면 되돌릴 수 없습니다."
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
-msgstr ""
+msgstr "주문하다"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
-msgstr ""
+msgstr "재고 주문"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
-msgstr ""
+msgstr "시리얼 번호로 검색"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
-msgstr ""
+msgstr "부품 작업"
#: src/pages/part/PartIndex.tsx:29
#~ msgid "Categories"
@@ -8085,41 +8090,41 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:72
msgid "No pricing data found for this part."
-msgstr ""
+msgstr "이 부품에 대한 가격 데이터를 찾을 수 없습니다."
#: src/pages/part/PartPricingPanel.tsx:87
#: src/pages/part/pricing/PricingOverviewPanel.tsx:332
msgid "Pricing Overview"
-msgstr ""
+msgstr "가격 개요"
#: src/pages/part/PartPricingPanel.tsx:93
msgid "Purchase History"
-msgstr ""
+msgstr "구매 내역"
#: src/pages/part/PartPricingPanel.tsx:107
#: src/pages/part/pricing/PricingOverviewPanel.tsx:211
msgid "Internal Pricing"
-msgstr ""
+msgstr "내부 가격"
#: src/pages/part/PartPricingPanel.tsx:122
#: src/pages/part/pricing/PricingOverviewPanel.tsx:221
msgid "BOM Pricing"
-msgstr ""
+msgstr "BOM 가격"
#: src/pages/part/PartPricingPanel.tsx:129
#: src/pages/part/pricing/PricingOverviewPanel.tsx:249
msgid "Variant Pricing"
-msgstr ""
+msgstr "변형 가격"
#: src/pages/part/PartPricingPanel.tsx:141
#: src/pages/part/pricing/PricingOverviewPanel.tsx:258
msgid "Sale Pricing"
-msgstr ""
+msgstr "판매 가격"
#: src/pages/part/PartPricingPanel.tsx:147
#: src/pages/part/pricing/PricingOverviewPanel.tsx:267
msgid "Sale History"
-msgstr ""
+msgstr "판매 내역"
#: src/pages/part/PartSchedulingDetail.tsx:51
#: src/pages/part/PartSchedulingDetail.tsx:291
@@ -8156,44 +8161,44 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:83
msgid "Edit Stocktake Entry"
-msgstr ""
+msgstr "재고 실사 항목 편집"
#: src/pages/part/PartStockHistoryDetail.tsx:91
msgid "Delete Stocktake Entry"
-msgstr ""
+msgstr "재고 실사 항목 삭제"
#: src/pages/part/PartStockHistoryDetail.tsx:109
msgid "Stocktake report scheduled for generation"
-msgstr ""
+msgstr "재고 실사 보고서 생성이 예약되었습니다"
#: src/pages/part/PartStockHistoryDetail.tsx:123
msgid "Stock Quantity"
-msgstr ""
+msgstr "재고 수량"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
-msgstr ""
+msgstr "재고 가치"
#: src/pages/part/PartStockHistoryDetail.tsx:201
msgid "Generate Stocktake Entry"
-msgstr ""
+msgstr "재고 실사 항목 생성"
#: src/pages/part/PartStockHistoryDetail.tsx:271
#: src/pages/part/pricing/PricingOverviewPanel.tsx:334
msgid "Minimum Value"
-msgstr ""
+msgstr "최소값"
#: src/pages/part/PartStockHistoryDetail.tsx:277
#: src/pages/part/pricing/PricingOverviewPanel.tsx:335
msgid "Maximum Value"
-msgstr ""
+msgstr "최대값"
#: src/pages/part/PartStockHistoryDetail.tsx:304
msgid "Stocktake Entries"
-msgstr ""
+msgstr "재고 실사 항목"
#: src/pages/part/PartStocktakeDetail.tsx:104
#: src/tables/settings/StocktakeReportTable.tsx:72
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr "BOM 검증"
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr "BOM 검증됨"
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "BOM 검증"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "이 조립품의 BOM을 검증하시겠습니까?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "BOM 검증 완료"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "이 부품의 BOM이 검증되었습니다"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "이 부품의 BOM은 이전에 확인되었지만 다시 검증해야 합니다"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "이 부품의 BOM은 아직 검증되지 않았습니다"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "검증 일시"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "검증자"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "변형 허용"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "상속됨"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "선택 사항"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "소모품"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "설정 수량"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "마찰"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "반올림 배수"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8216,26 +8363,26 @@ msgstr ""
#: src/tables/sales/SalesOrderLineItemTable.tsx:120
#: src/tables/sales/SalesOrderTable.tsx:197
msgid "Total Price"
-msgstr ""
+msgstr "총가격"
#: src/pages/part/pricing/BomPricingPanel.tsx:77
#: src/pages/part/pricing/BomPricingPanel.tsx:101
#: src/tables/bom/UsedInTable.tsx:59
#: src/tables/part/PartTable.tsx:228
msgid "Component"
-msgstr ""
+msgstr "요소"
#: src/pages/part/pricing/BomPricingPanel.tsx:80
#: src/pages/part/pricing/VariantPricingPanel.tsx:35
#: src/pages/part/pricing/VariantPricingPanel.tsx:97
msgid "Minimum Price"
-msgstr ""
+msgstr "최저 가격"
#: src/pages/part/pricing/BomPricingPanel.tsx:81
#: src/pages/part/pricing/VariantPricingPanel.tsx:43
#: src/pages/part/pricing/VariantPricingPanel.tsx:98
msgid "Maximum Price"
-msgstr ""
+msgstr "최고 가격"
#: src/pages/part/pricing/BomPricingPanel.tsx:112
#~ msgid "Minimum Total Price"
@@ -8250,142 +8397,142 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
#: src/tables/stock/StockItemTable.tsx:113
msgid "Unit Price"
-msgstr ""
+msgstr "단가"
#: src/pages/part/pricing/BomPricingPanel.tsx:216
msgid "Pie Chart"
-msgstr ""
+msgstr "원형 차트"
#: src/pages/part/pricing/BomPricingPanel.tsx:217
msgid "Bar Chart"
-msgstr ""
+msgstr "막대 차트"
#: src/pages/part/pricing/PriceBreakPanel.tsx:58
#: src/pages/part/pricing/PriceBreakPanel.tsx:111
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:134
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:162
msgid "Add Price Break"
-msgstr ""
+msgstr "가격 구간 추가"
#: src/pages/part/pricing/PriceBreakPanel.tsx:71
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:146
msgid "Edit Price Break"
-msgstr ""
+msgstr "가격 구간 편집"
#: src/pages/part/pricing/PriceBreakPanel.tsx:81
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:154
msgid "Delete Price Break"
-msgstr ""
+msgstr "가격 구간 삭제"
#: src/pages/part/pricing/PriceBreakPanel.tsx:95
msgid "Price Break"
-msgstr ""
+msgstr "가격 구간"
#: src/pages/part/pricing/PriceBreakPanel.tsx:171
msgid "Price"
-msgstr ""
+msgstr "가격"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:74
msgid "Refreshing pricing data"
-msgstr ""
+msgstr "가격 데이터 새로고침 중"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:94
msgid "Pricing data updated"
-msgstr ""
+msgstr "가격 데이터가 업데이트되었습니다."
#: src/pages/part/pricing/PricingOverviewPanel.tsx:101
msgid "Failed to update pricing data"
-msgstr ""
+msgstr "가격 데이터를 업데이트하지 못했습니다."
#: src/pages/part/pricing/PricingOverviewPanel.tsx:129
msgid "Edit Pricing"
-msgstr ""
+msgstr "가격 수정"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:141
msgid "Pricing Category"
-msgstr ""
+msgstr "가격 카테고리"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:160
msgid "Minimum"
-msgstr ""
+msgstr "최저한의"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:173
msgid "Maximum"
-msgstr ""
+msgstr "최고"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:192
msgid "Override Pricing"
-msgstr ""
+msgstr "가격 재정의"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:203
msgid "Overall Pricing"
-msgstr ""
+msgstr "전체 가격"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:229
msgid "Purchase Pricing"
-msgstr ""
+msgstr "구매 가격"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:288
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
msgid "Last Updated"
-msgstr ""
+msgstr "마지막 업데이트"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:292
msgid "Pricing Not Set"
-msgstr ""
+msgstr "가격이 설정되지 않음"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:293
msgid "Pricing data has not been calculated for this part"
-msgstr ""
+msgstr "이 부품에 대한 가격 데이터가 계산되지 않았습니다."
#: src/pages/part/pricing/PricingOverviewPanel.tsx:297
msgid "Pricing Actions"
-msgstr ""
+msgstr "가격 책정 조치"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:300
msgid "Refresh"
-msgstr ""
+msgstr "새로고침"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:301
msgid "Refresh pricing data"
-msgstr ""
+msgstr "가격 데이터 새로고침"
#: src/pages/part/pricing/PricingOverviewPanel.tsx:316
msgid "Edit pricing data"
-msgstr ""
+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 ""
+msgstr "가격 데이터 불러오는 중"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:48
msgid "Purchase Price"
-msgstr ""
+msgstr "구매 가격"
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#~ msgid "Sale Order"
@@ -8394,31 +8541,31 @@ msgstr ""
#: 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:69
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:75
msgid "Supplier Price"
-msgstr ""
+msgstr "공급업체 가격"
#: src/pages/part/pricing/VariantPricingPanel.tsx:29
#: src/pages/part/pricing/VariantPricingPanel.tsx:94
msgid "Variant Part"
-msgstr ""
+msgstr "변형 부품"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:90
msgid "Edit Purchase Order"
-msgstr ""
+msgstr "발주서 편집"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:126
#: src/tables/purchasing/PurchaseOrderTable.tsx:172
#: src/tables/purchasing/PurchaseOrderTable.tsx:186
msgid "Add Purchase Order"
-msgstr ""
+msgstr "발주서 추가"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:148
msgid "Supplier Reference"
-msgstr ""
+msgstr "공급업체 참조"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:159
#: src/pages/sales/ReturnOrderDetail.tsx:126
@@ -8430,18 +8577,18 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:161
#: src/pages/sales/SalesOrderDetail.tsx:145
msgid "Completed Line Items"
-msgstr ""
+msgstr "완료된 광고 항목"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:197
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:270
msgid "Destination"
-msgstr ""
+msgstr "목적지"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:203
#: src/pages/sales/ReturnOrderDetail.tsx:168
#: src/pages/sales/SalesOrderDetail.tsx:162
msgid "Order Currency"
-msgstr ""
+msgstr "주문 통화"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:207
#: src/pages/sales/ReturnOrderDetail.tsx:183
@@ -8453,40 +8600,40 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:175
#: src/pages/sales/SalesOrderDetail.tsx:168
msgid "Total Cost"
-msgstr ""
+msgstr "총비용"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:238
#: src/pages/sales/ReturnOrderDetail.tsx:216
#: src/pages/sales/SalesOrderDetail.tsx:209
msgid "Contact Email"
-msgstr ""
+msgstr "연락처 이메일"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:246
#: src/pages/sales/ReturnOrderDetail.tsx:224
#: src/pages/sales/SalesOrderDetail.tsx:217
msgid "Contact Phone"
-msgstr ""
+msgstr "연락 전화"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:279
#: src/pages/sales/ReturnOrderDetail.tsx:258
#: src/pages/sales/SalesOrderDetail.tsx:250
msgid "Issue Date"
-msgstr ""
+msgstr "발행일"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
-msgstr ""
+msgstr "완료 날짜"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:343
#: src/pages/sales/ReturnOrderDetail.tsx:321
#: src/pages/sales/SalesOrderDetail.tsx:359
msgid "Order Details"
-msgstr ""
+msgstr "주문 상세 정보"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:349
#: src/pages/purchasing/PurchaseOrderDetail.tsx:358
@@ -8496,52 +8643,52 @@ msgstr ""
#: src/pages/sales/SalesOrderDetail.tsx:365
#: src/pages/sales/SalesOrderDetail.tsx:374
msgid "Line Items"
-msgstr ""
+msgstr "광고 항목"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:373
#: src/pages/sales/ReturnOrderDetail.tsx:351
#: src/pages/sales/SalesOrderDetail.tsx:388
msgid "Extra Line Items"
-msgstr ""
+msgstr "추가 품목"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:420
msgid "Issue Purchase Order"
-msgstr ""
+msgstr "발주서 발행"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:428
msgid "Cancel Purchase Order"
-msgstr ""
+msgstr "발주서 취소"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:436
msgid "Hold Purchase Order"
-msgstr ""
+msgstr "발주서 보류"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:444
msgid "Complete Purchase Order"
-msgstr ""
+msgstr "발주서 완료"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:500
#: src/pages/sales/ReturnOrderDetail.tsx:511
#: src/pages/sales/SalesOrderDetail.tsx:564
msgid "Order Actions"
-msgstr ""
+msgstr "주문 조치"
#: src/pages/sales/ReturnOrderDetail.tsx:115
#: src/pages/sales/SalesOrderDetail.tsx:105
#: src/pages/sales/SalesOrderShipmentDetail.tsx:131
#: src/tables/sales/SalesOrderTable.tsx:156
msgid "Customer Reference"
-msgstr ""
+msgstr "고객 레퍼런스"
#: src/pages/sales/ReturnOrderDetail.tsx:196
msgid "Return Address"
-msgstr ""
+msgstr "반송 주소"
#: src/pages/sales/ReturnOrderDetail.tsx:202
#: src/pages/sales/SalesOrderDetail.tsx:195
#: src/pages/sales/SalesOrderShipmentDetail.tsx:178
msgid "Not specified"
-msgstr ""
+msgstr "지정되지 않음"
#: src/pages/sales/ReturnOrderDetail.tsx:349
#~ msgid "Order canceled"
@@ -8549,117 +8696,117 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:404
msgid "Edit Return Order"
-msgstr ""
+msgstr "반품 주문 편집"
#: src/pages/sales/ReturnOrderDetail.tsx:422
#: src/tables/sales/ReturnOrderTable.tsx:176
#: src/tables/sales/ReturnOrderTable.tsx:190
msgid "Add Return Order"
-msgstr ""
+msgstr "반품 주문 추가"
#: src/pages/sales/ReturnOrderDetail.tsx:431
msgid "Issue Return Order"
-msgstr ""
+msgstr "반품 주문 발행"
#: src/pages/sales/ReturnOrderDetail.tsx:439
msgid "Cancel Return Order"
-msgstr ""
+msgstr "반품 주문 취소"
#: src/pages/sales/ReturnOrderDetail.tsx:447
msgid "Hold Return Order"
-msgstr ""
+msgstr "반품 주문 보류"
#: src/pages/sales/ReturnOrderDetail.tsx:455
msgid "Complete Return Order"
-msgstr ""
+msgstr "반품 주문 완료"
#: src/pages/sales/SalesOrderDetail.tsx:154
msgid "Completed Shipments"
-msgstr ""
+msgstr "완료된 출하"
#: src/pages/sales/SalesOrderDetail.tsx:189
#: src/pages/sales/SalesOrderShipmentDetail.tsx:167
msgid "Shipping Address"
-msgstr ""
+msgstr "배송 주소"
#: src/pages/sales/SalesOrderDetail.tsx:326
msgid "Edit Sales Order"
-msgstr ""
+msgstr "판매 주문 편집"
#: src/pages/sales/SalesOrderDetail.tsx:348
#: src/tables/sales/SalesOrderTable.tsx:122
#: src/tables/sales/SalesOrderTable.tsx:136
msgid "Add Sales Order"
-msgstr ""
+msgstr "판매 주문 추가"
#: src/pages/sales/SalesOrderDetail.tsx:406
#: src/tables/sales/SalesOrderTable.tsx:166
msgid "Shipments"
-msgstr ""
+msgstr "출하"
#: src/pages/sales/SalesOrderDetail.tsx:458
msgid "Issue Sales Order"
-msgstr ""
+msgstr "판매 주문 발행"
#: src/pages/sales/SalesOrderDetail.tsx:466
msgid "Cancel Sales Order"
-msgstr ""
+msgstr "판매 주문 취소"
#: src/pages/sales/SalesOrderDetail.tsx:474
msgid "Hold Sales Order"
-msgstr ""
+msgstr "판매 주문 보류"
#: src/pages/sales/SalesOrderDetail.tsx:482
msgid "Ship Sales Order"
-msgstr ""
+msgstr "판매 주문 출하"
#: src/pages/sales/SalesOrderDetail.tsx:484
msgid "Ship this order?"
-msgstr ""
+msgstr "이 주문을 출하하시겠습니까?"
#: src/pages/sales/SalesOrderDetail.tsx:485
msgid "Order shipped"
-msgstr ""
+msgstr "주문이 출하되었습니다"
#: src/pages/sales/SalesOrderDetail.tsx:493
msgid "Complete Sales Order"
-msgstr ""
+msgstr "판매 주문 완료"
#: src/pages/sales/SalesOrderDetail.tsx:538
msgid "Ship Order"
-msgstr ""
+msgstr "주문 출하"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:139
#: src/tables/sales/SalesOrderShipmentTable.tsx:150
msgid "Shipment Reference"
-msgstr ""
+msgstr "출하 참조"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:145
msgid "Tracking Number"
-msgstr ""
+msgstr "운송장 번호"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:153
msgid "Invoice Number"
-msgstr ""
+msgstr "송장 번호"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:188
msgid "Allocated Items"
-msgstr ""
+msgstr "할당된 항목"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:193
msgid "Checked By"
-msgstr ""
+msgstr "확인자"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:199
msgid "Not checked"
-msgstr ""
+msgstr "확인되지 않음"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
-msgstr ""
+msgstr "출하일"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:211
#~ msgid "Assigned Items"
@@ -8668,188 +8815,188 @@ msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:213
#: src/tables/sales/SalesOrderShipmentTable.tsx:188
msgid "Delivery Date"
-msgstr ""
+msgstr "배송일"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:252
msgid "Shipment Details"
-msgstr ""
+msgstr "출하 상세 정보"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:296
#: src/pages/sales/SalesOrderShipmentDetail.tsx:400
#: src/tables/sales/SalesOrderShipmentTable.tsx:98
msgid "Edit Shipment"
-msgstr ""
+msgstr "출하 편집"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:303
#: src/pages/sales/SalesOrderShipmentDetail.tsx:419
#: src/tables/sales/SalesOrderShipmentTable.tsx:90
msgid "Cancel Shipment"
-msgstr ""
+msgstr "출하 취소"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:333
#: src/tables/part/PartPurchaseOrdersTable.tsx:122
msgid "Pending"
-msgstr ""
+msgstr "보류 중"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:339
#: src/tables/sales/SalesOrderShipmentTable.tsx:163
#: src/tables/sales/SalesOrderShipmentTable.tsx:294
msgid "Checked"
-msgstr ""
+msgstr "체크됨"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:345
msgid "Not Checked"
-msgstr ""
+msgstr "미확인"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:351
#: src/tables/sales/SalesOrderShipmentTable.tsx:170
#: src/tables/sales/SalesOrderShipmentTable.tsx:299
msgid "Shipped"
-msgstr ""
+msgstr "출하됨"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:357
#: src/tables/sales/SalesOrderShipmentTable.tsx:177
#: src/tables/sales/SalesOrderShipmentTable.tsx:304
#: src/tables/settings/EmailTable.tsx:31
msgid "Delivered"
-msgstr ""
+msgstr "배달됨"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:372
msgid "Send Shipment"
-msgstr ""
+msgstr "출하 전송"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:395
msgid "Shipment Actions"
-msgstr ""
+msgstr "출하 작업"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:404
msgid "Check"
-msgstr ""
+msgstr "확인하다"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:405
msgid "Mark shipment as checked"
-msgstr ""
+msgstr "출하를 확인됨으로 표시"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:411
msgid "Uncheck"
-msgstr ""
+msgstr "선택 취소"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:412
msgid "Mark shipment as unchecked"
-msgstr ""
+msgstr "출하를 미확인으로 표시"
#: src/pages/stock/LocationDetail.tsx:119
msgid "Parent Location"
-msgstr ""
+msgstr "상위 위치"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
-msgstr ""
+msgstr "하위 위치"
#: src/pages/stock/LocationDetail.tsx:155
#: src/tables/stock/StockLocationTable.tsx:57
msgid "Location Type"
-msgstr ""
+msgstr "위치 유형"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
-msgstr ""
+msgstr "위치 상세 정보"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
-msgstr ""
+msgstr "기본 부품"
#: src/pages/stock/LocationDetail.tsx:243
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
-msgstr ""
+msgstr "재고 위치 편집"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
-msgstr ""
+msgstr "항목을 상위 위치로 이동"
+
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
+msgid "Delete Stock Location"
+msgstr "재고 위치 삭제"
#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
-msgid "Delete Stock Location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:273
msgid "Items Action"
-msgstr ""
+msgstr "항목 작업"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
-msgstr ""
+msgstr "이 위치의 재고 품목에 대한 작업"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
-msgstr ""
+msgstr "위치 작업"
+
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "이 위치의 하위 위치에 대한 작업"
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
-msgstr ""
+msgstr "재고 품목 스캔"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
-msgstr ""
+msgstr "재고 품목을 위치로 스캔했습니다."
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
-msgstr ""
+msgstr "재고 품목 스캔 중 오류 발생"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
-msgstr ""
+msgstr "재고 위치 스캔"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
-msgstr ""
+msgstr "스캔된 재고 위치를 위치로"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
-msgstr ""
+msgstr "재고 위치 스캔 중 오류 발생"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
-msgstr ""
+msgstr "재고 품목 스캔하여 넣기"
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
-msgstr ""
+msgstr "이 위치로 항목 스캔"
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
-msgstr ""
+msgstr "컨테이너 스캔하여 넣기"
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
-msgstr ""
+msgstr "이 위치로 컨테이너 스캔"
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
-msgstr ""
+msgstr "베이스 부분"
#: src/pages/stock/StockDetail.tsx:155
#~ msgid "Link custom barcode to stock item"
@@ -8867,69 +9014,69 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
-msgstr ""
+msgstr "이전 시리얼 번호"
#: src/pages/stock/StockDetail.tsx:217
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
-msgstr ""
+msgstr "시리얼 번호 찾기"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
-msgstr ""
+msgstr "다음 시리얼 번호"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
-msgstr ""
+msgstr "주문에 할당됨"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
-msgstr ""
+msgstr "설치 위치"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
-msgstr ""
+msgstr "상위 항목"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
-msgstr ""
+msgstr "모재품목"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
-msgstr ""
+msgstr "사용한 대상"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
-msgstr ""
+msgstr "최근 재고 실사"
#: src/pages/stock/StockDetail.tsx:433
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
-msgstr ""
+msgstr "재고 상세 정보"
#: src/pages/stock/StockDetail.tsx:571
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
-msgstr ""
+msgstr "설치된 항목"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
-msgstr ""
+msgstr "하위 항목"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
-msgstr ""
+msgstr "재고 품목 편집"
#: src/pages/stock/StockDetail.tsx:671
#: src/tables/stock/StockItemTable.tsx:452
@@ -8941,22 +9088,26 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
-msgstr ""
+msgstr "항목이 생성되었습니다"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
-msgstr ""
+msgstr "재고 품목 {n}개가 생성되었습니다"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
-msgstr ""
+msgstr "재고 품목 삭제"
#: src/pages/stock/StockDetail.tsx:762
#~ msgid "Return Stock Item"
@@ -8966,59 +9117,67 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "재고 품목 일련번호 지정"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
-msgstr ""
+msgstr "재고 품목에 일련번호가 지정되었습니다"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
+msgstr "위치로 스캔"
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "스캔하여 위치로 이동"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "이 항목을 위치로 스캔"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "재고 운영"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
-msgstr ""
+msgstr "일련번호 지정"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
-msgstr ""
+msgstr "재고에 일련번호 지정"
#: src/pages/stock/StockDetail.tsx:890
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "재고 품목 작업"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,24 +9186,24 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
-msgstr ""
+msgstr "탁한"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
-msgstr ""
+msgstr "만료됨"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
-msgstr ""
+msgstr "없는"
#: src/states/IconState.tsx:47
#: src/states/IconState.tsx:77
msgid "Error loading icon package from server"
-msgstr ""
+msgstr "서버에서 아이콘 패키지를 불러오는 중 오류 발생"
#: src/tables/ColumnRenderers.tsx:41
#~ msgid "Part is locked"
@@ -9052,11 +9211,11 @@ msgstr ""
#: src/tables/ColumnRenderers.tsx:68
msgid "Part is not active"
-msgstr ""
+msgstr "부품이 활성화되지 않았습니다."
#: src/tables/ColumnRenderers.tsx:78
msgid "You are subscribed to notifications for this part"
-msgstr ""
+msgstr "이 부품의 알림을 구독 중입니다"
#: src/tables/ColumnRenderers.tsx:93
#~ msgid "No location set"
@@ -9064,78 +9223,73 @@ msgstr ""
#: src/tables/ColumnRenderers.tsx:162
msgid "This stock item is in production"
-msgstr ""
+msgstr "이 재고 품목은 생산 중입니다."
#: src/tables/ColumnRenderers.tsx:169
msgid "This stock item has been assigned to a sales order"
-msgstr ""
+msgstr "이 재고 품목은 판매 주문에 지정되었습니다."
#: src/tables/ColumnRenderers.tsx:176
msgid "This stock item has been assigned to a customer"
-msgstr ""
+msgstr "이 재고 품목은 고객에게 할당되었습니다."
#: src/tables/ColumnRenderers.tsx:183
msgid "This stock item is installed in another stock item"
-msgstr ""
+msgstr "이 재고 품목은 다른 재고 품목에 설치되어 있습니다."
#: src/tables/ColumnRenderers.tsx:190
msgid "This stock item has been consumed by a build order"
-msgstr ""
+msgstr "이 재고 품목은 생산 주문에서 사용되었습니다"
#: src/tables/ColumnRenderers.tsx:197
msgid "This stock item is unavailable"
-msgstr ""
+msgstr "이 재고 품목을 이용할 수 없습니다"
#: src/tables/ColumnRenderers.tsx:203
msgid "This stock item has expired"
-msgstr ""
+msgstr "이 재고 품목은 만료되었습니다."
#: src/tables/ColumnRenderers.tsx:207
msgid "This stock item is stale"
-msgstr ""
+msgstr "이 재고 품목은 오래되었습니다."
#: src/tables/ColumnRenderers.tsx:219
msgid "This stock item is over-allocated"
-msgstr ""
+msgstr "이 재고 항목은 초과 할당되었습니다."
#: src/tables/ColumnRenderers.tsx:227
msgid "This stock item is fully allocated"
-msgstr ""
+msgstr "이 재고 품목은 전부 할당되었습니다"
#: src/tables/ColumnRenderers.tsx:234
msgid "This stock item is partially allocated"
-msgstr ""
+msgstr "이 재고 품목은 일부 할당되었습니다"
#: src/tables/ColumnRenderers.tsx:252
#: src/tables/build/BuildLineTable.tsx:308
#: src/tables/sales/SalesOrderLineItemTable.tsx:156
msgid "No stock available"
-msgstr ""
+msgstr "재고가 없습니다"
#: src/tables/ColumnRenderers.tsx:262
msgid "This stock item has been depleted"
-msgstr ""
+msgstr "본 상품은 재고가 소진되었습니다"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
-msgstr ""
+msgstr "재고 정보"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
-msgstr ""
+msgstr "할당된 항목"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
-msgstr ""
-
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
+msgstr "광고 항목"
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
@@ -9171,278 +9325,278 @@ msgstr ""
#: src/tables/Filter.tsx:117
msgid "Has Batch Code"
-msgstr ""
+msgstr "배치 코드 있음"
#: src/tables/Filter.tsx:118
msgid "Show items which have a batch code"
-msgstr ""
+msgstr "배치 코드가 있는 항목 표시"
#: src/tables/Filter.tsx:126
msgid "Filter items by batch code"
-msgstr ""
+msgstr "배치 코드로 항목 필터링"
#: src/tables/Filter.tsx:135
msgid "Show items which are in stock"
-msgstr ""
+msgstr "재고가 있는 품목 표시"
#: src/tables/Filter.tsx:142
msgid "Is Serialized"
-msgstr ""
+msgstr "일련번호 있음"
#: src/tables/Filter.tsx:143
msgid "Show items which have a serial number"
-msgstr ""
+msgstr "시리얼 번호가 있는 항목 표시"
#: src/tables/Filter.tsx:150
#: src/tables/build/BuildAllocatedStockTable.tsx:134
msgid "Serial"
-msgstr ""
+msgstr "시리얼 번호"
#: src/tables/Filter.tsx:151
msgid "Filter items by serial number"
-msgstr ""
+msgstr "시리얼 번호로 항목 필터링"
#: src/tables/Filter.tsx:159
msgid "Serial Below"
-msgstr ""
+msgstr "시리얼 번호 이하"
#: src/tables/Filter.tsx:160
msgid "Show items with serial numbers less than or equal to a given value"
-msgstr ""
+msgstr "지정한 값 이하의 시리얼 번호를 가진 항목 표시"
#: src/tables/Filter.tsx:168
msgid "Serial Above"
-msgstr ""
+msgstr "시리얼 번호 이상"
#: src/tables/Filter.tsx:169
msgid "Show items with serial numbers greater than or equal to a given value"
-msgstr ""
+msgstr "지정한 값 이상의 시리얼 번호를 가진 항목 표시"
#: src/tables/Filter.tsx:178
msgid "Assigned to me"
-msgstr ""
+msgstr "나에게 할당됨"
#: src/tables/Filter.tsx:179
msgid "Show orders assigned to me"
-msgstr ""
+msgstr "나에게 할당된 주문 표시"
#: src/tables/Filter.tsx:186
#: src/tables/sales/SalesOrderAllocationTable.tsx:89
msgid "Outstanding"
-msgstr ""
+msgstr "미처리"
#: src/tables/Filter.tsx:187
msgid "Show outstanding items"
-msgstr ""
+msgstr "미처리 항목 표시"
#: src/tables/Filter.tsx:195
msgid "Show overdue items"
-msgstr ""
+msgstr "기한이 지난 항목 표시"
#: src/tables/Filter.tsx:202
msgid "Minimum Date"
-msgstr ""
+msgstr "최소 날짜"
#: src/tables/Filter.tsx:203
msgid "Show items after this date"
-msgstr ""
+msgstr "이 날짜 이후의 항목 표시"
#: src/tables/Filter.tsx:211
msgid "Maximum Date"
-msgstr ""
+msgstr "최대 날짜"
#: src/tables/Filter.tsx:212
msgid "Show items before this date"
-msgstr ""
+msgstr "이 날짜 이전의 항목 표시"
#: src/tables/Filter.tsx:220
msgid "Created Before"
-msgstr ""
+msgstr "다음 날짜 이전 생성"
#: src/tables/Filter.tsx:221
msgid "Show items created before this date"
-msgstr ""
+msgstr "이 날짜 이전에 생성된 항목 표시"
#: src/tables/Filter.tsx:229
msgid "Created After"
-msgstr ""
+msgstr "다음 날짜 이후 생성"
#: src/tables/Filter.tsx:230
msgid "Show items created after this date"
-msgstr ""
+msgstr "이 날짜 이후에 생성된 항목 표시"
#: src/tables/Filter.tsx:238
msgid "Start Date Before"
-msgstr ""
+msgstr "시작 날짜 이전"
#: src/tables/Filter.tsx:239
msgid "Show items with a start date before this date"
-msgstr ""
+msgstr "이 날짜 이전 시작일을 가진 항목 표시"
#: src/tables/Filter.tsx:247
msgid "Start Date After"
-msgstr ""
+msgstr "다음 이후 시작 날짜"
#: src/tables/Filter.tsx:248
msgid "Show items with a start date after this date"
-msgstr ""
+msgstr "이 날짜 이후 시작일을 가진 항목 표시"
#: src/tables/Filter.tsx:256
msgid "Target Date Before"
-msgstr ""
+msgstr "이전 목표 날짜"
#: src/tables/Filter.tsx:257
msgid "Show items with a target date before this date"
-msgstr ""
+msgstr "이 날짜 이전 목표일을 가진 항목 표시"
#: src/tables/Filter.tsx:265
msgid "Target Date After"
-msgstr ""
+msgstr "이후 목표 날짜"
#: src/tables/Filter.tsx:266
msgid "Show items with a target date after this date"
-msgstr ""
+msgstr "이 날짜 이후 목표일을 가진 항목 표시"
#: src/tables/Filter.tsx:274
msgid "Completed Before"
-msgstr ""
+msgstr "이전에 완료됨"
#: src/tables/Filter.tsx:275
msgid "Show items completed before this date"
-msgstr ""
+msgstr "이 날짜 이전에 완료된 항목 표시"
#: src/tables/Filter.tsx:283
msgid "Completed After"
-msgstr ""
+msgstr "다음 이후 완료"
#: src/tables/Filter.tsx:284
msgid "Show items completed after this date"
-msgstr ""
+msgstr "이 날짜 이후에 완료된 항목 표시"
#: src/tables/Filter.tsx:292
#: src/tables/stock/StockItemTable.tsx:284
msgid "Updated After"
-msgstr ""
+msgstr "업데이트일 이후"
#: src/tables/Filter.tsx:293
msgid "Show orders updated after this date"
-msgstr ""
+msgstr "이 날짜 이후에 업데이트된 주문 표시"
#: src/tables/Filter.tsx:301
#: src/tables/stock/StockItemTable.tsx:278
msgid "Updated Before"
-msgstr ""
+msgstr "업데이트일 이전"
#: src/tables/Filter.tsx:302
msgid "Show orders updated before this date"
-msgstr ""
+msgstr "이 날짜 이전에 업데이트된 주문 표시"
#: src/tables/Filter.tsx:314
msgid "Has Project Code"
-msgstr ""
+msgstr "프로젝트 코드가 있음"
#: src/tables/Filter.tsx:315
msgid "Show orders with an assigned project code"
-msgstr ""
+msgstr "할당된 프로젝트 코드로 주문 표시"
#: src/tables/Filter.tsx:324
msgid "Include Variants"
-msgstr ""
+msgstr "변형 포함"
#: src/tables/Filter.tsx:325
msgid "Include results for part variants"
-msgstr ""
+msgstr "부품 변형 결과 포함"
#: src/tables/Filter.tsx:335
#: src/tables/part/PartPurchaseOrdersTable.tsx:133
msgid "Filter by order status"
-msgstr ""
+msgstr "주문 상태로 필터링"
#: src/tables/Filter.tsx:347
msgid "Filter by project code"
-msgstr ""
+msgstr "프로젝트 코드로 필터링"
#: src/tables/Filter.tsx:380
msgid "Filter by responsible owner"
-msgstr ""
+msgstr "책임 소유자별로 필터링"
#: src/tables/Filter.tsx:396
#: src/tables/settings/ApiTokenTable.tsx:128
#: src/tables/stock/StockTrackingTable.tsx:226
msgid "Filter by user"
-msgstr ""
+msgstr "사용자별로 필터링"
#: src/tables/Filter.tsx:408
msgid "Filter by manufacturer"
-msgstr ""
+msgstr "제조업체별로 필터링"
#: src/tables/Filter.tsx:421
msgid "Filter by supplier"
-msgstr ""
+msgstr "공급업체로 필터링"
#: src/tables/Filter.tsx:434
msgid "Filter by user who created the order"
-msgstr ""
+msgstr "주문 생성 사용자로 필터링"
#: src/tables/Filter.tsx:442
msgid "Filter by user who issued the order"
-msgstr ""
+msgstr "주문 발행 사용자로 필터링"
#: src/tables/Filter.tsx:450
msgid "Filter by part category"
-msgstr ""
+msgstr "부품 카테고리별로 필터링"
#: src/tables/Filter.tsx:461
msgid "Filter by stock location"
-msgstr ""
+msgstr "재고 위치별로 필터링"
#: src/tables/FilterSelectDrawer.tsx:97
msgid "Remove filter"
-msgstr ""
+msgstr "필터 제거"
#: src/tables/FilterSelectDrawer.tsx:143
#: src/tables/FilterSelectDrawer.tsx:145
#: src/tables/FilterSelectDrawer.tsx:192
msgid "Select filter value"
-msgstr ""
+msgstr "필터 값 선택"
#: src/tables/FilterSelectDrawer.tsx:157
msgid "Enter filter value"
-msgstr ""
+msgstr "필터 값을 입력하세요"
#: src/tables/FilterSelectDrawer.tsx:179
msgid "Select date value"
-msgstr ""
+msgstr "날짜 값 선택"
#: src/tables/FilterSelectDrawer.tsx:301
msgid "Select filter"
-msgstr ""
+msgstr "필터 선택"
#: src/tables/FilterSelectDrawer.tsx:302
msgid "Filter"
-msgstr ""
+msgstr "필터"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
-msgstr ""
+msgstr "테이블 필터"
#: src/tables/FilterSelectDrawer.tsx:392
msgid "Add Filter"
-msgstr ""
+msgstr "필터 추가"
#: src/tables/FilterSelectDrawer.tsx:401
msgid "Clear Filters"
-msgstr ""
+msgstr "필터 지우기"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
-msgstr ""
+msgstr "기록을 찾을 수 없습니다"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
-msgstr ""
+msgstr "테이블 옵션을 불러오는 중 오류 발생"
#: src/tables/InvenTreeTable.tsx:250
#~ msgid "Failed to load table options"
@@ -9468,18 +9622,18 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
-msgstr ""
+msgstr "서버가 잘못된 데이터 유형을 반환했습니다."
#: src/tables/InvenTreeTable.tsx:594
#: src/tables/InvenTreeTable.tsx:595
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
-msgstr ""
+msgstr "테이블 데이터를 불러오는 중 오류 발생"
#: src/tables/InvenTreeTable.tsx:655
#: src/tables/InvenTreeTable.tsx:656
@@ -9494,51 +9648,51 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
-msgstr ""
+msgstr "상세 보기"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
-msgstr ""
-
-#: src/tables/InvenTreeTableHeader.tsx:103
-msgid "Delete Selected Items"
-msgstr ""
+msgstr "<<<모델>>> 보기"
#: src/tables/InvenTreeTableHeader.tsx:107
-msgid "Are you sure you want to delete the selected items?"
-msgstr ""
+msgid "Delete Selected Items"
+msgstr "선택한 항목 삭제"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:111
+msgid "Are you sure you want to delete the selected items?"
+msgstr "선택한 항목을 삭제하시겠습니까?"
+
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
-msgstr ""
+msgstr "이 작업은 취소할 수 없습니다."
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
-msgstr ""
+msgstr "삭제된 항목"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
-msgstr ""
+msgstr "항목을 삭제하지 못했습니다."
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
-msgstr ""
+msgstr "맞춤 표 필터가 활성화되었습니다."
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
-msgstr ""
+msgstr "선택한 기록 삭제"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
-msgstr ""
+msgstr "데이터 새로 고침"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
-msgstr ""
+msgstr "활성 필터"
#: src/tables/TableHoverCard.tsx:35
#~ msgid "item-{idx}"
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
-msgstr ""
+msgstr "이 BOM 항목은 다른 상위 항목에 대해 정의되었습니다."
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
-msgstr ""
+msgstr "이 BOM 항목은 아직 검증되지 않았습니다"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "부품정보"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
-msgstr ""
+msgstr "대체 부품"
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr "가상 부품"
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "외부 재고"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "대체재고 포함"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "변형 재고 포함"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,181 +9774,174 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "생산 중"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
-msgstr ""
+msgstr "소모성 아이템"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
-msgstr ""
+msgstr "사용 가능한 재고 없음"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
-msgstr ""
+msgstr "테스트 가능한 항목 표시"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
-msgstr ""
+msgstr "추적 가능한 항목 표시"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:424
-msgid "Show active items"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:429
-#: src/tables/build/BuildLineTable.tsx:214
-msgid "Show assembled items"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:434
-msgid "Show virtual items"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:439
-msgid "Show items with available stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:444
-msgid "Show items on order"
-msgstr ""
+msgstr "활성 부품"
#: src/tables/bom/BomTable.tsx:448
-msgid "Validated"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:449
-msgid "Show validated items"
-msgstr ""
+msgid "Show active items"
+msgstr "활성 항목 표시"
#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
-#: src/tables/bom/UsedInTable.tsx:86
-msgid "Show inherited items"
-msgstr ""
+#: src/tables/build/BuildLineTable.tsx:214
+msgid "Show assembled items"
+msgstr "조립 항목 표시"
#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
-msgid "Show items which allow variant substitution"
-msgstr ""
+msgid "Show virtual items"
+msgstr "가상 아이템 표시"
#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
-#: src/tables/bom/UsedInTable.tsx:91
-msgid "Show optional items"
-msgstr ""
+msgid "Show items with available stock"
+msgstr "재고가 있는 항목 표시"
#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
+msgid "Show items on order"
+msgstr "주문한 항목 표시"
-#: src/tables/bom/BomTable.tsx:469
-msgid "Show consumable items"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:472
+msgid "Validated"
+msgstr "검증됨"
#: src/tables/bom/BomTable.tsx:473
+msgid "Show validated items"
+msgstr "검증된 항목 표시"
+
+#: src/tables/bom/BomTable.tsx:478
+#: src/tables/bom/UsedInTable.tsx:86
+msgid "Show inherited items"
+msgstr "상속된 항목 표시"
+
+#: src/tables/bom/BomTable.tsx:483
+msgid "Show items which allow variant substitution"
+msgstr "변형 대체를 허용하는 항목 표시"
+
+#: src/tables/bom/BomTable.tsx:488
+#: src/tables/bom/UsedInTable.tsx:91
+msgid "Show optional items"
+msgstr "선택 항목 표시"
+
+#: src/tables/bom/BomTable.tsx:493
+msgid "Show consumable items"
+msgstr "소모성 아이템 표시"
+
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
-msgstr ""
+msgstr "가격 있음"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
-msgstr ""
+msgstr "가격이 포함된 항목 표시"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
-msgstr ""
+msgstr "BOM 데이터 가져오기"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
-msgstr ""
+msgstr "BOM 항목 추가"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
-msgstr ""
+msgstr "BOM 항목이 생성되었습니다."
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
-msgstr ""
+msgstr "BOM 항목 편집"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
-msgstr ""
+msgstr "BOM 항목이 업데이트되었습니다."
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
-msgstr ""
+msgstr "BOM 항목 삭제"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
-msgstr ""
+msgstr "BOM 항목이 삭제되었습니다."
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
-msgstr ""
+msgstr "BOM 항목이 검증되었습니다."
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
-msgstr ""
+msgstr "BOM 항목을 검증하지 못했습니다."
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
-msgstr ""
+msgstr "BOM 보기"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
-msgstr ""
+msgstr "BOM 행 검증"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
-msgstr ""
+msgstr "대체 부품 편집"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
-msgstr ""
+msgstr "BOM 항목 추가"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
-msgstr ""
+msgstr "단일 BOM 항목 추가"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
-msgstr ""
+msgstr "파일에서 가져오기"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
+msgstr "파일에서 BOM 항목 가져오기"
+
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
-msgid "Bill of materials cannot be edited, as the part is locked"
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
msgstr ""
+#: src/tables/bom/BomTable.tsx:709
+msgid "Bill of materials cannot be edited, as the part is locked"
+msgstr "부품이 잠겨 있으므로 BOM을 편집할 수 없습니다."
+
#: src/tables/bom/UsedInTable.tsx:41
#: src/tables/build/BuildLineTable.tsx:213
#: src/tables/part/ParametricPartTable.tsx:29
@@ -9807,29 +9949,29 @@ msgstr ""
#: src/tables/part/PartTable.tsx:210
#: src/tables/stock/StockItemTable.tsx:187
msgid "Assembly"
-msgstr ""
+msgstr "조립품"
#: src/tables/bom/UsedInTable.tsx:96
msgid "Show active assemblies"
-msgstr ""
+msgstr "활성 조립품 표시"
#: src/tables/bom/UsedInTable.tsx:100
#: src/tables/part/PartTable.tsx:240
#: src/tables/part/PartVariantTable.tsx:30
msgid "Trackable"
-msgstr ""
+msgstr "추적 가능"
#: src/tables/bom/UsedInTable.tsx:101
msgid "Show trackable assemblies"
-msgstr ""
+msgstr "추적 가능한 조립품 표시"
#: src/tables/build/BuildAllocatedStockTable.tsx:67
msgid "Allocated to Output"
-msgstr ""
+msgstr "결과물에 할당됨"
#: src/tables/build/BuildAllocatedStockTable.tsx:68
msgid "Show items allocated to a build output"
-msgstr ""
+msgstr "생산 결과물에 할당된 항목 표시"
#: src/tables/build/BuildAllocatedStockTable.tsx:73
#: src/tables/build/BuildOrderTable.tsx:197
@@ -9847,7 +9989,7 @@ msgstr ""
#: src/tables/sales/SalesOrderAllocationTable.tsx:123
#: src/tables/sales/SalesOrderShipmentTable.tsx:145
msgid "Order Status"
-msgstr ""
+msgstr "주문 상태"
#: src/tables/build/BuildAllocatedStockTable.tsx:164
#~ msgid "Edit Build Item"
@@ -9856,7 +9998,7 @@ msgstr ""
#: src/tables/build/BuildAllocatedStockTable.tsx:166
#: src/tables/build/BuildLineTable.tsx:657
msgid "Edit Stock Allocation"
-msgstr ""
+msgstr "재고 할당 편집"
#: src/tables/build/BuildAllocatedStockTable.tsx:174
#~ msgid "Delete Build Item"
@@ -9866,7 +10008,7 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:670
#: src/tables/sales/SalesOrderAllocationTable.tsx:217
msgid "Remove Allocated Stock"
-msgstr ""
+msgstr "할당된 재고 제거"
#: src/tables/build/BuildAllocatedStockTable.tsx:180
#: src/tables/build/BuildLineTable.tsx:663
@@ -9877,27 +10019,27 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:675
#: src/tables/sales/SalesOrderAllocationTable.tsx:220
msgid "Are you sure you want to remove this allocated stock from the order?"
-msgstr ""
+msgstr "할당된 재고를 주문에서 제거하시겠습니까?"
#: src/tables/build/BuildAllocatedStockTable.tsx:199
#: src/tables/build/BuildLineTable.tsx:690
msgid "Consuming allocated stock"
-msgstr ""
+msgstr "할당된 재고를 소비합니다."
#: src/tables/build/BuildAllocatedStockTable.tsx:200
#: src/tables/build/BuildLineTable.tsx:691
msgid "Stock consumed successfully"
-msgstr ""
+msgstr "재고가 성공적으로 소비되었습니다."
#: src/tables/build/BuildAllocatedStockTable.tsx:260
msgid "Consume"
-msgstr ""
+msgstr "소비하다"
#: src/tables/build/BuildAllocatedStockTable.tsx:277
#: src/tables/build/BuildLineTable.tsx:117
#: src/tables/sales/SalesOrderAllocationTable.tsx:247
msgid "Remove allocated stock"
-msgstr ""
+msgstr "할당된 재고 제거"
#: src/tables/build/BuildLineTable.tsx:59
#~ msgid "Show lines with available stock"
@@ -9905,11 +10047,11 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:126
msgid "View Stock Item"
-msgstr ""
+msgstr "재고 품목 보기"
#: src/tables/build/BuildLineTable.tsx:189
msgid "Show fully allocated lines"
-msgstr ""
+msgstr "완전히 할당된 항목 표시"
#: src/tables/build/BuildLineTable.tsx:189
#~ msgid "Show allocated lines"
@@ -9917,90 +10059,78 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:194
msgid "Show fully consumed lines"
-msgstr ""
+msgstr "완전히 소모된 항목 표시"
#: src/tables/build/BuildLineTable.tsx:199
msgid "Show items with sufficient available stock"
-msgstr ""
+msgstr "재고가 충분한 품목 표시"
#: src/tables/build/BuildLineTable.tsx:204
msgid "Show consumable lines"
-msgstr ""
+msgstr "소모성 항목 표시"
#: src/tables/build/BuildLineTable.tsx:209
msgid "Show optional lines"
-msgstr ""
+msgstr "선택 항목 표시"
#: src/tables/build/BuildLineTable.tsx:218
#: src/tables/part/PartTable.tsx:234
msgid "Testable"
-msgstr ""
+msgstr "테스트 가능"
#: src/tables/build/BuildLineTable.tsx:223
#: src/tables/stock/StockItemTable.tsx:242
msgid "Tracked"
-msgstr ""
+msgstr "추적됨"
#: src/tables/build/BuildLineTable.tsx:224
msgid "Show tracked lines"
-msgstr ""
+msgstr "추적된 항목 표시"
#: src/tables/build/BuildLineTable.tsx:229
msgid "Show items with stock on order"
-msgstr ""
+msgstr "주문된 재고가 있는 항목 표시"
#: src/tables/build/BuildLineTable.tsx:264
#: src/tables/sales/SalesOrderLineItemTable.tsx:168
msgid "In production"
-msgstr ""
+msgstr "생산 중"
#: src/tables/build/BuildLineTable.tsx:292
msgid "Insufficient stock"
-msgstr ""
+msgstr "재고 부족"
#: src/tables/build/BuildLineTable.tsx:377
msgid "Gets Inherited"
-msgstr ""
+msgstr "상속됨"
#: src/tables/build/BuildLineTable.tsx:390
msgid "Unit Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
+msgstr "단위 수량"
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
-msgstr ""
+msgstr "BOM 정보"
#: src/tables/build/BuildLineTable.tsx:517
#: src/tables/part/PartBuildAllocationsTable.tsx:102
msgid "Fully allocated"
-msgstr ""
+msgstr "완전히 할당됨"
#: src/tables/build/BuildLineTable.tsx:565
#: src/tables/sales/SalesOrderLineItemTable.tsx:309
msgid "Create Build Order"
-msgstr ""
+msgstr "생산 주문 생성"
#: src/tables/build/BuildLineTable.tsx:577
#: src/tables/build/BuildOutputTable.tsx:223
msgid "Allocating stock to build order"
-msgstr ""
+msgstr "생산 주문에 재고 할당 중"
#: src/tables/build/BuildLineTable.tsx:578
#: src/tables/build/BuildOutputTable.tsx:224
msgid "Stock allocation complete"
-msgstr ""
+msgstr "재고 할당이 완료되었습니다"
#: src/tables/build/BuildLineTable.tsx:585
#~ msgid "Auto allocation in progress"
@@ -10015,11 +10145,11 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:247
#: src/tables/build/BuildOutputTable.tsx:482
msgid "Auto Allocate Stock"
-msgstr ""
+msgstr "재고 자동 할당"
#: src/tables/build/BuildLineTable.tsx:603
msgid "Automatically allocate untracked BOM items to this build according to the selected options"
-msgstr ""
+msgstr "선택한 옵션에 따라 추적되지 않는 BOM 항목을 이 생산에 자동 할당합니다"
#: src/tables/build/BuildLineTable.tsx:623
#: src/tables/build/BuildLineTable.tsx:637
@@ -10028,28 +10158,28 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:393
#: src/tables/build/BuildOutputTable.tsx:398
msgid "Deallocate Stock"
-msgstr ""
+msgstr "재고 할당 해제"
#: src/tables/build/BuildLineTable.tsx:639
msgid "Deallocate all untracked stock for this build order"
-msgstr ""
+msgstr "이 생산 주문의 모든 비추적 재고 할당 해제"
#: src/tables/build/BuildLineTable.tsx:641
msgid "Deallocate stock from the selected line item"
-msgstr ""
+msgstr "선택한 항목에서 재고 할당 해제"
#: src/tables/build/BuildLineTable.tsx:645
msgid "Stock has been deallocated"
-msgstr ""
+msgstr "재고 할당이 취소되었습니다"
#: src/tables/build/BuildLineTable.tsx:800
msgid "Build Stock"
-msgstr ""
+msgstr "생산 재고"
#: src/tables/build/BuildLineTable.tsx:813
#: src/tables/sales/SalesOrderLineItemTable.tsx:485
msgid "View Part"
-msgstr ""
+msgstr "부품 보기"
#: src/tables/build/BuildOrderTable.tsx:116
#~ msgid "Cascade"
@@ -10083,28 +10213,28 @@ msgstr ""
#: src/tables/sales/ReturnOrderTable.tsx:94
#: src/tables/sales/SalesOrderTable.tsx:92
msgid "Has Target Date"
-msgstr ""
+msgstr "목표 날짜 있음"
#: src/tables/build/BuildOrderTable.tsx:172
#: src/tables/purchasing/PurchaseOrderTable.tsx:95
#: src/tables/sales/ReturnOrderTable.tsx:95
#: src/tables/sales/SalesOrderTable.tsx:93
msgid "Show orders with a target date"
-msgstr ""
+msgstr "목표 날짜가 포함된 주문 표시"
#: src/tables/build/BuildOrderTable.tsx:177
#: src/tables/purchasing/PurchaseOrderTable.tsx:100
#: src/tables/sales/ReturnOrderTable.tsx:100
#: src/tables/sales/SalesOrderTable.tsx:98
msgid "Has Start Date"
-msgstr ""
+msgstr "시작일이 있음"
#: src/tables/build/BuildOrderTable.tsx:178
#: src/tables/purchasing/PurchaseOrderTable.tsx:101
#: src/tables/sales/ReturnOrderTable.tsx:101
#: src/tables/sales/SalesOrderTable.tsx:99
msgid "Show orders with a start date"
-msgstr ""
+msgstr "시작 날짜가 포함된 주문 표시"
#: src/tables/build/BuildOrderTable.tsx:179
#~ msgid "Filter by user who issued this order"
@@ -10112,7 +10242,7 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:102
msgid "Build Output Stock Allocation"
-msgstr ""
+msgstr "생산 결과물 재고 할당"
#: src/tables/build/BuildOutputTable.tsx:161
#~ msgid "Delete build output"
@@ -10124,7 +10254,7 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:248
msgid "Automatically allocate tracked BOM items to this build according to the selected options"
-msgstr ""
+msgstr "선택한 옵션에 따라 추적되는 BOM 항목을 이 생산에 자동 할당합니다"
#: src/tables/build/BuildOutputTable.tsx:304
#~ msgid "Edit build output"
@@ -10133,34 +10263,34 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:327
#: src/tables/build/BuildOutputTable.tsx:523
msgid "Add Build Output"
-msgstr ""
+msgstr "생산 결과물 추가"
#: src/tables/build/BuildOutputTable.tsx:330
msgid "Build output created"
-msgstr ""
+msgstr "생산 결과물이 생성되었습니다"
#: src/tables/build/BuildOutputTable.tsx:384
#: src/tables/build/BuildOutputTable.tsx:593
msgid "Edit Build Output"
-msgstr ""
+msgstr "생산 결과물 편집"
#: src/tables/build/BuildOutputTable.tsx:400
msgid "This action will deallocate all stock from the selected build output"
-msgstr ""
+msgstr "이 작업은 선택한 생산 결과물의 모든 재고 할당을 해제합니다"
#: src/tables/build/BuildOutputTable.tsx:425
msgid "Serialize Build Output"
-msgstr ""
+msgstr "생산 결과물 일련번호 지정"
#: src/tables/build/BuildOutputTable.tsx:443
#: src/tables/part/PartTestResultTable.tsx:319
#: src/tables/stock/StockItemTable.tsx:182
msgid "Filter by stock status"
-msgstr ""
+msgstr "재고 상태로 필터링"
#: src/tables/build/BuildOutputTable.tsx:490
msgid "Complete selected outputs"
-msgstr ""
+msgstr "선택한 결과물 완료"
#: src/tables/build/BuildOutputTable.tsx:498
#~ msgid "View Build Output"
@@ -10168,80 +10298,80 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:501
msgid "Scrap selected outputs"
-msgstr ""
+msgstr "선택한 결과물 폐기"
#: src/tables/build/BuildOutputTable.tsx:512
msgid "Cancel selected outputs"
-msgstr ""
+msgstr "선택한 결과물 취소"
#: src/tables/build/BuildOutputTable.tsx:543
msgid "Allocate"
-msgstr ""
+msgstr "할당하다"
#: src/tables/build/BuildOutputTable.tsx:544
msgid "Allocate stock to build output"
-msgstr ""
+msgstr "생산 결과물에 재고 할당"
#: src/tables/build/BuildOutputTable.tsx:557
msgid "Deallocate"
-msgstr ""
+msgstr "할당 해제"
#: src/tables/build/BuildOutputTable.tsx:558
msgid "Deallocate stock from build output"
-msgstr ""
+msgstr "생산 결과물에서 재고 할당 해제"
#: src/tables/build/BuildOutputTable.tsx:572
msgid "Serialize build output"
-msgstr ""
+msgstr "생산 결과물 일련번호 지정"
#: src/tables/build/BuildOutputTable.tsx:583
msgid "Complete build output"
-msgstr ""
+msgstr "생산 결과물 완료"
#: src/tables/build/BuildOutputTable.tsx:600
msgid "Scrap"
-msgstr ""
+msgstr "권투 시합"
#: src/tables/build/BuildOutputTable.tsx:601
msgid "Scrap build output"
-msgstr ""
+msgstr "생산 결과물 폐기"
#: src/tables/build/BuildOutputTable.tsx:611
msgid "Cancel build output"
-msgstr ""
+msgstr "생산 결과물 취소"
#: src/tables/build/BuildOutputTable.tsx:675
msgid "Required Tests"
-msgstr ""
+msgstr "필수 테스트"
#: src/tables/build/BuildOutputTable.tsx:751
msgid "External Build"
-msgstr ""
+msgstr "외부 생산"
#: src/tables/build/BuildOutputTable.tsx:753
msgid "This build order is fulfilled by an external purchase order"
-msgstr ""
+msgstr "이 생산 주문은 외부 발주서로 이행됩니다"
#: src/tables/company/AddressTable.tsx:122
#: src/tables/company/AddressTable.tsx:187
msgid "Add Address"
-msgstr ""
+msgstr "주소 추가"
#: src/tables/company/AddressTable.tsx:127
msgid "Address created"
-msgstr ""
+msgstr "주소가 생성되었습니다"
#: src/tables/company/AddressTable.tsx:136
msgid "Edit Address"
-msgstr ""
+msgstr "주소 편집"
#: src/tables/company/AddressTable.tsx:144
msgid "Delete Address"
-msgstr ""
+msgstr "주소 삭제"
#: src/tables/company/AddressTable.tsx:145
msgid "Are you sure you want to delete this address?"
-msgstr ""
+msgstr "이 주소를 삭제하시겠습니까?"
#: src/tables/company/CompanyTable.tsx:71
#~ msgid "New Company"
@@ -10250,43 +10380,43 @@ msgstr ""
#: src/tables/company/CompanyTable.tsx:79
#: src/tables/company/CompanyTable.tsx:130
msgid "Add Company"
-msgstr ""
+msgstr "회사 추가"
#: src/tables/company/CompanyTable.tsx:102
msgid "Show active companies"
-msgstr ""
+msgstr "활성 회사 표시"
#: src/tables/company/CompanyTable.tsx:107
msgid "Show companies which are suppliers"
-msgstr ""
+msgstr "공급업체인 회사 표시"
#: src/tables/company/CompanyTable.tsx:112
msgid "Show companies which are manufacturers"
-msgstr ""
+msgstr "제조업체인 회사 보기"
#: src/tables/company/CompanyTable.tsx:117
msgid "Show companies which are customers"
-msgstr ""
+msgstr "고객인 회사 표시"
#: src/tables/company/ContactTable.tsx:99
msgid "Edit Contact"
-msgstr ""
+msgstr "연락처 편집"
#: src/tables/company/ContactTable.tsx:106
msgid "Add Contact"
-msgstr ""
+msgstr "연락처 추가"
#: src/tables/company/ContactTable.tsx:117
msgid "Delete Contact"
-msgstr ""
+msgstr "연락처 삭제"
#: src/tables/company/ContactTable.tsx:158
msgid "Add contact"
-msgstr ""
+msgstr "연락처 추가"
#: src/tables/general/AttachmentTable.tsx:108
msgid "Uploading file {filename}"
-msgstr ""
+msgstr "{filename} 파일 업로드 중"
#: src/tables/general/AttachmentTable.tsx:139
#~ msgid "File uploaded"
@@ -10299,23 +10429,23 @@ msgstr ""
#: src/tables/general/AttachmentTable.tsx:160
#: src/tables/general/AttachmentTable.tsx:174
msgid "Uploading File"
-msgstr ""
+msgstr "파일 업로드 중"
#: src/tables/general/AttachmentTable.tsx:185
msgid "File Uploaded"
-msgstr ""
+msgstr "파일이 업로드됨"
#: src/tables/general/AttachmentTable.tsx:186
msgid "File {name} uploaded successfully"
-msgstr ""
+msgstr "{name} 파일이 성공적으로 업로드되었습니다"
#: src/tables/general/AttachmentTable.tsx:202
msgid "File could not be uploaded"
-msgstr ""
+msgstr "파일을 업로드할 수 없습니다."
#: src/tables/general/AttachmentTable.tsx:253
msgid "Upload Attachment"
-msgstr ""
+msgstr "첨부파일 업로드"
#: src/tables/general/AttachmentTable.tsx:254
#~ msgid "Upload attachment"
@@ -10323,55 +10453,51 @@ msgstr ""
#: src/tables/general/AttachmentTable.tsx:263
msgid "Edit Attachment"
-msgstr ""
+msgstr "첨부파일 편집"
#: src/tables/general/AttachmentTable.tsx:277
msgid "Delete Attachment"
-msgstr ""
+msgstr "첨부파일 삭제"
#: src/tables/general/AttachmentTable.tsx:287
msgid "Is Link"
-msgstr ""
+msgstr "링크인가"
#: src/tables/general/AttachmentTable.tsx:288
msgid "Show link attachments"
-msgstr ""
+msgstr "링크 첨부파일 표시"
#: src/tables/general/AttachmentTable.tsx:292
msgid "Is File"
-msgstr ""
+msgstr "파일임"
#: src/tables/general/AttachmentTable.tsx:293
msgid "Show file attachments"
-msgstr ""
+msgstr "파일 첨부파일 표시"
#: src/tables/general/AttachmentTable.tsx:302
msgid "Add attachment"
-msgstr ""
+msgstr "첨부파일 추가"
#: src/tables/general/AttachmentTable.tsx:313
msgid "Add external link"
-msgstr ""
+msgstr "외부 링크 추가"
#: src/tables/general/AttachmentTable.tsx:361
msgid "No attachments found"
-msgstr ""
+msgstr "첨부파일이 없습니다."
#: src/tables/general/AttachmentTable.tsx:400
msgid "Drag attachment file here to upload"
-msgstr ""
-
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
+msgstr "첨부파일을 여기에 끌어다 놓아 업로드하세요"
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
-msgstr ""
+msgstr "모델"
#: src/tables/general/BarcodeScanTable.tsx:75
msgid "View Item"
-msgstr ""
+msgstr "항목 보기"
#: src/tables/general/ExtraLineItemTable.tsx:97
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:298
@@ -10381,167 +10507,167 @@ msgstr ""
#: src/tables/sales/SalesOrderLineItemTable.tsx:248
#: src/tables/sales/SalesOrderLineItemTable.tsx:355
msgid "Add Line Item"
-msgstr ""
+msgstr "항목 추가"
#: src/tables/general/ExtraLineItemTable.tsx:110
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:321
#: src/tables/sales/ReturnOrderLineItemTable.tsx:98
#: src/tables/sales/SalesOrderLineItemTable.tsx:267
msgid "Edit Line Item"
-msgstr ""
+msgstr "항목 편집"
#: src/tables/general/ExtraLineItemTable.tsx:119
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330
#: src/tables/sales/ReturnOrderLineItemTable.tsx:107
#: src/tables/sales/SalesOrderLineItemTable.tsx:276
msgid "Delete Line Item"
-msgstr ""
+msgstr "항목 삭제"
#: src/tables/general/ExtraLineItemTable.tsx:157
msgid "Add Extra Line Item"
-msgstr ""
+msgstr "추가 항목 추가"
#: src/tables/general/ParameterTable.tsx:88
msgid "Internal Units"
-msgstr ""
+msgstr "내부 단위"
#: src/tables/general/ParameterTable.tsx:108
#: src/tables/general/ParameterTable.tsx:123
#: src/tables/settings/TemplateTable.tsx:262
msgid "Updated By"
-msgstr ""
+msgstr "업데이트한 사용자"
#: src/tables/general/ParameterTable.tsx:118
msgid "Show parameters for enabled templates"
-msgstr ""
+msgstr "활성화된 템플릿의 파라미터 표시"
#: src/tables/general/ParameterTable.tsx:124
msgid "Filter by user who last updated the parameter"
-msgstr ""
+msgstr "파라미터를 마지막으로 업데이트한 사용자로 필터링"
#: src/tables/general/ParameterTable.tsx:149
msgid "Import Parameters"
-msgstr ""
+msgstr "매개변수 가져오기"
#: src/tables/general/ParameterTable.tsx:160
#: src/tables/general/ParametricDataTable.tsx:271
#: src/tables/general/ParametricDataTable.tsx:402
msgid "Add Parameter"
-msgstr ""
+msgstr "매개변수 추가"
#: src/tables/general/ParameterTable.tsx:171
#: src/tables/general/ParameterTable.tsx:218
#: src/tables/general/ParametricDataTable.tsx:295
msgid "Edit Parameter"
-msgstr ""
+msgstr "매개변수 편집"
#: src/tables/general/ParameterTable.tsx:179
#: src/tables/general/ParameterTable.tsx:226
msgid "Delete Parameter"
-msgstr ""
+msgstr "매개변수 삭제"
#: src/tables/general/ParameterTable.tsx:187
msgid "Add Parameters"
-msgstr ""
+msgstr "매개변수 추가"
#: src/tables/general/ParameterTable.tsx:193
msgid "Create Parameter"
-msgstr ""
+msgstr "매개변수 생성"
#: src/tables/general/ParameterTable.tsx:195
msgid "Create a new parameter"
-msgstr ""
+msgstr "새 매개변수 생성"
#: src/tables/general/ParameterTable.tsx:204
msgid "Import parameters from a file"
-msgstr ""
+msgstr "파일에서 매개변수 가져오기"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
-msgstr ""
+msgstr "매개변수 템플릿 추가"
+
+#: src/tables/general/ParameterTemplateTable.tsx:54
+msgid "Duplicate Parameter Template"
+msgstr "중복 매개변수 템플릿"
#: src/tables/general/ParameterTemplateTable.tsx:68
-msgid "Duplicate Parameter Template"
-msgstr ""
-
-#: src/tables/general/ParameterTemplateTable.tsx:82
msgid "Delete Parameter Template"
-msgstr ""
+msgstr "매개변수 템플릿 삭제"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
-msgstr ""
+msgstr "매개변수 템플릿 편집"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
-msgstr ""
+msgstr "체크박스"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
-msgstr ""
+msgstr "체크박스 템플릿 표시"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
-msgstr ""
+msgstr "선택권 있음"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
-msgstr ""
+msgstr "선택 항목이 있는 템플릿 표시"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
-msgstr ""
+msgstr "단위 있음"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
-msgstr ""
+msgstr "단위가 포함된 템플릿 표시"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
-msgstr ""
+msgstr "활성화된 템플릿 표시"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
-msgstr ""
+msgstr "모델 유형"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
-msgstr ""
+msgstr "모델 유형으로 필터링"
#: src/tables/general/ParametricDataTable.tsx:79
msgid "Click to edit"
-msgstr ""
+msgstr "수정하려면 클릭하세요."
#: src/tables/general/ParametricDataTableFilters.tsx:36
msgid "True"
-msgstr ""
+msgstr "진실"
#: src/tables/general/ParametricDataTableFilters.tsx:37
msgid "False"
-msgstr ""
+msgstr "거짓"
#: src/tables/general/ParametricDataTableFilters.tsx:47
#: src/tables/general/ParametricDataTableFilters.tsx:80
msgid "Select a choice"
-msgstr ""
+msgstr "선택지를 고르세요"
#: src/tables/general/ParametricDataTableFilters.tsx:100
msgid "Enter a value"
-msgstr ""
+msgstr "값을 입력하세요"
#: src/tables/machine/MachineListTable.tsx:133
msgid "Machine restarted"
-msgstr ""
+msgstr "장비가 재시작되었습니다"
#: src/tables/machine/MachineListTable.tsx:235
#: src/tables/machine/MachineListTable.tsx:297
#: src/tables/machine/MachineListTable.tsx:729
msgid "Edit machine"
-msgstr ""
+msgstr "장비 편집"
#: src/tables/machine/MachineListTable.tsx:235
#~ msgid "Are you sure you want to remove the machine \"{0}\"?"
@@ -10550,26 +10676,26 @@ msgstr ""
#: src/tables/machine/MachineListTable.tsx:249
#: src/tables/machine/MachineListTable.tsx:301
msgid "Delete machine"
-msgstr ""
+msgstr "장비 삭제"
#: src/tables/machine/MachineListTable.tsx:250
#: src/tables/machine/MachineListTable.tsx:692
msgid "Machine successfully deleted."
-msgstr ""
+msgstr "장비가 성공적으로 삭제되었습니다."
#: src/tables/machine/MachineListTable.tsx:255
#: src/tables/machine/MachineListTable.tsx:697
msgid "Are you sure you want to remove this machine?"
-msgstr ""
+msgstr "이 장비를 삭제하시겠습니까?"
#: src/tables/machine/MachineListTable.tsx:285
msgid "Machine"
-msgstr ""
+msgstr "장비"
#: src/tables/machine/MachineListTable.tsx:290
#: src/tables/machine/MachineListTable.tsx:568
msgid "Restart required"
-msgstr ""
+msgstr "다시 시작해야 함"
#: src/tables/machine/MachineListTable.tsx:291
#~ msgid "Machine information"
@@ -10577,19 +10703,19 @@ msgstr ""
#: src/tables/machine/MachineListTable.tsx:294
msgid "Machine Actions"
-msgstr ""
+msgstr "장비 작업"
#: src/tables/machine/MachineListTable.tsx:306
msgid "Restart"
-msgstr ""
+msgstr "다시 시작"
#: src/tables/machine/MachineListTable.tsx:308
msgid "Restart machine"
-msgstr ""
+msgstr "장비 재시작"
#: src/tables/machine/MachineListTable.tsx:310
msgid "manual restart required"
-msgstr ""
+msgstr "수동으로 다시 시작해야 함"
#: src/tables/machine/MachineListTable.tsx:315
#~ msgid "Machine Information"
@@ -10597,29 +10723,29 @@ msgstr ""
#: src/tables/machine/MachineListTable.tsx:343
msgid "General"
-msgstr ""
+msgstr "일반적인"
#: src/tables/machine/MachineListTable.tsx:353
#: src/tables/machine/MachineListTable.tsx:804
msgid "Machine Type"
-msgstr ""
+msgstr "장비 유형"
#: src/tables/machine/MachineListTable.tsx:366
msgid "Machine Driver"
-msgstr ""
+msgstr "장비 드라이버"
#: src/tables/machine/MachineListTable.tsx:381
msgid "Initialized"
-msgstr ""
+msgstr "초기화됨"
#: src/tables/machine/MachineListTable.tsx:410
#: src/tables/machine/MachineTypeTable.tsx:305
msgid "No errors reported"
-msgstr ""
+msgstr "보고된 오류 없음"
#: src/tables/machine/MachineListTable.tsx:431
msgid "Properties"
-msgstr ""
+msgstr "속성"
#: src/tables/machine/MachineListTable.tsx:494
#~ msgid "Create machine"
@@ -10627,7 +10753,7 @@ msgstr ""
#: src/tables/machine/MachineListTable.tsx:521
msgid "Driver Settings"
-msgstr ""
+msgstr "드라이버 설정"
#: src/tables/machine/MachineListTable.tsx:561
#~ msgid "Machine detail"
@@ -10635,40 +10761,40 @@ msgstr ""
#: src/tables/machine/MachineListTable.tsx:648
msgid "Add Machine"
-msgstr ""
+msgstr "장비 추가"
#: src/tables/machine/MachineListTable.tsx:691
#: src/tables/machine/MachineListTable.tsx:736
msgid "Delete Machine"
-msgstr ""
+msgstr "장비 삭제"
#: src/tables/machine/MachineListTable.tsx:704
msgid "Edit Machine"
-msgstr ""
+msgstr "장비 편집"
#: src/tables/machine/MachineListTable.tsx:718
msgid "Restart Machine"
-msgstr ""
+msgstr "장비 재시작"
#: src/tables/machine/MachineListTable.tsx:749
msgid "Add machine"
-msgstr ""
+msgstr "장비 추가"
#: src/tables/machine/MachineListTable.tsx:765
msgid "Machine Detail"
-msgstr ""
+msgstr "장비 상세 정보"
#: src/tables/machine/MachineListTable.tsx:813
msgid "Driver"
-msgstr ""
+msgstr "운전사"
#: src/tables/machine/MachineTypeTable.tsx:72
msgid "Driver Type"
-msgstr ""
+msgstr "드라이버 유형"
#: src/tables/machine/MachineTypeTable.tsx:76
msgid "Builtin driver"
-msgstr ""
+msgstr "내장 드라이버"
#: src/tables/machine/MachineTypeTable.tsx:99
#~ msgid "Machine type information"
@@ -10676,15 +10802,15 @@ msgstr ""
#: src/tables/machine/MachineTypeTable.tsx:126
msgid "Not Found"
-msgstr ""
+msgstr "찾을 수 없음"
#: src/tables/machine/MachineTypeTable.tsx:129
msgid "Machine type not found."
-msgstr ""
+msgstr "장비 유형을 찾을 수 없습니다."
#: src/tables/machine/MachineTypeTable.tsx:139
msgid "Machine Type Information"
-msgstr ""
+msgstr "장비 유형 정보"
#: src/tables/machine/MachineTypeTable.tsx:148
#~ msgid "Available drivers"
@@ -10693,33 +10819,33 @@ msgstr ""
#: src/tables/machine/MachineTypeTable.tsx:154
#: src/tables/machine/MachineTypeTable.tsx:253
msgid "Slug"
-msgstr ""
+msgstr "강타"
#: src/tables/machine/MachineTypeTable.tsx:165
#: src/tables/machine/MachineTypeTable.tsx:274
msgid "Provider plugin"
-msgstr ""
+msgstr "공급자 플러그인"
#: src/tables/machine/MachineTypeTable.tsx:177
#: src/tables/machine/MachineTypeTable.tsx:286
msgid "Provider file"
-msgstr ""
+msgstr "공급자 파일"
#: src/tables/machine/MachineTypeTable.tsx:192
msgid "Available Drivers"
-msgstr ""
+msgstr "사용 가능한 드라이버"
#: src/tables/machine/MachineTypeTable.tsx:232
msgid "Machine driver not found."
-msgstr ""
+msgstr "장비 드라이버를 찾을 수 없습니다."
#: src/tables/machine/MachineTypeTable.tsx:240
msgid "Machine driver information"
-msgstr ""
+msgstr "장비 드라이버 정보"
#: src/tables/machine/MachineTypeTable.tsx:260
msgid "Machine type"
-msgstr ""
+msgstr "장비 유형"
#: src/tables/machine/MachineTypeTable.tsx:338
#~ msgid "Machine type detail"
@@ -10731,41 +10857,41 @@ msgstr ""
#: src/tables/machine/MachineTypeTable.tsx:360
msgid "Builtin type"
-msgstr ""
+msgstr "내장형"
#: src/tables/machine/MachineTypeTable.tsx:369
msgid "Machine Type Detail"
-msgstr ""
+msgstr "장비 유형 상세 정보"
#: src/tables/machine/MachineTypeTable.tsx:379
msgid "Machine Driver Detail"
-msgstr ""
+msgstr "장비 드라이버 상세 정보"
#: src/tables/notifications/NotificationTable.tsx:26
msgid "Age"
-msgstr ""
+msgstr "기간"
#: src/tables/notifications/NotificationTable.tsx:37
msgid "Notification"
-msgstr ""
+msgstr "공고"
#: src/tables/notifications/NotificationTable.tsx:41
#: src/tables/plugin/PluginErrorTable.tsx:39
#: src/tables/settings/ErrorTable.tsx:50
msgid "Message"
-msgstr ""
+msgstr "메시지"
#: src/tables/part/ParametricPartTable.tsx:20
msgid "Show active parts"
-msgstr ""
+msgstr "활성 부품 표시"
#: src/tables/part/ParametricPartTable.tsx:25
msgid "Show locked parts"
-msgstr ""
+msgstr "잠긴 부분 표시"
#: src/tables/part/ParametricPartTable.tsx:30
msgid "Show assembly parts"
-msgstr ""
+msgstr "조립 부품 표시"
#: src/tables/part/ParametricPartTable.tsx:82
#~ msgid "Edit parameter"
@@ -10783,75 +10909,75 @@ msgstr ""
#: src/tables/part/PartBuildAllocationsTable.tsx:64
msgid "Assembly IPN"
-msgstr ""
+msgstr "조립 IPN"
#: src/tables/part/PartBuildAllocationsTable.tsx:73
msgid "Part IPN"
-msgstr ""
+msgstr "부분 IPN"
#: src/tables/part/PartBuildAllocationsTable.tsx:91
msgid "Required Stock"
-msgstr ""
+msgstr "필수재고"
#: src/tables/part/PartBuildAllocationsTable.tsx:124
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:382
msgid "View Build Order"
-msgstr ""
+msgstr "생산 주문 보기"
#: src/tables/part/PartCategoryTable.tsx:52
msgid "You are subscribed to notifications for this category"
-msgstr ""
+msgstr "이 카테고리의 알림을 구독 중입니다"
#: src/tables/part/PartCategoryTable.tsx:86
#: src/tables/part/PartTable.tsx:222
msgid "Include Subcategories"
-msgstr ""
+msgstr "하위 카테고리 포함"
#: src/tables/part/PartCategoryTable.tsx:87
msgid "Include subcategories in results"
-msgstr ""
+msgstr "결과에 하위 카테고리 포함"
#: src/tables/part/PartCategoryTable.tsx:92
msgid "Show structural categories"
-msgstr ""
+msgstr "구조적 카테고리 표시"
#: src/tables/part/PartCategoryTable.tsx:97
msgid "Show categories to which the user is subscribed"
-msgstr ""
+msgstr "사용자가 구독 중인 카테고리 표시"
#: src/tables/part/PartCategoryTable.tsx:106
msgid "New Part Category"
-msgstr ""
+msgstr "새 부품 범주"
#: src/tables/part/PartCategoryTable.tsx:133
msgid "Set Parent Category"
-msgstr ""
+msgstr "상위 카테고리 설정"
#: src/tables/part/PartCategoryTable.tsx:151
#: src/tables/stock/StockLocationTable.tsx:150
msgid "Set Parent"
-msgstr ""
+msgstr "상위 설정"
#: src/tables/part/PartCategoryTable.tsx:153
msgid "Set parent category for the selected items"
-msgstr ""
+msgstr "선택한 항목의 상위 카테고리 설정"
#: src/tables/part/PartCategoryTable.tsx:164
msgid "Add Part Category"
-msgstr ""
+msgstr "부품 카테고리 추가"
#: src/tables/part/PartCategoryTemplateTable.tsx:49
#: src/tables/part/PartCategoryTemplateTable.tsx:143
msgid "Add Category Parameter"
-msgstr ""
+msgstr "카테고리 매개변수 추가"
#: src/tables/part/PartCategoryTemplateTable.tsx:57
msgid "Edit Category Parameter"
-msgstr ""
+msgstr "카테고리 매개변수 편집"
#: src/tables/part/PartCategoryTemplateTable.tsx:65
msgid "Delete Category Parameter"
-msgstr ""
+msgstr "카테고리 매개변수 삭제"
#: src/tables/part/PartCategoryTemplateTable.tsx:93
#~ msgid "[{0}]"
@@ -10877,104 +11003,104 @@ msgstr ""
#: src/tables/part/PartPurchaseOrdersTable.tsx:79
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:193
msgid "Total Quantity"
-msgstr ""
+msgstr "총수량"
#: src/tables/part/PartPurchaseOrdersTable.tsx:123
msgid "Show pending orders"
-msgstr ""
+msgstr "보류 중인 주문 표시"
#: src/tables/part/PartPurchaseOrdersTable.tsx:128
msgid "Show received items"
-msgstr ""
+msgstr "입고된 항목 표시"
#: src/tables/part/PartSalesAllocationsTable.tsx:88
#: src/tables/sales/SalesOrderShipmentTable.tsx:258
msgid "View Sales Order"
-msgstr ""
+msgstr "판매 주문 보기"
#: src/tables/part/PartTable.tsx:100
msgid "Minimum stock"
-msgstr ""
+msgstr "최소 재고"
#: src/tables/part/PartTable.tsx:199
msgid "Filter by part active status"
-msgstr ""
+msgstr "부품 활성 상태로 필터링"
#: src/tables/part/PartTable.tsx:205
msgid "Filter by part locked status"
-msgstr ""
+msgstr "부품 잠금 상태로 필터링"
#: src/tables/part/PartTable.tsx:211
msgid "Filter by assembly attribute"
-msgstr ""
+msgstr "조립 속성으로 필터링"
#: src/tables/part/PartTable.tsx:216
msgid "BOM Valid"
-msgstr ""
+msgstr "유효한 BOM"
#: src/tables/part/PartTable.tsx:217
msgid "Filter by parts with a valid BOM"
-msgstr ""
+msgstr "유효한 BOM이 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:223
msgid "Include parts in subcategories"
-msgstr ""
+msgstr "하위 범주에 부품 포함"
#: src/tables/part/PartTable.tsx:229
msgid "Filter by component attribute"
-msgstr ""
+msgstr "구성품 속성으로 필터링"
#: src/tables/part/PartTable.tsx:235
msgid "Filter by testable attribute"
-msgstr ""
+msgstr "테스트 가능 속성으로 필터링"
#: src/tables/part/PartTable.tsx:241
msgid "Filter by trackable attribute"
-msgstr ""
+msgstr "추적 가능 속성으로 필터링"
#: src/tables/part/PartTable.tsx:247
msgid "Filter by parts which have units"
-msgstr ""
+msgstr "단위가 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:252
msgid "Has IPN"
-msgstr ""
+msgstr "IPN 있음"
#: src/tables/part/PartTable.tsx:253
msgid "Filter by parts which have an internal part number"
-msgstr ""
+msgstr "내부 부품 번호가 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:258
msgid "Has Stock"
-msgstr ""
+msgstr "재고 있음"
#: src/tables/part/PartTable.tsx:259
msgid "Filter by parts which have stock"
-msgstr ""
+msgstr "재고가 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:265
msgid "Filter by parts which have low stock"
-msgstr ""
+msgstr "재고가 부족한 부품으로 필터링"
#: src/tables/part/PartTable.tsx:270
msgid "Purchaseable"
-msgstr ""
+msgstr "구매 가능"
#: src/tables/part/PartTable.tsx:271
msgid "Filter by parts which are purchaseable"
-msgstr ""
+msgstr "구매 가능한 부품으로 필터링"
#: src/tables/part/PartTable.tsx:276
msgid "Salable"
-msgstr ""
+msgstr "팔리는"
#: src/tables/part/PartTable.tsx:277
msgid "Filter by parts which are salable"
-msgstr ""
+msgstr "판매 가능한 부품으로 필터링"
#: src/tables/part/PartTable.tsx:283
msgid "Filter by parts which are virtual"
-msgstr ""
+msgstr "가상 부품으로 필터링"
#: src/tables/part/PartTable.tsx:287
#~ msgid "Not Virtual"
@@ -10982,43 +11108,43 @@ msgstr ""
#: src/tables/part/PartTable.tsx:288
msgid "Is Template"
-msgstr ""
+msgstr "템플릿임"
#: src/tables/part/PartTable.tsx:289
msgid "Filter by parts which are templates"
-msgstr ""
+msgstr "템플릿 부품으로 필터링"
#: src/tables/part/PartTable.tsx:294
msgid "Is Variant"
-msgstr ""
+msgstr "변형인가"
#: src/tables/part/PartTable.tsx:295
msgid "Filter by parts which are variants"
-msgstr ""
+msgstr "변형 부품으로 필터링"
#: src/tables/part/PartTable.tsx:300
msgid "Is Revision"
-msgstr ""
+msgstr "리비전임"
#: src/tables/part/PartTable.tsx:301
msgid "Filter by parts which are revisions"
-msgstr ""
+msgstr "리비전 부품으로 필터링"
#: src/tables/part/PartTable.tsx:305
msgid "Has Revisions"
-msgstr ""
+msgstr "리비전 있음"
#: src/tables/part/PartTable.tsx:306
msgid "Filter by parts which have revisions"
-msgstr ""
+msgstr "리비전이 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:311
msgid "Filter by parts which have pricing information"
-msgstr ""
+msgstr "가격 정보가 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:317
msgid "Filter by parts which have available stock"
-msgstr ""
+msgstr "사용 가능한 재고가 있는 부품으로 필터링"
#: src/tables/part/PartTable.tsx:322
#~ msgid "Has Stocktake"
@@ -11026,7 +11152,7 @@ msgstr ""
#: src/tables/part/PartTable.tsx:323
msgid "Filter by parts to which the user is subscribed"
-msgstr ""
+msgstr "사용자가 구독한 부품으로 필터링"
#: src/tables/part/PartTable.tsx:323
#~ msgid "Filter by parts which have stocktake information"
@@ -11034,44 +11160,44 @@ msgstr ""
#: src/tables/part/PartTable.tsx:378
msgid "Import Parts"
-msgstr ""
+msgstr "부품 수입"
#: src/tables/part/PartTable.tsx:467
#: src/tables/part/PartTable.tsx:515
msgid "Set Category"
-msgstr ""
+msgstr "카테고리 설정"
#: src/tables/part/PartTable.tsx:517
msgid "Set category for selected parts"
-msgstr ""
+msgstr "선택한 부품에 대한 카테고리 설정"
#: src/tables/part/PartTable.tsx:527
msgid "Order selected parts"
-msgstr ""
+msgstr "선택한 부품 주문"
#: src/tables/part/PartTable.tsx:537
msgid "Add Parts"
-msgstr ""
+msgstr "부품 추가"
#: src/tables/part/PartTable.tsx:543
msgid "Create Part"
-msgstr ""
+msgstr "부품 생성"
#: src/tables/part/PartTable.tsx:545
msgid "Create a new part"
-msgstr ""
+msgstr "새 부품 생성"
#: src/tables/part/PartTable.tsx:551
msgid "Import parts from a file"
-msgstr ""
+msgstr "파일에서 부품 가져오기"
#: src/tables/part/PartTable.tsx:556
msgid "Import from Supplier"
-msgstr ""
+msgstr "공급업체로부터 수입"
#: src/tables/part/PartTable.tsx:558
msgid "Import parts from a supplier plugin"
-msgstr ""
+msgstr "공급업체 플러그인에서 부품 가져오기"
#: src/tables/part/PartTestResultTable.tsx:103
#: src/tables/part/PartTestResultTable.tsx:181
@@ -11081,147 +11207,147 @@ msgstr ""
#: src/tables/stock/StockItemTestResultTable.tsx:369
#: src/tables/stock/StockItemTestResultTable.tsx:430
msgid "Add Test Result"
-msgstr ""
+msgstr "테스트 결과 추가"
#: src/tables/part/PartTestResultTable.tsx:110
#: src/tables/stock/StockItemTestResultTable.tsx:298
msgid "Test result added"
-msgstr ""
+msgstr "테스트 결과가 추가되었습니다"
#: src/tables/part/PartTestResultTable.tsx:142
msgid "Add Test Results"
-msgstr ""
+msgstr "테스트 결과 추가"
#: src/tables/part/PartTestResultTable.tsx:152
msgid "Test results added"
-msgstr ""
+msgstr "테스트 결과가 추가되었습니다"
#: src/tables/part/PartTestResultTable.tsx:180
#: src/tables/stock/StockItemTestResultTable.tsx:197
msgid "No Result"
-msgstr ""
+msgstr "결과 없음"
#: src/tables/part/PartTestResultTable.tsx:307
msgid "Show build outputs currently in production"
-msgstr ""
+msgstr "현재 생산 중인 생산 결과물 표시"
#: src/tables/part/PartTestTemplateTable.tsx:56
msgid "Test is defined for a parent template part"
-msgstr ""
+msgstr "테스트가 상위 템플릿 부품에 정의되어 있습니다"
#: src/tables/part/PartTestTemplateTable.tsx:70
msgid "Template Details"
-msgstr ""
+msgstr "템플릿 상세 정보"
#: src/tables/part/PartTestTemplateTable.tsx:80
msgid "Results"
-msgstr ""
+msgstr "결과"
#: src/tables/part/PartTestTemplateTable.tsx:113
msgid "Show required tests"
-msgstr ""
+msgstr "필수 테스트 표시"
#: src/tables/part/PartTestTemplateTable.tsx:118
msgid "Show enabled tests"
-msgstr ""
+msgstr "활성화된 테스트 표시"
#: src/tables/part/PartTestTemplateTable.tsx:122
msgid "Requires Value"
-msgstr ""
+msgstr "가치가 필요함"
#: src/tables/part/PartTestTemplateTable.tsx:123
msgid "Show tests that require a value"
-msgstr ""
+msgstr "값이 필요한 테스트 표시"
#: src/tables/part/PartTestTemplateTable.tsx:127
msgid "Requires Attachment"
-msgstr ""
+msgstr "첨부 파일이 필요합니다"
#: src/tables/part/PartTestTemplateTable.tsx:128
msgid "Show tests that require an attachment"
-msgstr ""
+msgstr "첨부파일이 필요한 테스트 표시"
#: src/tables/part/PartTestTemplateTable.tsx:132
msgid "Include Inherited"
-msgstr ""
+msgstr "상속 항목 포함"
#: src/tables/part/PartTestTemplateTable.tsx:133
msgid "Show tests from inherited templates"
-msgstr ""
+msgstr "상속된 템플릿의 테스트 표시"
#: src/tables/part/PartTestTemplateTable.tsx:137
msgid "Has Results"
-msgstr ""
+msgstr "결과 있음"
#: src/tables/part/PartTestTemplateTable.tsx:138
msgid "Show tests which have recorded results"
-msgstr ""
+msgstr "결과가 기록된 테스트 표시"
#: src/tables/part/PartTestTemplateTable.tsx:160
#: src/tables/part/PartTestTemplateTable.tsx:243
msgid "Add Test Template"
-msgstr ""
+msgstr "테스트 템플릿 추가"
#: src/tables/part/PartTestTemplateTable.tsx:176
msgid "Edit Test Template"
-msgstr ""
+msgstr "테스트 템플릿 편집"
#: src/tables/part/PartTestTemplateTable.tsx:187
msgid "Delete Test Template"
-msgstr ""
+msgstr "테스트 템플릿 삭제"
#: src/tables/part/PartTestTemplateTable.tsx:189
msgid "This action cannot be reversed"
-msgstr ""
+msgstr "이 작업은 되돌릴 수 없습니다."
#: src/tables/part/PartTestTemplateTable.tsx:191
msgid "Any tests results associated with this template will be deleted"
-msgstr ""
+msgstr "이 템플릿에 연결된 모든 테스트 결과가 삭제됩니다"
#: src/tables/part/PartTestTemplateTable.tsx:209
msgid "View Parent Part"
-msgstr ""
+msgstr "상위 부품 보기"
#: src/tables/part/PartTestTemplateTable.tsx:263
msgid "Part templates cannot be edited, as the part is locked"
-msgstr ""
+msgstr "부품이 잠겨 있으므로 부품 템플릿을 편집할 수 없습니다."
#: src/tables/part/PartThumbTable.tsx:123
msgid "Image updated"
-msgstr ""
+msgstr "이미지가 업데이트되었습니다"
#: src/tables/part/PartThumbTable.tsx:124
msgid "The image has been updated successfully"
-msgstr ""
+msgstr "이미지가 성공적으로 업데이트되었습니다."
#: src/tables/part/PartThumbTable.tsx:233
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:105
#: src/tables/part/RelatedPartTable.tsx:138
msgid "Add Related Part"
-msgstr ""
+msgstr "관련 부품 추가"
#: src/tables/part/RelatedPartTable.tsx:109
#~ msgid "Add related part"
@@ -11229,45 +11355,45 @@ msgstr ""
#: src/tables/part/RelatedPartTable.tsx:120
msgid "Delete Related Part"
-msgstr ""
+msgstr "관련 부품 삭제"
#: src/tables/part/RelatedPartTable.tsx:127
msgid "Edit Related Part"
-msgstr ""
+msgstr "관련 부품 편집"
#: src/tables/part/SelectionListTable.tsx:64
#: src/tables/part/SelectionListTable.tsx:115
msgid "Add Selection List"
-msgstr ""
+msgstr "선택 목록 추가"
#: src/tables/part/SelectionListTable.tsx:76
msgid "Edit Selection List"
-msgstr ""
+msgstr "선택 목록 편집"
#: src/tables/part/SelectionListTable.tsx:84
msgid "Delete Selection List"
-msgstr ""
+msgstr "선택 목록 삭제"
#: src/tables/plugin/PluginErrorTable.tsx:31
msgid "Stage"
-msgstr ""
+msgstr "단계"
#: src/tables/plugin/PluginListTable.tsx:43
msgid "Plugin is active"
-msgstr ""
+msgstr "플러그인이 활성 상태입니다"
#: src/tables/plugin/PluginListTable.tsx:49
msgid "Plugin is inactive"
-msgstr ""
+msgstr "플러그인이 비활성 상태입니다"
#: src/tables/plugin/PluginListTable.tsx:56
msgid "Plugin is not installed"
-msgstr ""
+msgstr "플러그인이 설치되어 있지 않습니다"
#: src/tables/plugin/PluginListTable.tsx:78
#: src/tables/settings/ExportSessionTable.tsx:33
msgid "Plugin"
-msgstr ""
+msgstr "플러그인"
#: src/tables/plugin/PluginListTable.tsx:95
#~ msgid "Plugin with key {pluginKey} not found"
@@ -11280,7 +11406,7 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:106
#: src/tables/plugin/PluginListTable.tsx:430
msgid "Mandatory"
-msgstr ""
+msgstr "필수적인"
#: src/tables/plugin/PluginListTable.tsx:113
#~ msgid "Plugin with id {id} not found"
@@ -11288,7 +11414,7 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:120
msgid "Description not available"
-msgstr ""
+msgstr "설명을 사용할 수 없습니다"
#: src/tables/plugin/PluginListTable.tsx:122
#~ msgid "Plugin information"
@@ -11310,11 +11436,11 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:159
msgid "Confirm plugin activation"
-msgstr ""
+msgstr "플러그인 활성화 확인"
#: src/tables/plugin/PluginListTable.tsx:160
msgid "Confirm plugin deactivation"
-msgstr ""
+msgstr "플러그인 비활성화 확인"
#: src/tables/plugin/PluginListTable.tsx:163
#~ msgid "Package information"
@@ -11322,15 +11448,15 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:165
msgid "The selected plugin will be activated"
-msgstr ""
+msgstr "선택한 플러그인이 활성화됩니다"
#: src/tables/plugin/PluginListTable.tsx:166
msgid "The selected plugin will be deactivated"
-msgstr ""
+msgstr "선택한 플러그인이 비활성화됩니다"
#: src/tables/plugin/PluginListTable.tsx:184
msgid "Deactivate"
-msgstr ""
+msgstr "비활성화"
#: src/tables/plugin/PluginListTable.tsx:197
#~ msgid "Plugin settings"
@@ -11338,40 +11464,40 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:198
msgid "Activate"
-msgstr ""
+msgstr "활성화"
#: src/tables/plugin/PluginListTable.tsx:199
msgid "Activate selected plugin"
-msgstr ""
+msgstr "선택한 플러그인 활성화"
#: src/tables/plugin/PluginListTable.tsx:211
msgid "Update selected plugin"
-msgstr ""
+msgstr "선택한 플러그인 업데이트"
#: src/tables/plugin/PluginListTable.tsx:229
#: src/tables/stock/InstalledItemsTable.tsx:98
msgid "Uninstall"
-msgstr ""
+msgstr "제거"
#: src/tables/plugin/PluginListTable.tsx:230
msgid "Uninstall selected plugin"
-msgstr ""
+msgstr "선택한 플러그인 제거"
#: src/tables/plugin/PluginListTable.tsx:248
msgid "Delete selected plugin configuration"
-msgstr ""
+msgstr "선택한 플러그인 설정 삭제"
#: src/tables/plugin/PluginListTable.tsx:264
msgid "Activate Plugin"
-msgstr ""
+msgstr "플러그인 활성화"
#: src/tables/plugin/PluginListTable.tsx:271
msgid "The plugin was activated"
-msgstr ""
+msgstr "플러그인이 활성화되었습니다"
#: src/tables/plugin/PluginListTable.tsx:272
msgid "The plugin was deactivated"
-msgstr ""
+msgstr "플러그인이 비활성화되었습니다"
#: src/tables/plugin/PluginListTable.tsx:280
#~ msgid "Install plugin"
@@ -11380,19 +11506,19 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:285
#: src/tables/plugin/PluginListTable.tsx:377
msgid "Install Plugin"
-msgstr ""
+msgstr "플러그인 설치"
#: src/tables/plugin/PluginListTable.tsx:298
msgid "Install"
-msgstr ""
+msgstr "설치하다"
#: src/tables/plugin/PluginListTable.tsx:299
msgid "Plugin installed successfully"
-msgstr ""
+msgstr "플러그인이 성공적으로 설치되었습니다"
#: src/tables/plugin/PluginListTable.tsx:304
msgid "Uninstall Plugin"
-msgstr ""
+msgstr "플러그인 제거"
#: src/tables/plugin/PluginListTable.tsx:308
#~ msgid "This action cannot be undone."
@@ -11400,23 +11526,23 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:316
msgid "Confirm plugin uninstall"
-msgstr ""
+msgstr "플러그인 제거 확인"
#: src/tables/plugin/PluginListTable.tsx:319
msgid "The selected plugin will be uninstalled."
-msgstr ""
+msgstr "선택한 플러그인이 제거됩니다."
#: src/tables/plugin/PluginListTable.tsx:324
msgid "Plugin uninstalled successfully"
-msgstr ""
+msgstr "플러그인이 성공적으로 제거되었습니다"
#: src/tables/plugin/PluginListTable.tsx:332
msgid "Delete Plugin"
-msgstr ""
+msgstr "플러그인 삭제"
#: src/tables/plugin/PluginListTable.tsx:333
msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?"
-msgstr ""
+msgstr "이 플러그인 설정을 삭제하면 관련된 모든 설정과 데이터가 제거됩니다. 이 플러그인을 삭제하시겠습니까?"
#: src/tables/plugin/PluginListTable.tsx:338
#~ msgid "Deactivate Plugin"
@@ -11424,11 +11550,11 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:346
msgid "Plugins reloaded"
-msgstr ""
+msgstr "플러그인을 다시 불러왔습니다"
#: src/tables/plugin/PluginListTable.tsx:347
msgid "Plugins were reloaded successfully"
-msgstr ""
+msgstr "플러그인이 성공적으로 다시 불러와졌습니다"
#: src/tables/plugin/PluginListTable.tsx:354
#~ msgid "The following plugin will be activated"
@@ -11440,7 +11566,7 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:370
msgid "Reload Plugins"
-msgstr ""
+msgstr "플러그인 다시 불러오기"
#: src/tables/plugin/PluginListTable.tsx:376
#~ msgid "Activating plugin"
@@ -11456,7 +11582,7 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:393
msgid "Plugin Detail"
-msgstr ""
+msgstr "플러그인 상세 정보"
#: src/tables/plugin/PluginListTable.tsx:403
#~ msgid "Error updating plugin"
@@ -11464,12 +11590,12 @@ msgstr ""
#: src/tables/plugin/PluginListTable.tsx:435
msgid "Sample"
-msgstr ""
+msgstr "견본"
#: src/tables/plugin/PluginListTable.tsx:440
#: src/tables/stock/StockItemTable.tsx:226
msgid "Installed"
-msgstr ""
+msgstr "설치됨"
#: src/tables/plugin/PluginListTable.tsx:615
#~ msgid "Plugin detail"
@@ -11491,22 +11617,22 @@ msgstr ""
#: src/tables/purchasing/ManufacturerPartTable.tsx:100
#: src/tables/purchasing/SupplierPartTable.tsx:122
msgid "MPN"
-msgstr ""
+msgstr "MPN"
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:43
#: src/tables/purchasing/ManufacturerPartTable.tsx:155
msgid "Show manufacturer parts for active internal parts."
-msgstr ""
+msgstr "활성 내부 부품의 제조사 부품 표시"
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:48
#: src/tables/purchasing/ManufacturerPartTable.tsx:160
msgid "Active Manufacturer"
-msgstr ""
+msgstr "활성 제조업체"
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:49
#: src/tables/purchasing/ManufacturerPartTable.tsx:162
msgid "Show manufacturer parts for active manufacturers."
-msgstr ""
+msgstr "활성 제조사의 제조사 부품 표시"
#: src/tables/purchasing/ManufacturerPartTable.tsx:63
#~ msgid "Create Manufacturer Part"
@@ -11527,23 +11653,23 @@ msgstr ""
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:109
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:398
msgid "Import Line Items"
-msgstr ""
+msgstr "항목 가져오기"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233
msgid "Supplier Code"
-msgstr ""
+msgstr "공급업체 코드"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:241
msgid "Supplier Link"
-msgstr ""
+msgstr "공급업체 링크"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248
msgid "Manufacturer Code"
-msgstr ""
+msgstr "제조업체 코드"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:282
msgid "Show line items which have been received"
-msgstr ""
+msgstr "입고된 항목 표시"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344
#: src/tables/sales/ReturnOrderLineItemTable.tsx:160
@@ -11553,15 +11679,15 @@ msgstr ""
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:351
msgid "Receive line item"
-msgstr ""
+msgstr "항목 입고"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:415
msgid "Receive items"
-msgstr ""
+msgstr "항목 입고"
#: src/tables/purchasing/SupplierPartTable.tsx:160
msgid "Base units"
-msgstr ""
+msgstr "기본 단위"
#: src/tables/purchasing/SupplierPartTable.tsx:193
#~ msgid "Supplier part updated"
@@ -11577,89 +11703,89 @@ msgstr ""
#: src/tables/purchasing/SupplierPartTable.tsx:226
msgid "Add supplier part"
-msgstr ""
+msgstr "협력업체 부품 추가"
#: src/tables/purchasing/SupplierPartTable.tsx:234
msgid "Import supplier part"
-msgstr ""
+msgstr "공급업체 부품 가져오기"
#: src/tables/purchasing/SupplierPartTable.tsx:250
msgid "Show active supplier parts"
-msgstr ""
+msgstr "활성 협력업체 부품 표시"
#: src/tables/purchasing/SupplierPartTable.tsx:255
msgid "Show primary supplier parts"
-msgstr ""
+msgstr "주요 협력업체 부품 표시"
#: src/tables/purchasing/SupplierPartTable.tsx:260
msgid "Show active internal parts"
-msgstr ""
+msgstr "활성 내부 부품 표시"
#: src/tables/purchasing/SupplierPartTable.tsx:264
msgid "Active Supplier"
-msgstr ""
+msgstr "활성 공급업체"
#: src/tables/purchasing/SupplierPartTable.tsx:265
msgid "Show active suppliers"
-msgstr ""
+msgstr "활성 공급업체 표시"
#: src/tables/purchasing/SupplierPartTable.tsx:270
msgid "Show supplier parts with stock"
-msgstr ""
+msgstr "재고가 있는 공급업체 부품 표시"
#: src/tables/sales/ReturnOrderLineItemTable.tsx:157
msgid "Received Date"
-msgstr ""
+msgstr "입고일"
#: src/tables/sales/ReturnOrderLineItemTable.tsx:171
msgid "Show items which have been received"
-msgstr ""
+msgstr "입고된 항목 표시"
#: src/tables/sales/ReturnOrderLineItemTable.tsx:176
msgid "Filter by line item status"
-msgstr ""
+msgstr "항목 상태로 필터링"
#: src/tables/sales/ReturnOrderLineItemTable.tsx:194
msgid "Receive selected items"
-msgstr ""
+msgstr "선택한 항목 입고"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
-msgstr ""
+msgstr "항목 입고"
#: src/tables/sales/SalesOrderAllocationTable.tsx:90
msgid "Show outstanding allocations"
-msgstr ""
+msgstr "미해결 할당 표시"
#: src/tables/sales/SalesOrderAllocationTable.tsx:94
msgid "Assigned to Shipment"
-msgstr ""
+msgstr "출하에 할당됨"
#: src/tables/sales/SalesOrderAllocationTable.tsx:95
msgid "Show allocations assigned to a shipment"
-msgstr ""
+msgstr "출하에 할당된 항목 표시"
#: src/tables/sales/SalesOrderAllocationTable.tsx:155
msgid "Available Quantity"
-msgstr ""
+msgstr "사용 가능 수량"
#: src/tables/sales/SalesOrderAllocationTable.tsx:162
msgid "Allocated Quantity"
-msgstr ""
+msgstr "할당 수량"
#: src/tables/sales/SalesOrderAllocationTable.tsx:176
#: src/tables/sales/SalesOrderAllocationTable.tsx:190
msgid "No shipment"
-msgstr ""
+msgstr "출하 없음"
#: src/tables/sales/SalesOrderAllocationTable.tsx:188
msgid "Not shipped"
-msgstr ""
+msgstr "출하되지 않음"
#: src/tables/sales/SalesOrderAllocationTable.tsx:210
#: src/tables/sales/SalesOrderAllocationTable.tsx:234
msgid "Edit Allocation"
-msgstr ""
+msgstr "할당 편집"
#: src/tables/sales/SalesOrderAllocationTable.tsx:218
#: src/tables/sales/SalesOrderAllocationTable.tsx:241
@@ -11669,15 +11795,15 @@ msgstr ""
#: src/tables/sales/SalesOrderAllocationTable.tsx:260
#: src/tables/sales/SalesOrderAllocationTable.tsx:261
msgid "View Shipment"
-msgstr ""
+msgstr "출하 보기"
#: src/tables/sales/SalesOrderAllocationTable.tsx:316
msgid "Assign to Shipment"
-msgstr ""
+msgstr "출하에 할당"
#: src/tables/sales/SalesOrderAllocationTable.tsx:332
msgid "Assign to shipment"
-msgstr ""
+msgstr "출하에 할당"
#: src/tables/sales/SalesOrderLineItemTable.tsx:280
#~ msgid "Allocate stock"
@@ -11685,7 +11811,7 @@ msgstr ""
#: src/tables/sales/SalesOrderLineItemTable.tsx:289
msgid "Allocate Serial Numbers"
-msgstr ""
+msgstr "일련번호 할당"
#: src/tables/sales/SalesOrderLineItemTable.tsx:291
#~ msgid "Allocate Serials"
@@ -11693,27 +11819,27 @@ msgstr ""
#: src/tables/sales/SalesOrderLineItemTable.tsx:297
msgid "Stock allocated successfully"
-msgstr ""
+msgstr "재고 할당이 성공적으로 완료되었습니다."
#: src/tables/sales/SalesOrderLineItemTable.tsx:341
msgid "Show lines which are fully allocated"
-msgstr ""
+msgstr "완전히 할당된 항목 표시"
#: src/tables/sales/SalesOrderLineItemTable.tsx:346
msgid "Show lines which are completed"
-msgstr ""
+msgstr "완료된 항목 표시"
#: src/tables/sales/SalesOrderLineItemTable.tsx:419
msgid "Allocate serials"
-msgstr ""
+msgstr "시리얼 번호 할당"
#: src/tables/sales/SalesOrderLineItemTable.tsx:437
msgid "Build stock"
-msgstr ""
+msgstr "생산 재고"
#: src/tables/sales/SalesOrderLineItemTable.tsx:455
msgid "Order stock"
-msgstr ""
+msgstr "주문 재고"
#: src/tables/sales/SalesOrderShipmentTable.tsx:51
#~ msgid "Delete Shipment"
@@ -11721,140 +11847,140 @@ msgstr ""
#: src/tables/sales/SalesOrderShipmentTable.tsx:79
msgid "Create Shipment"
-msgstr ""
+msgstr "출하 생성"
#: src/tables/sales/SalesOrderShipmentTable.tsx:80
msgid "Shipment created"
-msgstr ""
+msgstr "출하가 생성되었습니다"
#: src/tables/sales/SalesOrderShipmentTable.tsx:159
msgid "Items"
-msgstr ""
+msgstr "품목"
#: src/tables/sales/SalesOrderShipmentTable.tsx:243
msgid "Edit shipment"
-msgstr ""
+msgstr "출하 편집"
#: src/tables/sales/SalesOrderShipmentTable.tsx:251
msgid "Cancel shipment"
-msgstr ""
+msgstr "출하 취소"
#: src/tables/sales/SalesOrderShipmentTable.tsx:281
msgid "Add shipment"
-msgstr ""
+msgstr "출하 추가"
#: src/tables/sales/SalesOrderShipmentTable.tsx:295
msgid "Show shipments which have been checked"
-msgstr ""
+msgstr "확인된 출하 표시"
#: src/tables/sales/SalesOrderShipmentTable.tsx:300
msgid "Show shipments which have been shipped"
-msgstr ""
+msgstr "출하된 항목 표시"
#: src/tables/sales/SalesOrderShipmentTable.tsx:305
msgid "Show shipments which have been delivered"
-msgstr ""
+msgstr "배송 완료된 출하 표시"
#: src/tables/settings/ApiTokenTable.tsx:31
#: src/tables/settings/ApiTokenTable.tsx:45
msgid "Generate Token"
-msgstr ""
+msgstr "토큰 생성"
#: src/tables/settings/ApiTokenTable.tsx:33
msgid "Token generated"
-msgstr ""
+msgstr "토큰 생성"
#: src/tables/settings/ApiTokenTable.tsx:68
#: src/tables/settings/ApiTokenTable.tsx:118
msgid "Revoked"
-msgstr ""
+msgstr "폐기됨"
#: src/tables/settings/ApiTokenTable.tsx:72
#: src/tables/settings/ApiTokenTable.tsx:180
msgid "Token"
-msgstr ""
+msgstr "토큰"
#: src/tables/settings/ApiTokenTable.tsx:79
msgid "In Use"
-msgstr ""
+msgstr "사용 중"
#: src/tables/settings/ApiTokenTable.tsx:88
msgid "Last Seen"
-msgstr ""
+msgstr "마지막으로 본"
#: src/tables/settings/ApiTokenTable.tsx:93
msgid "Expiry"
-msgstr ""
+msgstr "만료"
#: src/tables/settings/ApiTokenTable.tsx:119
msgid "Show revoked tokens"
-msgstr ""
+msgstr "폐기된 토큰 표시"
#: src/tables/settings/ApiTokenTable.tsx:138
msgid "Revoke"
-msgstr ""
+msgstr "폐기"
#: src/tables/settings/ApiTokenTable.tsx:162
msgid "Error revoking token"
-msgstr ""
+msgstr "토큰 폐기 중 오류 발생"
#: src/tables/settings/ApiTokenTable.tsx:185
msgid "Tokens are only shown once - make sure to note it down."
-msgstr ""
+msgstr "토큰은 한 번만 표시됩니다. 꼭 기록해 두세요."
#: src/tables/settings/BarcodeScanHistoryTable.tsx:60
msgid "Barcode Information"
-msgstr ""
+msgstr "바코드 정보"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:85
msgid "Endpoint"
-msgstr ""
+msgstr "엔드포인트"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:89
#: src/tables/settings/BarcodeScanHistoryTable.tsx:208
#: src/tables/stock/StockItemTestResultTable.tsx:191
msgid "Result"
-msgstr ""
+msgstr "결과"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:97
msgid "Context"
-msgstr ""
+msgstr "문맥"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:118
msgid "Response"
-msgstr ""
+msgstr "응답"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:209
msgid "Filter by result"
-msgstr ""
+msgstr "결과로 필터링"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:223
msgid "Delete Barcode Scan Record"
-msgstr ""
+msgstr "바코드 스캔 기록 삭제"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:249
msgid "Barcode Scan Details"
-msgstr ""
+msgstr "바코드 스캔 상세 정보"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:259
msgid "Logging Disabled"
-msgstr ""
+msgstr "로깅 비활성화됨"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:261
msgid "Barcode logging is not enabled"
-msgstr ""
+msgstr "바코드 로깅이 활성화되지 않았습니다."
#: src/tables/settings/CustomStateTable.tsx:63
msgid "Status Group"
-msgstr ""
+msgstr "상태 그룹"
#: src/tables/settings/CustomStateTable.tsx:84
msgid "Logical State"
-msgstr ""
+msgstr "논리적 상태"
#: src/tables/settings/CustomStateTable.tsx:96
msgid "Identifier"
-msgstr ""
+msgstr "식별자"
#: src/tables/settings/CustomStateTable.tsx:115
#~ msgid "Add state"
@@ -11862,88 +11988,88 @@ msgstr ""
#: src/tables/settings/CustomStateTable.tsx:153
msgid "Edit State"
-msgstr ""
+msgstr "상태 편집"
#: src/tables/settings/CustomStateTable.tsx:161
msgid "Delete State"
-msgstr ""
+msgstr "상태 삭제"
#: src/tables/settings/CustomUnitsTable.tsx:54
msgid "Add Custom Unit"
-msgstr ""
+msgstr "사용자 지정 단위 추가"
#: src/tables/settings/CustomUnitsTable.tsx:64
msgid "Edit Custom Unit"
-msgstr ""
+msgstr "사용자 지정 단위 편집"
#: src/tables/settings/CustomUnitsTable.tsx:72
msgid "Delete Custom Unit"
-msgstr ""
+msgstr "사용자 지정 단위 삭제"
#: src/tables/settings/CustomUnitsTable.tsx:103
msgid "Add custom unit"
-msgstr ""
+msgstr "사용자 지정 단위 추가"
#: src/tables/settings/EmailTable.tsx:25
msgid "Announced"
-msgstr ""
+msgstr "발표됨"
#: src/tables/settings/EmailTable.tsx:27
msgid "Sent"
-msgstr ""
+msgstr "전송된"
#: src/tables/settings/EmailTable.tsx:29
msgid "Failed"
-msgstr ""
+msgstr "실패한"
#: src/tables/settings/EmailTable.tsx:33
msgid "Read"
-msgstr ""
+msgstr "읽다"
#: src/tables/settings/EmailTable.tsx:35
msgid "Confirmed"
-msgstr ""
+msgstr "확인됨"
#: src/tables/settings/EmailTable.tsx:43
#: src/tables/settings/EmailTable.tsx:58
msgid "Send Test Email"
-msgstr ""
+msgstr "테스트 이메일 보내기"
#: src/tables/settings/EmailTable.tsx:45
msgid "Email sent successfully"
-msgstr ""
+msgstr "이메일이 성공적으로 전송되었습니다."
#: src/tables/settings/EmailTable.tsx:71
msgid "Delete Email"
-msgstr ""
+msgstr "이메일 삭제"
#: src/tables/settings/EmailTable.tsx:72
msgid "Email deleted successfully"
-msgstr ""
+msgstr "이메일이 삭제되었습니다."
#: src/tables/settings/EmailTable.tsx:80
msgid "Subject"
-msgstr ""
+msgstr "주제"
#: src/tables/settings/EmailTable.tsx:85
msgid "To"
-msgstr ""
+msgstr "에게"
#: src/tables/settings/EmailTable.tsx:90
msgid "Sender"
-msgstr ""
+msgstr "보내는 사람"
#: src/tables/settings/EmailTable.tsx:122
msgid "Direction"
-msgstr ""
+msgstr "방향"
#: src/tables/settings/EmailTable.tsx:125
msgid "Incoming"
-msgstr ""
+msgstr "들어오는"
#: src/tables/settings/EmailTable.tsx:125
msgid "Outgoing"
-msgstr ""
+msgstr "나가는"
#: src/tables/settings/ErrorTable.tsx:51
#~ msgid "Delete error report"
@@ -11951,85 +12077,85 @@ msgstr ""
#: src/tables/settings/ErrorTable.tsx:67
msgid "Traceback"
-msgstr ""
+msgstr "역추적"
#: src/tables/settings/ErrorTable.tsx:103
msgid "When"
-msgstr ""
+msgstr "언제"
#: src/tables/settings/ErrorTable.tsx:113
msgid "Error Information"
-msgstr ""
+msgstr "오류 정보"
#: src/tables/settings/ErrorTable.tsx:123
msgid "Delete Error Report"
-msgstr ""
+msgstr "오류 보고서 삭제"
#: src/tables/settings/ErrorTable.tsx:125
msgid "Are you sure you want to delete this error report?"
-msgstr ""
+msgstr "이 오류 보고서를 삭제하시겠습니까?"
#: src/tables/settings/ErrorTable.tsx:127
msgid "Error report deleted"
-msgstr ""
+msgstr "오류 보고서가 삭제되었습니다."
#: src/tables/settings/ErrorTable.tsx:146
#: src/tables/settings/FailedTasksTable.tsx:65
msgid "Error Details"
-msgstr ""
+msgstr "오류 상세 정보"
#: src/tables/settings/ExportSessionTable.tsx:28
msgid "Output Type"
-msgstr ""
+msgstr "출력 유형"
#: src/tables/settings/ExportSessionTable.tsx:38
msgid "Exported On"
-msgstr ""
+msgstr "내보낸 시각"
#: src/tables/settings/ExportSessionTable.tsx:59
msgid "Delete Output"
-msgstr ""
+msgstr "출력 삭제"
#: src/tables/settings/FailedTasksTable.tsx:32
#: src/tables/settings/PendingTasksTable.tsx:28
#: src/tables/settings/ScheduledTasksTable.tsx:19
msgid "Task"
-msgstr ""
+msgstr "일"
#: src/tables/settings/FailedTasksTable.tsx:38
#: src/tables/settings/PendingTasksTable.tsx:33
msgid "Task ID"
-msgstr ""
+msgstr "작업 ID"
#: src/tables/settings/FailedTasksTable.tsx:42
#: src/tables/stock/StockItemTestResultTable.tsx:233
msgid "Started"
-msgstr ""
+msgstr "시작됨"
#: src/tables/settings/FailedTasksTable.tsx:54
msgid "Attempts"
-msgstr ""
+msgstr "시도"
#: src/tables/settings/FailedTasksTable.tsx:92
msgid "No Information"
-msgstr ""
+msgstr "정보 없음"
#: src/tables/settings/FailedTasksTable.tsx:93
msgid "No error details are available for this task"
-msgstr ""
+msgstr "이 작업에 사용할 수 있는 오류 세부정보가 없습니다."
#: src/tables/settings/GroupTable.tsx:71
msgid "Group with id {id} not found"
-msgstr ""
+msgstr "ID가 {id}인 그룹을 찾을 수 없습니다."
#: src/tables/settings/GroupTable.tsx:73
msgid "An error occurred while fetching group details"
-msgstr ""
+msgstr "그룹 상세 정보를 불러오는 중 오류가 발생했습니다"
#: src/tables/settings/GroupTable.tsx:96
#: src/tables/settings/GroupTable.tsx:257
msgid "Name of the user group"
-msgstr ""
+msgstr "사용자 그룹 이름"
#: src/tables/settings/GroupTable.tsx:117
#~ msgid "Permission set"
@@ -12038,23 +12164,23 @@ msgstr ""
#: src/tables/settings/GroupTable.tsx:170
#: src/tables/settings/UserTable.tsx:316
msgid "Open Profile"
-msgstr ""
+msgstr "프로필 열기"
#: src/tables/settings/GroupTable.tsx:185
msgid "Delete group"
-msgstr ""
+msgstr "그룹 삭제"
#: src/tables/settings/GroupTable.tsx:186
msgid "Group deleted"
-msgstr ""
+msgstr "그룹이 삭제되었습니다."
#: src/tables/settings/GroupTable.tsx:188
msgid "Are you sure you want to delete this group?"
-msgstr ""
+msgstr "이 그룹을 삭제하시겠습니까?"
#: src/tables/settings/GroupTable.tsx:200
msgid "Add group"
-msgstr ""
+msgstr "그룹 추가"
#: src/tables/settings/GroupTable.tsx:213
#~ msgid "Edit group"
@@ -12062,73 +12188,73 @@ msgstr ""
#: src/tables/settings/GroupTable.tsx:221
msgid "Edit Group"
-msgstr ""
+msgstr "그룹 편집"
#: src/tables/settings/GroupTable.tsx:253
msgid "Add Group"
-msgstr ""
+msgstr "그룹 추가"
#: src/tables/settings/ImportSessionTable.tsx:37
msgid "Delete Import Session"
-msgstr ""
+msgstr "가져오기 세션 삭제"
#: src/tables/settings/ImportSessionTable.tsx:43
#: src/tables/settings/ImportSessionTable.tsx:130
msgid "Create Import Session"
-msgstr ""
+msgstr "가져오기 세션 생성"
#: src/tables/settings/ImportSessionTable.tsx:73
msgid "Uploaded"
-msgstr ""
+msgstr "업로드됨"
#: src/tables/settings/ImportSessionTable.tsx:84
msgid "Imported Rows"
-msgstr ""
+msgstr "가져온 행"
#: src/tables/settings/ImportSessionTable.tsx:113
#: src/tables/settings/TemplateTable.tsx:403
msgid "Filter by target model type"
-msgstr ""
+msgstr "대상 모델 유형으로 필터링"
#: src/tables/settings/ImportSessionTable.tsx:119
msgid "Filter by import session status"
-msgstr ""
+msgstr "가져오기 세션 상태로 필터링"
#: src/tables/settings/PendingTasksTable.tsx:47
msgid "Arguments"
-msgstr ""
+msgstr "인수"
#: src/tables/settings/PendingTasksTable.tsx:61
msgid "Remove all pending tasks"
-msgstr ""
+msgstr "모든 대기 중 작업 제거"
#: src/tables/settings/PendingTasksTable.tsx:69
msgid "All pending tasks deleted"
-msgstr ""
+msgstr "모든 대기 중 작업이 삭제되었습니다"
#: src/tables/settings/PendingTasksTable.tsx:76
msgid "Error while deleting all pending tasks"
-msgstr ""
+msgstr "모든 대기 중 작업 삭제 중 오류 발생"
#: src/tables/settings/ProjectCodeTable.tsx:58
msgid "Edit Project Code"
-msgstr ""
+msgstr "프로젝트 코드 편집"
#: src/tables/settings/ProjectCodeTable.tsx:66
msgid "Delete Project Code"
-msgstr ""
+msgstr "프로젝트 코드 삭제"
#: src/tables/settings/ProjectCodeTable.tsx:97
msgid "Add project code"
-msgstr ""
+msgstr "프로젝트 코드 추가"
#: src/tables/settings/ScheduledTasksTable.tsx:28
msgid "Last Run"
-msgstr ""
+msgstr "마지막 실행"
#: src/tables/settings/ScheduledTasksTable.tsx:50
msgid "Next Run"
-msgstr ""
+msgstr "다음 실행"
#: src/tables/settings/StocktakeReportTable.tsx:28
#~ msgid "Report"
@@ -12156,11 +12282,11 @@ msgstr ""
#: src/tables/settings/TemplateTable.tsx:171
msgid "Template not found"
-msgstr ""
+msgstr "템플릿을 찾을 수 없습니다."
#: src/tables/settings/TemplateTable.tsx:173
msgid "An error occurred while fetching template details"
-msgstr ""
+msgstr "템플릿 상세 정보를 불러오는 중 오류가 발생했습니다"
#: src/tables/settings/TemplateTable.tsx:243
#~ msgid "Add new"
@@ -12172,36 +12298,36 @@ msgstr ""
#: src/tables/settings/TemplateTable.tsx:272
msgid "Filename"
-msgstr ""
+msgstr "파일명"
#: src/tables/settings/TemplateTable.tsx:295
msgid "Modify"
-msgstr ""
+msgstr "수정하다"
#: src/tables/settings/TemplateTable.tsx:296
msgid "Modify template file"
-msgstr ""
+msgstr "템플릿 파일 수정"
#: src/tables/settings/TemplateTable.tsx:347
#: src/tables/settings/TemplateTable.tsx:415
msgid "Edit Template"
-msgstr ""
+msgstr "템플릿 편집"
#: src/tables/settings/TemplateTable.tsx:355
msgid "Delete template"
-msgstr ""
+msgstr "템플릿 삭제"
#: src/tables/settings/TemplateTable.tsx:361
msgid "Add Template"
-msgstr ""
+msgstr "템플릿 추가"
#: src/tables/settings/TemplateTable.tsx:374
msgid "Add template"
-msgstr ""
+msgstr "템플릿 추가"
#: src/tables/settings/TemplateTable.tsx:397
msgid "Filter by enabled status"
-msgstr ""
+msgstr "활성화 상태로 필터링"
#: src/tables/settings/TemplateTable.tsx:420
#~ msgid "Report Output"
@@ -12209,23 +12335,23 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:123
msgid "Groups updated"
-msgstr ""
+msgstr "그룹이 업데이트되었습니다."
#: src/tables/settings/UserTable.tsx:124
msgid "User groups updated successfully"
-msgstr ""
+msgstr "사용자 그룹이 업데이트되었습니다."
#: src/tables/settings/UserTable.tsx:131
msgid "Error updating user groups"
-msgstr ""
+msgstr "사용자 그룹 업데이트 중 오류 발생"
#: src/tables/settings/UserTable.tsx:150
msgid "User with id {id} not found"
-msgstr ""
+msgstr "ID가 {id}인 사용자를 찾을 수 없습니다."
#: src/tables/settings/UserTable.tsx:152
msgid "An error occurred while fetching user details"
-msgstr ""
+msgstr "사용자 상세 정보를 불러오는 중 오류가 발생했습니다"
#: src/tables/settings/UserTable.tsx:154
#~ msgid "No groups"
@@ -12233,15 +12359,15 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:178
msgid "Is Active"
-msgstr ""
+msgstr "활성 상태임"
#: src/tables/settings/UserTable.tsx:179
msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
-msgstr ""
+msgstr "이 사용자를 활성 사용자로 처리할지 지정합니다. 계정을 삭제하는 대신 이 선택을 해제하세요."
#: src/tables/settings/UserTable.tsx:183
msgid "Is Administrator"
-msgstr ""
+msgstr "관리자임"
#: src/tables/settings/UserTable.tsx:183
#~ msgid "Is Staff"
@@ -12249,23 +12375,23 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:184
msgid "Designates whether the user can log into the django admin site."
-msgstr ""
+msgstr "사용자가 django 관리자 사이트에 로그인할 수 있는지 지정합니다."
#: src/tables/settings/UserTable.tsx:188
msgid "Is Superuser"
-msgstr ""
+msgstr "슈퍼유저임"
#: src/tables/settings/UserTable.tsx:189
msgid "Designates that this user has all permissions without explicitly assigning them."
-msgstr ""
+msgstr "이 사용자가 별도 권한 할당 없이 모든 권한을 가짐을 지정합니다."
#: src/tables/settings/UserTable.tsx:199
msgid "You cannot edit the rights for the currently logged-in user."
-msgstr ""
+msgstr "현재 로그인한 사용자의 권한은 편집할 수 없습니다."
#: src/tables/settings/UserTable.tsx:218
msgid "User Groups"
-msgstr ""
+msgstr "사용자 그룹"
#: src/tables/settings/UserTable.tsx:305
#~ msgid "Edit user"
@@ -12273,39 +12399,39 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:333
msgid "Lock user"
-msgstr ""
+msgstr "사용자 잠금"
#: src/tables/settings/UserTable.tsx:343
msgid "Unlock user"
-msgstr ""
+msgstr "사용자 잠금 해제"
#: src/tables/settings/UserTable.tsx:359
msgid "Delete user"
-msgstr ""
+msgstr "사용자 삭제"
#: src/tables/settings/UserTable.tsx:360
msgid "User deleted"
-msgstr ""
+msgstr "사용자가 삭제되었습니다."
#: src/tables/settings/UserTable.tsx:363
msgid "Are you sure you want to delete this user?"
-msgstr ""
+msgstr "이 사용자를 삭제하시겠습니까?"
#: src/tables/settings/UserTable.tsx:373
msgid "Set Password"
-msgstr ""
+msgstr "비밀번호 설정"
#: src/tables/settings/UserTable.tsx:378
msgid "Password updated"
-msgstr ""
+msgstr "비밀번호가 업데이트되었습니다."
#: src/tables/settings/UserTable.tsx:389
msgid "Add user"
-msgstr ""
+msgstr "사용자 추가"
#: src/tables/settings/UserTable.tsx:402
msgid "Show active users"
-msgstr ""
+msgstr "활성 사용자 표시"
#: src/tables/settings/UserTable.tsx:406
#~ msgid "Show staff users"
@@ -12313,190 +12439,190 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:407
msgid "Show administrators"
-msgstr ""
+msgstr "관리자 표시"
#: src/tables/settings/UserTable.tsx:412
msgid "Show superusers"
-msgstr ""
+msgstr "슈퍼유저 표시"
#: src/tables/settings/UserTable.tsx:431
msgid "Edit User"
-msgstr ""
+msgstr "사용자 편집"
#: src/tables/settings/UserTable.tsx:464
msgid "Add User"
-msgstr ""
+msgstr "사용자 추가"
#: src/tables/settings/UserTable.tsx:472
msgid "Added user"
-msgstr ""
+msgstr "사용자가 추가되었습니다"
#: src/tables/settings/UserTable.tsx:482
msgid "User updated"
-msgstr ""
+msgstr "사용자가 업데이트되었습니다."
#: src/tables/settings/UserTable.tsx:483
msgid "User updated successfully"
-msgstr ""
+msgstr "사용자가 업데이트되었습니다."
#: src/tables/settings/UserTable.tsx:489
msgid "Error updating user"
-msgstr ""
+msgstr "사용자 업데이트 중 오류 발생"
#: src/tables/stock/InstalledItemsTable.tsx:37
#: src/tables/stock/InstalledItemsTable.tsx:81
msgid "Install Item"
-msgstr ""
+msgstr "아이템 설치"
#: src/tables/stock/InstalledItemsTable.tsx:39
msgid "Item installed"
-msgstr ""
+msgstr "설치된 항목"
#: src/tables/stock/InstalledItemsTable.tsx:50
msgid "Uninstall Item"
-msgstr ""
+msgstr "항목 제거"
#: src/tables/stock/InstalledItemsTable.tsx:52
msgid "Item uninstalled"
-msgstr ""
+msgstr "항목이 제거되었습니다."
#: src/tables/stock/InstalledItemsTable.tsx:99
msgid "Uninstall stock item"
-msgstr ""
+msgstr "재고 품목 제거"
#: src/tables/stock/LocationTypesTable.tsx:44
#: src/tables/stock/LocationTypesTable.tsx:111
msgid "Add Location Type"
-msgstr ""
+msgstr "위치 유형 추가"
#: src/tables/stock/LocationTypesTable.tsx:52
msgid "Edit Location Type"
-msgstr ""
+msgstr "위치 유형 편집"
#: src/tables/stock/LocationTypesTable.tsx:60
msgid "Delete Location Type"
-msgstr ""
+msgstr "위치 유형 삭제"
#: src/tables/stock/LocationTypesTable.tsx:68
msgid "Icon"
-msgstr ""
+msgstr "상"
#: src/tables/stock/StockItemTable.tsx:159
msgid "Stocktake Date"
-msgstr ""
+msgstr "재고 실사일"
#: src/tables/stock/StockItemTable.tsx:177
msgid "Show stock for active parts"
-msgstr ""
+msgstr "활성 부품의 재고 표시"
#: src/tables/stock/StockItemTable.tsx:188
msgid "Show stock for assembled parts"
-msgstr ""
+msgstr "조립 부품의 재고 표시"
#: src/tables/stock/StockItemTable.tsx:193
msgid "Show items which have been allocated"
-msgstr ""
+msgstr "할당된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:198
msgid "Show items which are available"
-msgstr ""
+msgstr "사용 가능한 항목 표시"
#: src/tables/stock/StockItemTable.tsx:202
#: src/tables/stock/StockLocationTable.tsx:38
msgid "Include Sublocations"
-msgstr ""
+msgstr "하위 위치 포함"
#: src/tables/stock/StockItemTable.tsx:203
msgid "Include stock in sublocations"
-msgstr ""
+msgstr "하위 위치에 재고 포함"
#: src/tables/stock/StockItemTable.tsx:207
msgid "Depleted"
-msgstr ""
+msgstr "고갈됨"
#: src/tables/stock/StockItemTable.tsx:208
msgid "Show depleted stock items"
-msgstr ""
+msgstr "소진된 재고 품목 표시"
#: src/tables/stock/StockItemTable.tsx:214
msgid "Show items which are in production"
-msgstr ""
+msgstr "생산중인 아이템을 보여주세요"
#: src/tables/stock/StockItemTable.tsx:222
msgid "Show items which have been consumed by a build order"
-msgstr ""
+msgstr "생산 주문에서 사용된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:227
msgid "Show stock items which are installed in other items"
-msgstr ""
+msgstr "다른 항목에 설치된 재고 품목 표시"
#: src/tables/stock/StockItemTable.tsx:231
msgid "Sent to Customer"
-msgstr ""
+msgstr "고객에게 발송됨"
#: src/tables/stock/StockItemTable.tsx:232
msgid "Show items which have been sent to a customer"
-msgstr ""
+msgstr "고객에게 발송된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:243
msgid "Show tracked items"
-msgstr ""
+msgstr "추적된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:247
msgid "Has Purchase Price"
-msgstr ""
+msgstr "구매 가격 있음"
#: src/tables/stock/StockItemTable.tsx:248
msgid "Show items which have a purchase price"
-msgstr ""
+msgstr "구매 가격이 있는 항목 표시"
#: src/tables/stock/StockItemTable.tsx:253
msgid "Show items which have expired"
-msgstr ""
+msgstr "만료된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:259
msgid "Show items which are stale"
-msgstr ""
+msgstr "오래된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:264
msgid "Expired Before"
-msgstr ""
+msgstr "만료일 이전"
#: src/tables/stock/StockItemTable.tsx:265
msgid "Show items which expired before this date"
-msgstr ""
+msgstr "이 날짜 이전에 만료된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:271
msgid "Expired After"
-msgstr ""
+msgstr "만료일 이후"
#: src/tables/stock/StockItemTable.tsx:272
msgid "Show items which expired after this date"
-msgstr ""
+msgstr "이 날짜 이후에 만료된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:279
msgid "Show items updated before this date"
-msgstr ""
+msgstr "이 날짜 이전에 업데이트된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:285
msgid "Show items updated after this date"
-msgstr ""
+msgstr "이 날짜 이후에 업데이트된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:290
msgid "Stocktake Before"
-msgstr ""
+msgstr "재고 실사일 이전"
#: src/tables/stock/StockItemTable.tsx:291
msgid "Show items counted before this date"
-msgstr ""
+msgstr "이 날짜 이전에 실사된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:296
msgid "Stocktake After"
-msgstr ""
+msgstr "재고 실사일 이후"
#: src/tables/stock/StockItemTable.tsx:297
msgid "Show items counted after this date"
-msgstr ""
+msgstr "이 날짜 이후에 실사된 항목 표시"
#: src/tables/stock/StockItemTable.tsx:301
#~ msgid "Show stock for assmebled parts"
@@ -12504,11 +12630,11 @@ msgstr ""
#: src/tables/stock/StockItemTable.tsx:302
msgid "External Location"
-msgstr ""
+msgstr "외부 위치"
#: src/tables/stock/StockItemTable.tsx:303
msgid "Show items in an external location"
-msgstr ""
+msgstr "외부 위치에 항목 표시"
#: src/tables/stock/StockItemTable.tsx:362
#~ msgid "Include stock items for variant parts"
@@ -12524,11 +12650,11 @@ msgstr ""
#: src/tables/stock/StockItemTable.tsx:420
msgid "Stock item created"
-msgstr ""
+msgstr "재고 품목이 생성되었습니다"
#: src/tables/stock/StockItemTable.tsx:442
msgid "Order items"
-msgstr ""
+msgstr "주문 항목"
#: src/tables/stock/StockItemTable.tsx:528
#~ msgid "Delete stock items"
@@ -12580,81 +12706,81 @@ msgstr ""
#: src/tables/stock/StockItemTestResultTable.tsx:144
msgid "Test"
-msgstr ""
+msgstr "시험"
#: src/tables/stock/StockItemTestResultTable.tsx:180
msgid "Test result for installed stock item"
-msgstr ""
+msgstr "설치된 재고 품목의 테스트 결과"
#: src/tables/stock/StockItemTestResultTable.tsx:211
msgid "Attachment"
-msgstr ""
+msgstr "부착"
#: src/tables/stock/StockItemTestResultTable.tsx:227
msgid "Test station"
-msgstr ""
+msgstr "테스트 스테이션"
#: src/tables/stock/StockItemTestResultTable.tsx:249
msgid "Finished"
-msgstr ""
+msgstr "완성된"
#: src/tables/stock/StockItemTestResultTable.tsx:307
#: src/tables/stock/StockItemTestResultTable.tsx:379
msgid "Edit Test Result"
-msgstr ""
+msgstr "테스트 결과 편집"
#: src/tables/stock/StockItemTestResultTable.tsx:309
msgid "Test result updated"
-msgstr ""
+msgstr "테스트 결과가 업데이트되었습니다."
#: src/tables/stock/StockItemTestResultTable.tsx:315
#: src/tables/stock/StockItemTestResultTable.tsx:388
msgid "Delete Test Result"
-msgstr ""
+msgstr "테스트 결과 삭제"
#: src/tables/stock/StockItemTestResultTable.tsx:317
msgid "Test result deleted"
-msgstr ""
+msgstr "테스트 결과가 삭제되었습니다."
#: src/tables/stock/StockItemTestResultTable.tsx:331
msgid "Test Passed"
-msgstr ""
+msgstr "테스트 통과"
#: src/tables/stock/StockItemTestResultTable.tsx:332
msgid "Test result has been recorded"
-msgstr ""
+msgstr "테스트 결과가 기록되었습니다"
#: src/tables/stock/StockItemTestResultTable.tsx:339
msgid "Failed to record test result"
-msgstr ""
+msgstr "테스트 결과 기록에 실패했습니다"
#: src/tables/stock/StockItemTestResultTable.tsx:356
msgid "Pass Test"
-msgstr ""
+msgstr "테스트 통과"
#: src/tables/stock/StockItemTestResultTable.tsx:406
msgid "Show results for required tests"
-msgstr ""
+msgstr "필수 테스트 결과 표시"
#: src/tables/stock/StockItemTestResultTable.tsx:410
msgid "Include Installed"
-msgstr ""
+msgstr "설치된 항목 포함"
#: src/tables/stock/StockItemTestResultTable.tsx:411
msgid "Show results for installed stock items"
-msgstr ""
+msgstr "설치된 재고 품목의 결과 표시"
#: src/tables/stock/StockItemTestResultTable.tsx:415
msgid "Passed"
-msgstr ""
+msgstr "합격"
#: src/tables/stock/StockItemTestResultTable.tsx:416
msgid "Show only passed tests"
-msgstr ""
+msgstr "통과한 테스트만 표시"
#: src/tables/stock/StockItemTestResultTable.tsx:421
msgid "Show results for enabled tests"
-msgstr ""
+msgstr "활성화된 테스트 결과 표시"
#: src/tables/stock/StockLocationTable.tsx:38
#~ msgid "structural"
@@ -12662,7 +12788,7 @@ msgstr ""
#: src/tables/stock/StockLocationTable.tsx:39
msgid "Include sublocations in results"
-msgstr ""
+msgstr "결과에 하위 위치 포함"
#: src/tables/stock/StockLocationTable.tsx:43
#~ msgid "external"
@@ -12670,52 +12796,52 @@ msgstr ""
#: src/tables/stock/StockLocationTable.tsx:44
msgid "Show structural locations"
-msgstr ""
+msgstr "구조 위치 표시"
#: src/tables/stock/StockLocationTable.tsx:49
msgid "Show external locations"
-msgstr ""
+msgstr "외부 위치 표시"
#: src/tables/stock/StockLocationTable.tsx:53
msgid "Has location type"
-msgstr ""
+msgstr "위치 유형 있음"
#: src/tables/stock/StockLocationTable.tsx:58
msgid "Filter by location type"
-msgstr ""
+msgstr "위치 유형으로 필터링"
#: src/tables/stock/StockLocationTable.tsx:107
#: src/tables/stock/StockLocationTable.tsx:163
msgid "Add Stock Location"
-msgstr ""
+msgstr "재고 위치 추가"
#: src/tables/stock/StockLocationTable.tsx:132
msgid "Set Parent Location"
-msgstr ""
+msgstr "상위 위치 설정"
#: src/tables/stock/StockLocationTable.tsx:152
msgid "Set parent location for the selected items"
-msgstr ""
+msgstr "선택한 항목의 상위 위치 설정"
#: src/tables/stock/StockTrackingTable.tsx:93
msgid "Old Status"
-msgstr ""
+msgstr "이전 상태"
#: src/tables/stock/StockTrackingTable.tsx:109
msgid "Added"
-msgstr ""
+msgstr "추가됨"
#: src/tables/stock/StockTrackingTable.tsx:114
msgid "Removed"
-msgstr ""
+msgstr "제거됨"
#: src/tables/stock/StockTrackingTable.tsx:250
msgid "Stock item no longer exists"
-msgstr ""
+msgstr "재고 품목이 더 이상 존재하지 않습니다"
#: src/tables/stock/StockTrackingTable.tsx:276
msgid "No user information"
-msgstr ""
+msgstr "사용자 정보 없음"
#: src/tables/stock/TestStatisticsTable.tsx:34
#: src/tables/stock/TestStatisticsTable.tsx:64
@@ -12724,7 +12850,7 @@ msgstr ""
#: src/views/MobileAppView.tsx:25
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."
@@ -12732,13 +12858,13 @@ msgstr ""
#: src/views/MobileAppView.tsx:28
msgid "InvenTree UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience."
-msgstr ""
+msgstr "InvenTree UI는 태블릿과 데스크톱에 최적화되어 있습니다. 모바일 환경에서는 공식 앱을 사용할 수 있습니다."
#: src/views/MobileAppView.tsx:34
msgid "Read the docs"
-msgstr ""
+msgstr "문서 읽기"
#: src/views/MobileAppView.tsx:42
msgid "Ignore and continue to Desktop view"
-msgstr ""
+msgstr "무시하고 데스크톱 보기로 계속 진행"
diff --git a/src/frontend/src/locales/lt/messages.po b/src/frontend/src/locales/lt/messages.po
index f02c0815bf..9ddadc2097 100644
--- a/src/frontend/src/locales/lt/messages.po
+++ b/src/frontend/src/locales/lt/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Klaida atvaizduojant komponentą"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Įvyko klaida atvaizduojant šį komponentą. Daugiau informacijos rasite konsoleje."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Nukopijuota"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopijuoti"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Atlikta"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Ne"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Ne"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Klaida"
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Klaida atvaizduojant komponentą"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Įvyko klaida atvaizduojant šį komponentą. Daugiau informacijos rasite konsoleje."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Įveskite brūkšninio kodo duomenis"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Nuskaityti brūkšninį kodą"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Nepavyko nuskaityti brūkšninio kodo"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Nepavyko susieti brūkšninio kodo"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Susieti"
@@ -774,7 +824,7 @@ msgstr "Tai pašalins nuorodą į susietą brūkšninį kodą"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Atsieti brūkšninį kodą"
@@ -786,14 +836,6 @@ msgstr "Atidaryti administravimo sąsajoje"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Nukopijuota"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopijuoti"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Spausdinamos etiketės"
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po
index 25a5adee30..b6b965f5f1 100644
--- a/src/frontend/src/locales/lv/messages.po
+++ b/src/frontend/src/locales/lv/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po
index 0ec1045c0c..aac1f6d4a1 100644
--- a/src/frontend/src/locales/nl/messages.po
+++ b/src/frontend/src/locales/nl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Fout bij renderen component"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Er is een fout opgetreden tijdens het weergeven van deze component. Raadpleeg de console voor meer informatie."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Gekopieerd"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopieer"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Dupliceren"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Bewerken"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Verwijderen"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Annuleer"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Acties"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Zoeken"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Kolommen selecteren"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Geslaagd"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nee"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nee"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Onderdeel"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Onderdelen"
@@ -158,9 +184,9 @@ msgstr "Parameter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parameters"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Templatesjablonen voor onderdeel"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Fabrikant onderdelen"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Onderdeel categorie"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Onderdeel categorieën"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Voorraad item"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Voorraad items"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Voorraad locatie"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Voorraad locatie"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Voorraad locatie types"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Voorraad geschiedenis"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Bedrijven"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Project code"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Project codes"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Inkooporder"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Inkooporders"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Inkooporder regels"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Verkooporder"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Verkooporders"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Retourorder"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Retourorders"
@@ -442,12 +467,12 @@ msgstr "Contact"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contacten"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Eigenaar"
@@ -458,7 +483,7 @@ msgstr "Eigenaren"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Gebruiker"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Gebruikers"
@@ -486,7 +511,7 @@ msgstr "Groep"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Label sjabloon"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Label sjablonen"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Rapporteer sjabloon"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Rapport sjablonen"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Foutmelding"
msgid "Errors"
msgstr "Foutmeldingen"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Administrator"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Productieorders"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Niet geïmplementeerd"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Deze functionaliteit is nog niet geïmplementeerd"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Toestemming geweigerd"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "U heeft geen rechten om deze actie uit te voeren"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Ongeldige retourcode"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server geeft status terug {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Tijdslimiet"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "De aanvraag duurde te lang"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Proces is mislukt"
msgid "Process completed successfully"
msgstr "Proces succesvol voltooid"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Fout bij renderen component"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Voer barcode gegevens in"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Scan barcode"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Barcode komt niet overeen met het verwachte type model"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Succes"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Streepjescode verwerken mislukt"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Streepjescode scannen mislukt"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Streepjescode koppelen mislukt"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Link"
@@ -774,7 +824,7 @@ msgstr "Dit verwijdert de link naar de bijbehorende barcode"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Barcode loskoppelen"
@@ -786,14 +836,6 @@ msgstr "Open in admin interface"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Gekopieerd"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopieer"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Labels afdrukken"
@@ -930,7 +972,7 @@ msgstr "Volgende maand"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Gegevens exporteren"
@@ -947,15 +989,15 @@ msgstr "Fout bij bijwerken bestelling"
msgid "Overdue"
msgstr "Achterstallig"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Dashboard widgets laden mislukt."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Geen widgets geselecteerd"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Gebruik het menu om widgets toe te voegen aan het dashboard"
@@ -1288,15 +1330,15 @@ msgstr "E-mailadres: "
msgid "No name defined"
msgstr "Geen naam gedefinieerd"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Afbeelding verwijderen"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "De bijbehorende afbeelding van dit item verwijderen?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "De bijbehorende afbeelding van dit item verwijderen?"
msgid "Remove"
msgstr "Verwijderen"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klik om bestand(en) te selecteren"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Afbeelding geüpload"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Afbeelding is met succes geüpload"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Fout bij uploaden"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Wis"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Versturen"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Selecteer uit bestaande afbeeldingen"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Selecteer afbeelding"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Download externe afbeelding"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Nieuwe afbeelding uploaden"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Afbeelding Uploaden"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Afbeelding verwijderen"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Download afbeelding"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Afbeelding succesvol gedownload"
@@ -1418,23 +1460,23 @@ msgstr "Afbeelding succesvol gedownload"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Afbeelding uploaden is mislukt"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Afbeelding met succes geüpload"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notitie succesvol opgeslagen"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Opslaan van notities mislukt"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Fout bij opslaan notities"
@@ -1442,15 +1484,15 @@ msgstr "Fout bij opslaan notities"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Notitie opslaan"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Sluit editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Bewerken inschakelen"
@@ -1587,11 +1629,6 @@ msgstr "Pagina niet gevonden"
msgid "This page does not exist"
msgstr "Deze pagina bestaat niet"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Toestemming geweigerd"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "U heeft geen toestemming om deze pagina te bekijken."
@@ -1604,8 +1641,8 @@ msgstr "Server fout"
msgid "A server error occurred"
msgstr "Er is een serverfout opgetreden"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Formulier fout"
@@ -1613,11 +1650,11 @@ msgstr "Formulier fout"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Er staan fouten in één of meer formuliervelden"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Inloggen mislukt"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Controleer uw invoer en probeer het opnieuw."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "E-mail levering gelukt"
@@ -1808,7 +1845,7 @@ msgstr "Hostnaam"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Host keuze opslaan"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API versie"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plug-ins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Selecteer pakket"
msgid "{0} icons"
msgstr "{0} pictogrammen"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Laden"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Geen resultaten gevonden"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Item"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "modelRenderer-invoer vereist voor tabellen"
@@ -2060,7 +2107,7 @@ msgstr "Gegevens verwerken"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Er is een fout opgetreden"
@@ -2148,7 +2195,7 @@ msgstr "De gegevens zijn met succes geïmporteerd"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Sluiten"
@@ -2182,8 +2229,8 @@ msgstr "Opties"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Barcode acties"
@@ -2298,7 +2345,7 @@ msgstr "Groepsrollen bijwerken"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Bijgewerkt"
@@ -2344,9 +2391,9 @@ msgstr "Geen artikelen"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Het proces van de server loopt niet"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-mail instellingen"
@@ -2605,8 +2652,8 @@ msgstr "Meer informatie over {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Meldingen"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Instellingen"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Gebruiker instellingen"
@@ -2671,8 +2718,8 @@ msgstr "Gebruiker instellingen"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Systeem instellingen"
@@ -2684,8 +2731,8 @@ msgstr "Systeem instellingen"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Beheerder Center"
@@ -2722,24 +2769,26 @@ msgstr "Uitloggen"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Voorraad"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Productie"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Kopen"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Verwijder zoekgroep"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Bijlagen"
msgid "Notes"
msgstr "Opmerkingen"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Plug-in geleverd"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Panelen samenvouwen"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Panelen uitklappen"
@@ -2914,18 +2968,18 @@ msgstr "Plug-in informatie"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Auteur"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Datum"
@@ -2950,7 +3004,7 @@ msgstr "Datum"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Pakket"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Plug-in instellingen"
@@ -3090,8 +3143,8 @@ msgstr "Verzending"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inactief"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtueel"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Geen voorraad"
@@ -3111,8 +3164,8 @@ msgstr "Geen voorraad"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "In bestelling"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Beschrijving"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Categorie"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Categorie"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Locatie"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Aantal"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Volgende"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Onderdeel bewerken"
@@ -3891,8 +3946,8 @@ msgstr "Verkoop eisen"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Op voorraad"
msgid "Required Quantity"
msgstr "Vereiste hoeveelheid"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Nieuwe inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Inkooporder aangemaakt"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Nieuw leveranciersdeel"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Leveranciersdeel aangemaakt"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Toevoegen aan inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Onderdeel aan inkooporder toegevoegd"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Selecteer leveranciersdeel"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Kopiëer leveranciersartikelnummer"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Nieuw leveranciers onderdeel"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Selecteer een bestelling"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Nieuwe inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Toevoegen aan geselecteerde inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Geen onderdelen geselecteerd"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Geen koopbare onderdelen geselecteerd"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Onderdelen toegevoegd"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Alle geselecteerde onderdelen toegevoegd aan een inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "U moet minstens één onderdeel selecteren om te bestellen"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Leveranciersonderdeel is vereist"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Hoeveelheid is vereist"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Ongeldige onderdeel selectie"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Corrigeer de fouten in de geselecteerde onderdelen"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Over het InvenTree project"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Vervanging onderdeel"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Stuk lijst BOM Item vervangingen bewerken"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Vervanging toevoegen"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Vervanging toegevoegd"
@@ -4506,33 +4561,33 @@ msgstr "Vervanging toegevoegd"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Bouw Uitvoer"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Te voltooien hoeveelheid"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Te voltooien hoeveelheid"
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Voltooi Productie"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Productieorder is voltooid"
@@ -4560,64 +4615,64 @@ msgstr "Productieorder is voltooid"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Hoeveelheid te schrappen"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Verwijder productieorder"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Geselecteerde bouw outputs worden voltooid, maar gemarkeerd als schroot"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Toegewezen voorraadproducten zullen worden verbruikt"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Productieorder zijn verwijderd"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Productieorder zijn verwijderd"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Annuleer productieorder"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Geselecteerde build outputs worden verwijderd"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Toegewezen voorraadartikelen worden teruggestuurd naar voorraad"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Productieorders zijn geannuleerd"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Toegewezen"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Bron locatie"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Selecteer de bron locatie voor de voorraadtoewijzing"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Selecteer de bron locatie voor de voorraadtoewijzing"
msgid "Allocate Stock"
msgstr "Voorraad toewijzen"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Voorraad items toegewezen"
@@ -4658,8 +4713,8 @@ msgstr "Voorraad items toegewezen"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Verbruikte voorraad"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Volledig verbruikt"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Verbruikt"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Selecteer projectcode voor deze bestelling"
@@ -4698,7 +4753,7 @@ msgstr "Selecteer projectcode voor deze bestelling"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Abonneer je op meldingen voor deze categorie"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Kies locatie"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Item bestemming geselecteerd"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Standaardlocatie voor de subcategorie"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Ontvangen voorraadlocatie geselecteerd"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Standaard locatie geselecteerd"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtueel onderdeel"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Locatie invoeren"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Batch code toewijzen"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Locatie invoeren"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Batch code toewijzen"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Serienummers toewijzen"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Stel vervaldatum in"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Verpakking aanpassen"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Status wijzigen"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Opmerking toevoegen"
@@ -4812,22 +4867,22 @@ msgstr "Opmerking toevoegen"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Op standaardlocatie opslaan"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Bewaar op de bestemming van het item "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Winkel met reeds ontvangen voorraad"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Winkel met reeds ontvangen voorraad"
msgid "Batch Code"
msgstr "Batch code"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Voer batch code in voor ontvangen items"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Serienummers"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Voer serienummers in voor ontvangen items"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Vervaldatum"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Voer een vervaldatum in voor ontvangen items"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Verpakking"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Opmerking"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Ontvangen"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Ontvang regelitems"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Ontvangen items"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Item ontvangen in voorraad"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Controleer Levering"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Het markeren van de zending als gecontroleerd geeft aan dat u hebt geverifieerd dat alle artikelen in deze zending correct zijn"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Verzending gemarkeerd als gecontroleerd"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Verzending uitvinken"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Het uitvinken van de zending geeft aan dat de verzending verder gecontroleerd moet worden"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Verzending gemarkeerd als ongecontroleerd"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Zending voltooien"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Laat leeg om het besteladres te gebruiken"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Voorraad status"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Terug"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Aantal"
@@ -5229,7 +5284,7 @@ msgstr "Interne serverfout"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Uitgelogd"
@@ -5257,81 +5312,81 @@ msgstr "MFA-login succesvol"
msgid "MFA details were automatically provided in the browser"
msgstr "De MFA-gegevens werden automatisch verstrekt in de browser"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Succesvol uitgelogd"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Taal is gewijzigd"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Uw actieve taal is gewijzigd naar de gewenste taal in uw profiel"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Thema gewijzigd"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Uw actieve thema is gewijzigd naar het thema in uw profiel"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Reset is mislukt"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Is al ingelogd"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Er is een tegenstrijdige sessie op de server voor deze browser. Meld u eerst af."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Ingelogd"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Succesvol ingelogd"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Het instellen van MFA is mislukt"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "MFA-instellingen geslaagd"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "De MFA via TOTP is succesvol ingesteld; u moet opnieuw inloggen."
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Wachtwoord ingesteld"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Het wachtwoord is met succes ingesteld. U kunt nu inloggen met uw nieuwe wachtwoord"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Wachtwoord kon niet worden gewijzigd"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "De twee wachtwoordvelden komen niet overeen"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Wachtwoord gewijzigd"
@@ -5351,38 +5406,10 @@ msgstr "Wachtwoord gewijzigd"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Niet geïmplementeerd"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Deze functionaliteit is nog niet geïmplementeerd"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "U heeft geen rechten om deze actie uit te voeren"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Ongeldige retourcode"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server geeft status terug {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Tijdslimiet"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "De aanvraag duurde te lang"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Gegevens exporteren"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Geselecteerde voorraadartikelen verwijderen"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Voorraad acties"
@@ -5811,73 +5838,73 @@ msgstr "Er is een onverwachte fout opgetreden"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Item is al gescand"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API fout"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Kan instance gegevens niet ophalen"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Scan fout"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Geselecteerde elementen zijn niet bekend"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Meerdere objecttypes geselecteerd"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Acties ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Acties ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Barcode scannen"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Barcode Input"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Actie"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Geen items geselecteerd"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Scan en selecteer items om acties uit te voeren"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Scan en selecteer items om acties uit te voeren"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} items geselecteerd"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Gescande items"
@@ -6593,7 +6620,7 @@ msgstr "Stippen"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuta"
@@ -6661,11 +6688,11 @@ msgstr "Snel acties"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Home"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Gebruikers / Toegang"
@@ -6673,27 +6700,27 @@ msgstr "Gebruikers / Toegang"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Gegevens importeren"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Gegevens exporteren"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Barcode scans"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Achtergrond taken"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Fouten rapporten"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Valuta"
@@ -6701,11 +6728,11 @@ msgstr "Valuta"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Aangepaste statussen"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Aangepaste eenheden"
@@ -6715,12 +6742,12 @@ msgstr "Aangepaste eenheden"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Categorie parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Locatie soorten"
@@ -6728,35 +6755,35 @@ msgstr "Locatie soorten"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Machines"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Activiteiten"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Gegevens beheer"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Rapporteren"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Breid uit / Integreren"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Geavanceerde instellingen"
@@ -6949,11 +6976,15 @@ msgstr "Tokens"
msgid "The settings below are specific to each available plugin"
msgstr "De instellingen hieronder zijn specifiek voor elke beschikbare plug-in"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Authenticatie"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Barcodes"
@@ -6965,8 +6996,8 @@ msgstr "Barcodes"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "De onderstaande instellingen zijn specifiek voor elke beschikbare notificatie methode"
@@ -6974,21 +7005,29 @@ msgstr "De onderstaande instellingen zijn specifiek voor elke beschikbare notifi
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Prijzen"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Voorraad bijhouden"
@@ -6996,15 +7035,15 @@ msgstr "Voorraad bijhouden"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Account"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Beveiliging"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Toon opties"
@@ -7040,15 +7079,15 @@ msgstr "Markeren als ongelezen"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Geen vereiste items"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Deze bouwopdracht heeft geen vereiste items."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "Het geassembleerde onderdeel heeft mogelijk geen Materiaalbon (BOM) gedefinieerd, of de BOM is leeg."
@@ -7056,6 +7095,18 @@ msgstr "Het geassembleerde onderdeel heeft mogelijk geen Materiaalbon (BOM) gede
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "BOM niet gevalideerd"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "Het geassembleerde onderdeel heeft mogelijk geen Materiaalbon (BOM) gede
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revisie"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Aangepaste status"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Aangepaste status"
msgid "External"
msgstr "Extern"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Verwijzing"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Bovenliggende Build"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Productiehoeveelheid"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Kan bouwen"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Afgeronde uitvoer"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Uitgegeven door"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Verantwoordelijk"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Elke locatie"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Doel Locatie"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Elke locatie"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Aangemaakt"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Doel Locatie"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Aangemaakt"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Start datum"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Compleet"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Bouw details"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Vereiste onderdelen"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Toegewezen voorraad"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Verbruikte voorraad"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Onvolledige uitvoer"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Externe bestellingen"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Print bouw order"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Test resultaten"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Bewerk bouwopdracht"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Voeg bouwopdracht toe"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Annuleer bouworder"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Deze order annuleren"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Houdt bouwopdracht"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Plaats deze bestelling in de wacht"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Bestelling geplaatst in de wacht"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Probleem bouwopdracht"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Geef deze bestelling uit"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Order uitgegeven"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Voltooi Bouw Opdracht"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Deze bestelling als voltooid markeren"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Bestelling voltooid"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Issue Order"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Bestelling voltooien"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Bouw order acties"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Bestelling bewerken"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Kopieer regel"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Bestelling vasthouden"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Bestelling annuleren"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Toon externe build orders"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Toon externe build orders"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Tabelweergave"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Kalenderoverzicht"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Kalenderoverzicht"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Parametrisch zicht"
@@ -7470,7 +7522,7 @@ msgstr "Fabrikant"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Externe link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Details onderdelen"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Leveranciersdeel toevoegen"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Geen voorraad"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Groep rollen"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Gebruikersinformatie"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Bovenliggende categorie"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Subcategorieën"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Standaard locatie"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Hoogste niveau onderdeel categorie"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Categorie bewerken"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Verplaats items naar bovenliggende categorie"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Items verwijderen"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Verwijder categorie onderdelen"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Actie voor onderdelen"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Actie voor onderdelen in deze categorie"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Onderliggende categorie actie"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Actie voor subcategorieën in deze categorie"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Categorie acties"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Categorie details"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Productie-opdracht toewijzingen"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Verkoopordertoewijzingen"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Valideren stuklijst BOM"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Wil je de materiaal rekening voor deze stuklijst valideren?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "BOM is gevalideerd"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "Het materiaal voor dit onderdeel is gevalideerd."
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "BOM niet gevalideerd"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "De MaterialenBill voor dit onderdeel is eerder gecontroleerd, maar vereist opnieuw validatie"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "De Materialenfactuur voor dit onderdeel is nog niet gevalideerd"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Gevalideerd op"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Gevalideerd door"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Gevalideerd door"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variantie van"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revisie van"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Gevalideerd door"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variantie van"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revisie van"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Standaard locatie"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Standaard categorie locatie"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Eenheden"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Trefwoorden"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Beschikbare voorraad"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "In bestelling"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Vereist voor bestellingen"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Toegewezen aan het bouwen van orders"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Toegewezen aan verkooporders"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimale voorraad"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Vergrendeld"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Sjabloon onderdeel"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Samengesteld onderdeel"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Onderdeel"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testbaar onderdeel"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Traceerbaar onderdeel"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Aankoopbaar onderdeel"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Verkoopbaar onderdeel"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Aangemaakt op"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Aangemaakt door"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Standaard vervaldatum"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "Dagen"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Prijs bereik"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Laatste serienummer"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Selecteer onderdeel revisie"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varianten"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Toewijzingen"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Materiaallijst"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Laatste serienummer"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Selecteer onderdeel revisie"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varianten"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Toewijzingen"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Materiaallijst"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Wordt gebruikt in"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Prijzen onderdeel"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Test sjablonen"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Gerelateerde onderdelen"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Onderdeel is vergrendeld"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Onderdeel parameters kunnen niet worden bewerkt, omdat het onderdeel is vergrendeld"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Vereist"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Tekort"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Onderdeel parameters kunnen niet worden bewerkt, omdat het onderdeel is
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Vereist"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Tekort"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Onderdeel toevoegen"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Onderdeel verwijderen"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Verwijderen van dit onderdeel kan niet ongedaan worden gemaakt"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Order"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Voorraad bestelling"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Zoek op serienummer"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Acties van onderdeel"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Voorraad waarde"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Valideren stuklijst BOM"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Wil je de materiaal rekening voor deze stuklijst valideren?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "BOM is gevalideerd"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "Het materiaal voor dit onderdeel is gevalideerd."
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "De MaterialenBill voor dit onderdeel is eerder gecontroleerd, maar vereist opnieuw validatie"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "De Materialenfactuur voor dit onderdeel is nog niet gevalideerd"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Gevalideerd op"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Gevalideerd door"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Varianten toestaan"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Overgenomen"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Optioneel"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Verbruiksartikelen"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Totale hoeveelheid"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Attriatie"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Afronding meerdere"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maximale prijs"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Inkoopprijs"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Datum van uitgifte"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Niet gecontroleerd"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Bovenliggende locatie"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sub locatie"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Locatie type"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Locatie voorraad topniveau"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Locatie gegevens"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Standaard onderdelen"
@@ -8768,86 +8915,86 @@ msgstr "Standaard onderdelen"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Voorraadlocatie bewerken"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Verplaats items naar bovenliggende locatie"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Voorraadlocatie verwijderen"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Artikel actie"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Actie voor voorraad items op deze locatie"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Locatie acties"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Actie voor onderliggende locaties in deze locatie"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Actie voor onderliggende locaties in deze locatie"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Scan voorraad item"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Gescande voorraadartikel op locatie"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Fout bij scannen voorraad item"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Scan voorraad locatie"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Gescande voorraadlocatie op locatie"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Fout bij scannen stock locatie"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Basis onderdeel"
@@ -8867,7 +9014,7 @@ msgstr "Basis onderdeel"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Vorig serienummer"
@@ -8875,35 +9022,35 @@ msgstr "Vorig serienummer"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Zoek een serienummer"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Volgend serienummer"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Toegewezen aan orders"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Geïnstalleerd in"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Bovenliggend Item"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Bovenliggende voorraad item"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Verbruikt door"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Laatste voorraadcontrole"
@@ -8911,7 +9058,7 @@ msgstr "Laatste voorraadcontrole"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Voorraad details"
@@ -8919,15 +9066,15 @@ msgstr "Voorraad details"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Geïnstalleerde items"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Onderliggende artikelen"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Bewerk voorraadartikel"
@@ -8941,20 +9088,24 @@ msgstr "Bewerk voorraadartikel"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Items bijgewerkt"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Aangemaakt {n} voorraad items"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Voorraad artikel verwijderen"
@@ -8966,44 +9117,44 @@ msgstr "Voorraad artikel verwijderen"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Voorraad item serie nummers geven"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Voorraad item serie nummers geven"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Voorraad item geserialiseerd"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Scan naar locatie"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Scan naar locatie"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Scan dit item naar een locatie"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Voorraad activiteiten"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Scan naar locatie"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Scan dit item naar een locatie"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Voorraad activiteiten"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serienummer geven"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Voorraad serie nummer geven"
@@ -9011,14 +9162,22 @@ msgstr "Voorraad serie nummer geven"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Voorraad artikel acties"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Voorraad artikel acties"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Voorraad artikel acties"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Verouderd"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Verlopen"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Niet beschikbaar"
@@ -9116,27 +9275,22 @@ msgstr "Geen voorraad beschikbaar"
msgid "This stock item has been depleted"
msgstr "Dit voorraadartikel is leeg"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Voorraad informatie"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Toegewezen lijnen"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Kolommen selecteren"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Tabel filters"
@@ -9435,12 +9589,12 @@ msgstr "Filter toevoegen"
msgid "Clear Filters"
msgstr "Filters wissen"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Geen gegevens gevonden"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Fout bij laden tabel opties"
@@ -9468,7 +9622,7 @@ msgstr "Fout bij laden tabel opties"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Server heeft onjuist gegevenstype teruggestuurd"
@@ -9477,7 +9631,7 @@ msgstr "Server heeft onjuist gegevenstype teruggestuurd"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Fout bij laden van tabelgegevens"
@@ -9494,49 +9648,49 @@ msgstr "Fout bij laden van tabelgegevens"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Details weergeven"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "{model} Bekijken"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Geselecteerde items verwijderen"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
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:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Deze actie kan niet ongedaan worden gemaakt"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Items verwijderd"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Verwijderen van item is mislukt."
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Aangepaste tabelfilters zijn actief"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Verwijder de geselecteerde records"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Gegevens vernieuwen"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Actieve filters"
@@ -9548,71 +9702,66 @@ msgstr "Actieve filters"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Deze stuklijst is gedefinieerd voor een ander bovenliggende item"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Informatie over onderdeel"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Dit BOM item is niet gevalideerd"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Informatie over onderdeel"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Vervanging"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Virtueel deel"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Externe voorraad"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Inclusief vervangend voorraad"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Bevat variant voorraad"
-
-#: 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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Bouwen"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Inclusief vervangend voorraad"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Bevat variant voorraad"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Bouwen"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Bouwen"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Verbruiksartikel"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Geen beschikbare voorraad"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Getest items weergeven"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Traceerbare items tonen"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Actief deel"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Gecreëerde items weergeven"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Virtuele items tonen"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Toon artikelen met beschikbare voorraad"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Artikelen op bestelling tonen"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Goedgekeurd"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Goedgekeurde items weergeven"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Overgenomen"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Toon overgenomen items"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Varianten toestaan"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Toon items die variant vervanging toestaan"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Optioneel"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Optionele items weergeven"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Verbruiksartikelen"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Toon verbruikte items"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Heeft prijzen"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Toon items met prijzen"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Stuklijst gegevens importeren"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Stuklijst BOM item toevoegen"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Stuklijst BOM item aangemaakt"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Edit stuklijst BOM Item"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Stuklijst BOM item bijgewerkt"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Verwijder stuklijst BOM Item"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Stuklijst BOM item verwijderd"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Stuklijst BOM item gevalideerd"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Mislukt om BOM-item te valideren"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Bekijk stuklijst BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "BOM-regel valideren"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Vervangingen bewerken"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "BOM Artikelen toevoegen"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Voeg een enkel BOM artikel toe"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Importeren uit bestand"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "BOM Artikelen uit een bestand importeren"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Factuur van materialen kan niet worden bewerkt, omdat het onderdeel is vergrendeld"
@@ -9966,18 +10108,6 @@ msgstr "Wordt overgenomen"
msgid "Unit Quantity"
msgstr "Eenheid hoeveelheid"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Totale hoeveelheid"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Attriatie"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Afronding meerdere"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "BOM Information"
@@ -10361,10 +10491,6 @@ msgstr "Geen bijlagen gevonden"
msgid "Drag attachment file here to upload"
msgstr "Sleep het bijlagebestand hier om te uploaden"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Item"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10456,59 +10582,59 @@ msgstr "Een nieuwe parameter maken"
msgid "Import parameters from a file"
msgstr "Importeer parameters uit een bestand"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Parameter sjabloon toevoegen"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Dupliceer parameter sjabloon"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Parameter sjabloon verwijderen"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Parameter sjabloon bewerken"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Selectievakje"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Toon selectie vak sjabloon"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Heeft keuzes"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Toon sjablonen met keuzes"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Heeft eenheden"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Toon sjablonen met eenheden"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Ingeschakelde sjablonen weergeven"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Model type"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Sorteren op model type"
@@ -11623,7 +11749,7 @@ msgstr "Filter per regelitem status"
msgid "Receive selected items"
msgstr "Geselecteerde items ontvangen"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Item ontvangen"
diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po
index 3c8f7d863c..30c777094b 100644
--- a/src/frontend/src/locales/no/messages.po
+++ b/src/frontend/src/locales/no/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopiert"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopi"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Dupliser"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Rediger"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Slett"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Avbryt"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Handlinger"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Søk"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Velg Kolonner"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nei"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nei"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Del"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Deler"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametere"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Produsentdeler"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Delkategori"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Delkategorier"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Lagervare"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Lagervarer"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lagerplassering"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lagerplasseringer"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Lagerhistorikk"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Firma"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Prosjektkode"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Prosjektkoder"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Innkjøpsordre"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Innkjøpsordrer"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Ordrelinjer for innkjøpsordre"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Salgsordre"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Salgsordrer"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Returordre"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Returordrer"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakter"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Eier"
@@ -458,7 +483,7 @@ msgstr "Eiere"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Bruker"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Brukere"
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Feil"
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Produksjonsordrer"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Ikke implementert"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Denne funksjonen er ikke implementert ennå"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Du har ikke rettigheter til å utføre denne handlingen"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Ugyldig returkode"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Serveren returnerte status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Skann strekkode"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Suksess"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Lenke"
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Fjern strekkodekobling"
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopiert"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopi"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Skriver etikett"
@@ -930,7 +972,7 @@ msgstr "Neste måned"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr "Forfalt"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr "Epost: "
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Fjern bilde"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr "Fjern"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Opplastningsfeil"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Send"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Velg bilde"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Slett bilde"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Last ned bilde"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Kunne ikke lagre notater"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Skjemafeil"
@@ -1613,11 +1650,11 @@ msgstr "Skjemafeil"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Innloggingen mislyktes"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Kontroller inndataene og prøv igjen."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Levering av e-post vellykket"
@@ -1808,7 +1845,7 @@ msgstr "Vert"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API-versjon"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Utvidelser"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Laster"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Ingen resultater funnet"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Artikkel"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Lukk"
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Strekkodehandlinger"
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Oppdatert"
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-Post-Innstillinger"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Varlser"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Innstillinger"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Systeminnstillinger"
@@ -2684,8 +2731,8 @@ msgstr "Systeminnstillinger"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Adminsenter"
@@ -2722,24 +2769,26 @@ msgstr "Logg ut"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Lagerbeholdning"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Innkjøp"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Vedlegg"
msgid "Notes"
msgstr "Notater"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Forfatter"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Dato"
@@ -2950,7 +3004,7 @@ msgstr "Dato"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Innstillinger for Utvidelser"
@@ -3090,8 +3143,8 @@ msgstr "Forsendelse"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuell"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Ingen lagerbeholdning"
@@ -3111,8 +3164,8 @@ msgstr "Ingen lagerbeholdning"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "I bestilling"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detaljer"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategori"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Antall"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Rediger del"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "På lager"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Leverandørdel opprettet"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Tildelt"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr "Tildel lagerbeholdning"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Serienumre"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Utløpsdato"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr "Mottatt"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Tell"
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Tilbakestilling feilet"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Passord angitt"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Passord endret"
@@ -5351,38 +5406,10 @@ msgstr "Passord endret"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Ikke implementert"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Denne funksjonen er ikke implementert ennå"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Du har ikke rettigheter til å utføre denne handlingen"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Ugyldig returkode"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Serveren returnerte status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Lagerhandlinger"
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Valgte elementer er ikke kjent"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Flere objekttyper er valgt"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Handling"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} elementer valgt"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuta"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Bakgrunnsoppgaver"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Feilrapporter"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Egendefinerte enheter"
@@ -6715,12 +6742,12 @@ msgstr "Egendefinerte enheter"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Rapportering"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Avanserte Innstillinger"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Strekkoder"
@@ -6965,8 +6996,8 @@ msgstr "Strekkoder"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Prising"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiketter"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Sporing av lager"
@@ -6996,15 +7035,15 @@ msgstr "Sporing av lager"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Konto"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Sikkerhet"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Visningsvalg"
@@ -7040,15 +7079,15 @@ msgstr "Marker som ulest"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Kan Produsere"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Fullførte artikler"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Ansvarlig"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Opprettet"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Opprettet"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Måldato"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Produksjonsdetaljer"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Brukt lagerbeholdning"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Ufullstendige artikler"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Underordnede Produksjonsordrer"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Rediger produksjonsordre"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Legg til produksjonsordre"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Produksjonsordre-handlinger"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Produsent"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Legg til leverandørdel"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Produksjonsordre-tildelinger"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Salgsordretildelinger"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Enheter"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Nøkkelord"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "I bestilling"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Sammenstilt del"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Sporbar del"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Opprettelsesdato"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Prisområde"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varianter"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Tildelinger"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Stykkliste (BOM)"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varianter"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Tildelinger"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Stykkliste (BOM)"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Brukt i"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Testmaler"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Relaterte Deler"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Delhandlinger"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Valgfritt"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Forbruksvare"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Basisdel"
@@ -8867,7 +9014,7 @@ msgstr "Basisdel"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Installerte artikler"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Underordnede artikler"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Rediger lagervare"
@@ -8941,20 +9088,24 @@ msgstr "Rediger lagervare"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Lagerhandlinger"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Lagerhandlinger"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr "Ingen lagerbeholdning tilgjengelig"
msgid "This stock item has been depleted"
msgstr "Denne lagervaren er oppbrukt"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Lagerinformasjon"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Velg Kolonner"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Tabellfiltre"
@@ -9435,12 +9589,12 @@ msgstr "Legg til filter"
msgid "Clear Filters"
msgstr "Fjern filtre"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Ingen poster funnet"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Serveren returnerte feil datatype"
@@ -9477,7 +9631,7 @@ msgstr "Serveren returnerte feil datatype"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Slett valgte oppføringer"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Oppdater data"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Denne BOM-artikkelen er definert for en annen overordnet del"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Delinformasjon"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Delinformasjon"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Inkluderer erstatningsbeholdning"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Inkluderer variantbeholdning"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Produseres"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Inkluderer erstatningsbeholdning"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Inkluderer variantbeholdning"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Produseres"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Produseres"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Forbruksvare"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Vis sporbare deler"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Vis elementer med tilgjengelig lagerbeholdning"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Vis elementer i bestilling"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Vis godkjente elementer"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Vis arvede elementer"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Valgfritt"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Vis valgfrie elementer"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Forbruksvare"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Vis forbruksartikler"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Har prising"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Vis varer med priser"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Vis BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Rediger erstatninger"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr "Ingen vedlegg funnet"
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Artikkel"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Slett parametermal"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Rediger parametermal"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Sjekkboks"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Vis sjekkboks-maler"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Har valg"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Vis maler med valg"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Har enheter"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Vis maler med enheter"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po
index 2e771f7149..242c8ff05f 100644
--- a/src/frontend/src/locales/pl/messages.po
+++ b/src/frontend/src/locales/pl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Błąd renderowania komponentu"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Wystąpił błąd podczas renderowania tego komponentu. Więcej informacji znajdziesz na konsoli."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Skopiowano"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopiuj"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Zduplikuj"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Edytuj"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Usuń"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Anuluj"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Akcje"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Szukaj"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Zaliczone"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nie"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nie"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Komponent"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Komponenty"
@@ -158,9 +184,9 @@ msgstr "Parametr"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Szablony testów części"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Części producenta"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Kategoria części"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Kategorie części"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Element magazynowy"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Elementy magazynowe"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lokacja stanu"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lokacje stanów"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Typy lokalizacji magazynowych"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Historia magazynu"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Firmy"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Kod projektu"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Kody projektu"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Zlecenie zakupu"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Zlecenia zakupu"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Pozycje zlecenia zakupu"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Zlecenie sprzedaży"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Zlecenia Sprzedaży"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Zwrot zamówienia"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Zwroty zamówień"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakty"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Właściciel"
@@ -458,7 +483,7 @@ msgstr "Właściciele"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Użytkownik"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Użytkownicy"
@@ -486,7 +511,7 @@ msgstr "Grupa"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Szablon etykiety"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Szablony etykiet"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Szablon Raportu"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Szablony raportów"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Błąd"
msgid "Errors"
msgstr "Błędy"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Administracja"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Zlecenia wykonania"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Nie zaimplementowano"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Odmowa dostępu"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Nie masz uprawnień do wykonania tej czynności"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Nieprawidłowy kod odpowiedzi"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Serwer zwrócił status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Błąd renderowania komponentu"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Wystąpił błąd podczas renderowania tego komponentu. Więcej informacji znajdziesz na konsoli."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Wprowadź dane kodu kreskowego"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Zeskanuj kod kreskowy"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Kod kreskowy nie pasuje do oczekiwanego typu modelu"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Sukces"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Nie udało się przetworzyć kodu kreskowego"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Nie udało się zeskanować kodu kreskowego"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Nie udało się powiązać kodu kreskowego"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Powiąż"
@@ -774,7 +824,7 @@ msgstr "Spowoduje to usunięcie powiązania z przypisanym kodem kreskowym"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Odłącz Kod Kreskowy"
@@ -786,14 +836,6 @@ msgstr "Otwórz w interfejsie administratora"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Skopiowano"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopiuj"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Drukowanie etykiet"
@@ -930,7 +972,7 @@ msgstr "Następny miesiąc"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Błąd aktualizacji zamówienia"
msgid "Overdue"
msgstr "Zaległe"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Nie udało się załadować elementów pulpitu."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Brak elementów"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Użyj menu, aby dodać elementy do pulpitu"
@@ -1288,15 +1330,15 @@ msgstr "E-mail: "
msgid "No name defined"
msgstr "Nie zdefiniowano nazwy"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Usuń obraz"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Usunąć powiązany obrazek z tego elementu?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Usunąć powiązany obrazek z tego elementu?"
msgid "Remove"
msgstr "Usuń"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Kliknij, aby wybrać plik(i)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Obraz przesłany"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Obraz został pomyślnie przesłany"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Błąd przesyłania"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Wyczyść"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Zatwierdź"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Wybierz z istniejących obrazów"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Wybierz obraz"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Pobierz obraz z adres URL"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Prześlij nowy obraz"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Prześlij obrazek"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Usuń obraz"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Pobierz obraz"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Obraz został pomyślnie pobrany"
@@ -1418,23 +1460,23 @@ msgstr "Obraz został pomyślnie pobrany"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Przesłanie obrazu nie powiodło się"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Obraz został pomyślnie przesłany"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notatki zapisane pomyślnie"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Nie udało się zapisać notatek"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Błąd zapisywania notatek"
@@ -1442,15 +1484,15 @@ msgstr "Błąd zapisywania notatek"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Zapisz notatki"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Zamknij edytor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Włącz edycję"
@@ -1587,11 +1629,6 @@ msgstr "Nie znaleziono strony"
msgid "This page does not exist"
msgstr "Strona nieistnieje"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Odmowa dostępu"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Nie masz uprawnień do przeglądania tej strony."
@@ -1604,8 +1641,8 @@ msgstr "Błąd serwera"
msgid "A server error occurred"
msgstr "Wystąpił błąd serwera"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Błąd formularza"
@@ -1613,11 +1650,11 @@ msgstr "Błąd formularza"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
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:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Logowanie nie powiodło się"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Sprawdź dane i spróbuj ponownie."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Wiadomość dostarczona"
@@ -1808,7 +1845,7 @@ msgstr "Host"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Zapisz wybór hosta"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Serwer"
@@ -1896,14 +1933,15 @@ msgstr "Wersja API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Wtyczki"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Wybierz paczkę"
msgid "{0} icons"
msgstr "{0} ikon(y)"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Wczytuję"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nie znaleziono wyników"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Komponent"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Wpis modelRenderer jest wymagany dla tabel"
@@ -2060,7 +2107,7 @@ msgstr "Przetwarzanie danych"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Wystąpił błąd"
@@ -2148,7 +2195,7 @@ msgstr "Dane zostały zaimportowane"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Zamknij"
@@ -2182,8 +2229,8 @@ msgstr "Opcje"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Akcje kodów kreskowych"
@@ -2298,7 +2345,7 @@ msgstr "Aktualizowanie ról grupy"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Zaktualizowano"
@@ -2344,9 +2391,9 @@ msgstr "Brak elementów"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Ustawienia poczty e-mail"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Powiadomienia"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Ustawienia"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Ustawienia systemowe"
@@ -2684,8 +2731,8 @@ msgstr "Ustawienia systemowe"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centrum Admina"
@@ -2722,24 +2769,26 @@ msgstr "Wyloguj się"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stan"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Zakupy"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Ustawienia wtyczki"
@@ -3090,8 +3143,8 @@ msgstr "Wysyłka"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Nieaktywny"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Wirtualny"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Brak w magazynie"
@@ -3111,8 +3164,8 @@ msgstr "Brak w magazynie"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Lokalizacja"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Numer seryjny"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Ilość"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Na stanie"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Wybierz lokalizację"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Wybrano domyślną lokalizację"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Ustaw lokalizację"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Ustaw lokalizację"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Dostosuj opakowanie"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Zmień status"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Dodaj notatkę"
@@ -4812,22 +4867,22 @@ msgstr "Dodaj notatkę"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Zapisz w domyślnej lokalizacji"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr "Kod partii"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Numery seryjne"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Opakowanie"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Notatka"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Otrzymano"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Ilość"
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Wylogowano"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Zalogowano"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Hasło ustawione"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Nie zaimplementowano"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Nie masz uprawnień do wykonania tej czynności"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Nieprawidłowy kod odpowiedzi"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Serwer zwrócił status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Zadania w tle"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Raporty o błędach"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Waluty"
@@ -6701,11 +6728,11 @@ msgstr "Waluty"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Jednostki niestandardowe"
@@ -6715,12 +6742,12 @@ msgstr "Jednostki niestandardowe"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parametry kategorii"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Maszyny"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Raportowanie"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Opcje zaawansowane"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Kody kreskowe"
@@ -6965,8 +6996,8 @@ msgstr "Kody kreskowe"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Cennik"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etykiety"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Konto"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Bezpieczeństwo"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Wyświetl opcje"
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Następny numer seryjny"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Komponent"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po
index 5c099aca5f..07bf9136d7 100644
--- a/src/frontend/src/locales/pt/messages.po
+++ b/src/frontend/src/locales/pt/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Erro ao renderizar componente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Ocorreu um erro ao renderizar este componente. Consulte o console para obter mais informações."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copiado"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copiar"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicar"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Editar"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Eliminar"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Ações"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Buscar"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Selecionar Colunas"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Aprovar"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Não"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Não"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Peça"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Peças"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parâmetros"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Modelos de Teste da Peça"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Peças do fabricante"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Categoria da peça"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Categorias da Peça"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Item de Estoque"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Itens de Estoque"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Localização de Stock"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Localizações de Stock"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Tipo de Local de Estoque"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Histórico de Estoque"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Empresas"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Código do projeto"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Códigos do Projeto"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Pedido de Compra"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Pedidos de compra"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Pedido de compra das linhas"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Pedido de Venda"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Pedidos de vendas"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Pedido de Devolução"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Pedidos de Devolução"
@@ -442,12 +467,12 @@ msgstr "Contato"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contatos"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Proprietário"
@@ -458,7 +483,7 @@ msgstr "Proprietários"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Utilizador"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Utilizadores"
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Modelo de Etiqueta"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Modelos de Etiqueta"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Modelo de relatório"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Modelos de relatório"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Erro"
msgid "Errors"
msgstr "Erros"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Ordens de Produções"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Não implementado"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Este recurso ainda não foi implementado"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Não tem permissões para efetuar esta ação"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Código de retorno inválido"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "O servidor retornou o status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Erro ao renderizar componente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Ocorreu um erro ao renderizar este componente. Consulte o console para obter mais informações."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Ler Código de Barras"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Sucesso"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Ligação"
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Desatribuir Código de Barras"
@@ -786,14 +836,6 @@ msgstr "Abrir na interface de administrador"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copiado"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copiar"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr "Em atraso"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr "Nenhum nome definido"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Remover imagem"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Remover a imagem associada a este item?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Remover a imagem associada a este item?"
msgid "Remove"
msgstr "Eliminar"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Clique para selecionar o(s) arquivo(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Erro ao enviar"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Apagar"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Enviar"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Selecionar uma imagem existente"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Selecionar Imagem"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Carregar nova imagem"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Carregar Imagem"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Eliminar imagem"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Falha no carregamento da imagem"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notas guardadas com sucesso"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Falha ao guardar notas"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Gravar notas"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1588,11 +1630,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1605,8 +1642,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Erro de formulário"
@@ -1614,11 +1651,11 @@ msgstr "Erro de formulário"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1662,12 +1699,12 @@ msgstr "Não foi possível iniciar a sessão"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Verifique suas informações e tente novamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Envio bem sucedido"
@@ -1809,7 +1846,7 @@ msgstr "Servidor"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1878,7 +1915,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Servidor"
@@ -1897,14 +1934,15 @@ msgstr "Versão da API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Extensões"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1969,16 +2007,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "A carregar"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nenhum resultado encontrado"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Item"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "entrada do modelRenderer necessária para tabelas"
@@ -2061,7 +2108,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2149,7 +2196,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2183,8 +2230,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Ações de código de barras"
@@ -2299,7 +2346,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Atualizado"
@@ -2345,9 +2392,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2550,7 +2597,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Configurações de Email"
@@ -2606,8 +2653,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2618,11 +2665,11 @@ msgstr "Notificações"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2654,8 +2701,8 @@ msgstr "Configurações"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2672,8 +2719,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Definições de Sistema"
@@ -2685,8 +2732,8 @@ msgstr "Definições de Sistema"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centro de Administração"
@@ -2723,24 +2770,26 @@ msgstr "Encerrar sessão"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Estoque"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2752,6 +2801,7 @@ msgstr "Comprando"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2811,7 +2861,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2880,15 +2930,19 @@ msgstr "Anexos"
msgid "Notes"
msgstr "Anotações"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2915,18 +2969,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2941,7 +2995,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Data"
@@ -2951,7 +3005,7 @@ msgstr "Data"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2998,8 +3052,7 @@ msgstr "Pacote"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Configurações da Extensão"
@@ -3091,8 +3144,8 @@ msgstr "Envios"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inativo"
@@ -3103,7 +3156,7 @@ msgid "Virtual"
msgstr "Virtual"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Sem Estoque"
@@ -3112,8 +3165,8 @@ msgstr "Sem Estoque"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3121,9 +3174,9 @@ msgstr "No Pedido"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3136,9 +3189,9 @@ msgstr "Detalhes"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3147,8 +3200,8 @@ msgstr "Categoria"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3160,39 +3213,41 @@ msgstr "Categoria"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Localização"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Número de Série"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3204,9 +3259,9 @@ msgid "Quantity"
msgstr "Quantidade"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3799,7 +3854,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Editar Peça"
@@ -3892,8 +3947,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3904,94 +3959,94 @@ msgstr "Em Estoque"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Fornecedor da Peça criado"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4481,19 +4536,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4507,33 +4562,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Saída da Produção"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4549,11 +4604,11 @@ msgstr ""
msgid "Status"
msgstr "Estado"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Concluir Saídas de Produção"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "O Pedido de produção foi concluído"
@@ -4561,64 +4616,64 @@ msgstr "O Pedido de produção foi concluído"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Cancelar Saída de Produção"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Os Pedidos de produção foram cancelados"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Os Pedidos de produção foram cancelados"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Cancelar Saída de Produção"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Os Pedidos de produção foram cancelados"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4626,20 +4681,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Alocado"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Localização de Origem"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4649,8 +4704,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr "Alocar estoque"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4659,8 +4714,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4673,22 +4728,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4699,7 +4754,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4738,35 +4793,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Escolher Localização"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destino do item selecionado"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Localização padrão da categoria de peça selecionada"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Localização do estoque recebido selecionada"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Localização padrão selecionada"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Peça virtual"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4774,38 +4829,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Definir localização"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Definir localização"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Alterar Estado"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4813,22 +4868,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Armazenar no local padrão"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Armazenar com estoque já recebido"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4838,51 +4893,51 @@ msgstr "Armazenar com estoque já recebido"
msgid "Batch Code"
msgstr "Código de Lote"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Números de Série"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Embalagem"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Nota"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4890,11 +4945,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Recebido"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Receber item de linha"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4907,52 +4962,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4981,7 +5036,7 @@ msgid "Stock Status"
msgstr "Estado do Estoque"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5008,7 +5063,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
@@ -5230,7 +5285,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Sessão terminada"
@@ -5258,81 +5313,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Sessão terminada com sucesso"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Falha ao redefinir"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Sessão Iniciada"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Sessão iniciada com êxito"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Palavra-passe definida"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5352,38 +5407,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Não implementado"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Este recurso ainda não foi implementado"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-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:37
-msgid "Invalid Return Code"
-msgstr "Código de retorno inválido"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "O servidor retornou o status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5473,7 +5500,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Ações de Estoque"
@@ -5812,73 +5839,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Elementos selecionados não são conhecidos"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Vários tipos de objeto selecionados"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Ação"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} itens selecionados"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6594,7 +6621,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Moeda"
@@ -6662,11 +6689,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6674,27 +6701,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Tarefas em segundo plano"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Relatórios de Erros"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Moedas"
@@ -6702,11 +6729,11 @@ msgstr "Moedas"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Unidades Personalizadas"
@@ -6716,12 +6743,12 @@ msgstr "Unidades Personalizadas"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parâmetros de Categoria"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6729,35 +6756,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Máquinas"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Relatórios"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Opções Avançadas"
@@ -6950,11 +6977,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Códigos de barras"
@@ -6966,8 +6997,8 @@ msgstr "Códigos de barras"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6975,21 +7006,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Preços"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiquetas"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Rastreamento de Estoque"
@@ -6997,15 +7036,15 @@ msgstr "Rastreamento de Estoque"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Conta"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Segurança"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Opções de Exibição"
@@ -7041,15 +7080,15 @@ msgstr "Marcar como não lido"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7057,6 +7096,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7089,25 +7140,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revisão"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7116,273 +7167,274 @@ msgstr ""
msgid "External"
msgstr "Externos"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referência"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Produção Parente"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Quantidade de Produção"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Pode Produzir"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Saídas Concluídas"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Emitido por"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsável"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Qualquer localização"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Local de Destino"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Qualquer localização"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Criado"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Local de Destino"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Criado"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Data alvo"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Concluído"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Detalhes da Produção"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Estoque Consumido"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Saídas Incompletas"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Pedido de Produção Filho"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Resultados do teste"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Editar Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Novo Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Cancelar Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Ações do Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Cancelar pedido"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7404,7 +7456,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7413,7 +7465,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7425,7 +7477,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7434,7 +7486,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7471,7 +7523,7 @@ msgstr "Fabricante"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7535,7 +7587,7 @@ msgstr "Link Externo"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Detalhes da Peça"
@@ -7634,11 +7686,11 @@ msgid "Add Supplier Part"
msgstr "Adicionar Fornecedor da Peça"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Sem Estoque"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7660,7 +7712,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7697,7 +7749,7 @@ msgid "Parent Category"
msgstr "Categoria Parente"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Sub-categorias"
@@ -7717,117 +7769,70 @@ msgid "Default location"
msgstr "Localização predefinida"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Categoria da peça de nível superior"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Editar Categoria da Peça"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Eliminar itens"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Definir Categoria da Peça"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Ações da peça"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Ações para peças nesta categoria"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Ações para Categorias Filhas"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Ações para Caregorias Filhas nesta Categoria"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Ações da Categoria"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Detalhes da Categoria"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Alocações de Pedido de Produção"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Alocações do Pedido de Vendas"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7836,6 +7841,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante de"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7844,190 +7857,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante de"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Localização Padrão"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Localização padrão da Categoria"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Unidades"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Palavras-chave"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Estoque Disponível"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Na ordem"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Alocado para Pedidos de Produção"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Alocado para Pedidos de Venda"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Estoque Mínimo"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Peça Modelo"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Peça montada"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Peça do componente"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Peça rastreável"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Peça comprável"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Peça vendível"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Data de Criação"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Criado por"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Intervalo de Preço"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Variantes"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Alocações"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Lista de Materiais"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Variantes"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Alocações"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Lista de Materiais"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Utilizado em"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Preço da Peça"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Modelos de Teste"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Peças Relacionadas"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Obrigatório"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8036,46 +8051,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Obrigatório"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Adicionar Peça"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Excluir Peça"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "A exclusão desta parte não pode ser revertida"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Encomendar Estoque"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Ações da Peça"
@@ -8173,7 +8178,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8206,10 +8211,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Herdado"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Opcional"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Consumível"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8251,8 +8398,8 @@ msgstr "Preço Máximo"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8337,7 +8484,7 @@ msgstr "Preço de Compra"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8477,7 +8624,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8656,7 +8803,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8744,7 +8891,7 @@ msgid "Parent Location"
msgstr "Localização Parente"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sub-locais"
@@ -8754,14 +8901,14 @@ msgid "Location Type"
msgstr "Tipo de Localização"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Local de estoque de alto nível"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Detalhes da localização"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Peças padrão"
@@ -8769,86 +8916,86 @@ msgstr "Peças padrão"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Editar Local de Estoque"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Editar Local de Estoque"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Ações do item"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Ações para itens de estoque nesta localização"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Ações de localização"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Ação para locais filhos nesta localização"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Ação para locais filhos nesta localização"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Peça Base"
@@ -8868,7 +9015,7 @@ msgstr "Peça Base"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8876,35 +9023,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Próximo número de série"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Instalado em"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Consumido por"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Último Balanço"
@@ -8912,7 +9059,7 @@ msgstr "Último Balanço"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Detalhes de Estoque"
@@ -8920,15 +9067,15 @@ msgstr "Detalhes de Estoque"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Itens instalados"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Itens Filhos"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Editar Item do Estoque"
@@ -8942,20 +9089,24 @@ msgstr "Editar Item do Estoque"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Excluir Item de Estoque"
@@ -8967,44 +9118,44 @@ msgstr "Excluir Item de Estoque"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Operações de Stock"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Operações de Stock"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9012,14 +9163,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Ações do Item do Estoque"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Ações do Item do Estoque"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9028,17 +9187,17 @@ msgstr "Ações do Item do Estoque"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9117,27 +9276,22 @@ msgstr "Nenhum estoque disponível"
msgid "This stock item has been depleted"
msgstr "Este item de estoque está esgotado"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Informação do Estoque"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Selecionar Colunas"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9424,7 +9578,7 @@ msgid "Filter"
msgstr "Filtro"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtros de tabela"
@@ -9436,12 +9590,12 @@ msgstr "Adicionar Filtro"
msgid "Clear Filters"
msgstr "Limpar Filtros"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Nenhum registo encontrado"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9469,7 +9623,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "O servidor retornou dados incorretos"
@@ -9478,7 +9632,7 @@ msgstr "O servidor retornou dados incorretos"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9495,49 +9649,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Remover registos selecionados"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Atualizar dados"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9549,71 +9703,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Este item BOM é definido para uma peça parental diferente"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Informação da Peça"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Informação da Peça"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Estoque externo"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Inclui substitutos de estoque"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Inclui estoque variante"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Estoque externo"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Produzindo"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Inclui substitutos de estoque"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Inclui estoque variante"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9626,178 +9775,171 @@ msgstr "Produzindo"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Produzindo"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Item Consumível"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Mostrar partes rastreáveis"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Peça Ativa"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Mostrar itens com estoque disponível"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Mostrar itens no pedido"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validado"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Mostrar itens validados"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Herdado"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Mostrar itens herdados"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Opcional"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Mostrar itens opcionais"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Consumível"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Mostrar itens consumíveis"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Tem Preço"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Exibir itens com preço"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Adicionar Item na BOM"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Item BOM criado"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Editar Item da BOM"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Item da BOM atualizado"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Apagar Item da BOM"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Item da BOM excluído"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Visualizar BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Editar peças substitutas"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9967,18 +10109,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr "Quantidade Unitária"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10362,10 +10492,6 @@ msgstr "Nenhum anexo encontrado"
msgid "Drag attachment file here to upload"
msgstr "Arraste o arquivo de anexo aqui para enviar"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Item"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10457,59 +10583,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Adicionar modelo de Parâmetro"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Excluir Modelo de Parâmetro"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Editar Modelo de Parâmetro"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Caixa de seleção"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Mostrar modelos da caixa de seleção"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Possui escolhas"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Mostrar modelos com escolhas"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Possui unidades"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Mostrar modelos com escolhas"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Tipo de Modelo"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11624,7 +11750,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/pt_BR/messages.po b/src/frontend/src/locales/pt_BR/messages.po
index 875aaab70b..d9a6d25a09 100644
--- a/src/frontend/src/locales/pt_BR/messages.po
+++ b/src/frontend/src/locales/pt_BR/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Erro ao renderizar componente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Um erro ocorreu ao renderizar este componente. Verifique o console para mais informações."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copiada"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copiar"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicar"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Editar"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Excluir"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Ações"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Buscar"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Selecionar Colunas"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Aprovado"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Não"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Não"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Peça"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Peças"
@@ -158,9 +184,9 @@ msgstr "Parâmetro"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parâmetros"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Teste de Modelos de Peças"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Peças do Fabricante"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Categoria da Peça"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Categorias de Peça"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Item de estoque"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Itens de Estoque"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Localização do estoque"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Locais de estoque"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Categoria de Localização de Estoque"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Histórico de estoque"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Empresas"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Código do Projeto"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Códigos de Projeto"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Pedido de Compra"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Pedidos de compra"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Linhas do Pedido de Compra"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Pedido de Venda"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Pedidos de vendas"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Pedido de Devolução"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Pedidos de Devolução"
@@ -442,12 +467,12 @@ msgstr "Contato"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contatos"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Proprietário"
@@ -458,7 +483,7 @@ msgstr "Proprietários"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Usuário"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Usuários"
@@ -486,7 +511,7 @@ msgstr "Grupo"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Modelo de Etiqueta"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Modelos de Etiqueta"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Modelo de Relatório"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Modelos de Relatório"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Erro"
msgid "Errors"
msgstr "Erros"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Ordens de Produções"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Não implementado"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Esta função ainda não foi implementada"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Permissão negada"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Você não tem permissão para realizar esta ação"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Código de retorno inválido"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "O servidor retornou o estado {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Tempo esgotado"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "A solicitação excedeu o tempo"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Falha no processamento"
msgid "Process completed successfully"
msgstr "Processo finalizado com sucesso"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Erro ao renderizar componente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Um erro ocorreu ao renderizar este componente. Verifique o console para mais informações."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Digitar informações do código de barras"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Ler Código de Barras"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Código de barras não corresponde ao tipo de modelo esperado"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Sucesso"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Falha ao escanear código de barras"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Falha ao escanear código de barras"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Falha ao escanear código de barras"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Link"
@@ -774,7 +824,7 @@ msgstr "Isto irá remover o link com o código de barras associado"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Desvincular Código de Barras"
@@ -786,14 +836,6 @@ msgstr "Abrir na página de administrador"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copiada"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copiar"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Imprimir Etiquetas"
@@ -930,7 +972,7 @@ msgstr "Mês seguinte"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Erro ao atualizar pedido"
msgid "Overdue"
msgstr "Em atraso"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Falha ao carregar widgets do painel."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Nenhum Widget Selecionado"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Use o menu para adicionar widgets ao painel de controle"
@@ -1288,15 +1330,15 @@ msgstr "Email: "
msgid "No name defined"
msgstr "Sem nome definido"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Remover Imagem"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Remover imagem associada a este item?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Remover imagem associada a este item?"
msgid "Remove"
msgstr "Remover"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Clique para selecionar o(s) arquivo(s)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Imagem carregada"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Imagem carregada com sucesso"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Erro no carregamento"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Limpar"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Enviar"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Selecionar de imagens existentes"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Selecionar Imagem"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Baixar imagem remota"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Carregar nova imagem"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Enviar Imagem"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Excluir imagem"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Baixar Imagem"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Imagem baixada com sucesso"
@@ -1418,23 +1460,23 @@ msgstr "Imagem baixada com sucesso"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Upload da imagem falhou"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Imagem enviada com sucesso"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notas salvas com sucesso"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Falha em salvar notas"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Erro ao Salvar Notas"
@@ -1442,15 +1484,15 @@ msgstr "Erro ao Salvar Notas"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Salvar Notas"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Fechar Editor"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Permitir edição"
@@ -1587,11 +1629,6 @@ msgstr "Página Não Encontrada"
msgid "This page does not exist"
msgstr "Esta página não existe"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Permissão negada"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Você não tem permissão para visualizar esta página."
@@ -1604,8 +1641,8 @@ msgstr "Erro de servidor"
msgid "A server error occurred"
msgstr "Ocorreu um erro no servidor"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Erro no formulário"
@@ -1613,11 +1650,11 @@ msgstr "Erro no formulário"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Existem erros para um ou mais campos de formulário"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Falha ao acessar"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Verifique sua entrada e tente novamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Envio de e-mail concluído"
@@ -1808,7 +1845,7 @@ msgstr "Servidor"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Salvar seleção de host"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Servidor"
@@ -1896,14 +1933,15 @@ msgstr "Versão da API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Extensões"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Selecione o pacote"
msgid "{0} icons"
msgstr "Ícones {0}"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Carregando"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nenhum resultado encontrado"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Item"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "entrada modelo de renderização é necessária para tabelas"
@@ -2060,7 +2107,7 @@ msgstr "Processando dados"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Ocorreu um erro"
@@ -2148,7 +2195,7 @@ msgstr "Dados importados com sucesso"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Fechar"
@@ -2182,8 +2229,8 @@ msgstr "Opções"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Ações de código de barras"
@@ -2298,7 +2345,7 @@ msgstr "Atualizando funções de grupo"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Atualizado"
@@ -2344,9 +2391,9 @@ msgstr "Nenhum item"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "O processo de fundo do \"worker\" não está em execução"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Configurações de Email"
@@ -2605,8 +2652,8 @@ msgstr "Saiba mais sobre {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notificações"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Configurações"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Configurações de usuário"
@@ -2671,8 +2718,8 @@ msgstr "Configurações de usuário"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Configurações do Sistema"
@@ -2684,8 +2731,8 @@ msgstr "Configurações do Sistema"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Centro de Administração"
@@ -2722,24 +2769,26 @@ msgstr "Sair"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Estoque"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Fabricantes"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Comprando"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Remover grupo de busca"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Anexos"
msgid "Notes"
msgstr "Anotações"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Data"
@@ -2950,7 +3004,7 @@ msgstr "Data"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Pacote"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Configurações da Extensão"
@@ -3090,8 +3143,8 @@ msgstr "Remessa"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inativo"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtual"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Sem Estoque"
@@ -3111,8 +3164,8 @@ msgstr "Sem Estoque"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "No pedido"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detalhes"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Categoria"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Categoria"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Localização"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Número de Série"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Quantidade"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Editar Peça"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Em Estoque"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Novo Pedido de Compra"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Pedido de compra criado"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Nova peça do fornecedor"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Peça do fornecedor criada"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Adicionar ao Pedido de Compra"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Parte adicionada a pedido de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Selecionar fornecedor da peça"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Copiar número da peça do fornecedor"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Nova peça de fornecedor"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Selecionar pedido"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Novo pedido de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Adicionar ao pedido de compra selecionado"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Nenhuma parte selecionada"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Peças Adicionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Uma parte do fornecedor é obrigatória"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "A quantidade é obrigatória"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Seleção de peça inválida"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Por favor, corrija os erros nas partes selecionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "Sobre o projeto InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Parte substituta"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Adicionar substituto"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Substituto adicionado"
@@ -4506,33 +4561,33 @@ msgstr "Substituto adicionado"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Saída da Produção"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Quantidade a completar"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Quantidade a completar"
msgid "Status"
msgstr "Estado"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Concluir Saídas de Produção"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Saídas de produção foram completadas"
@@ -4560,64 +4615,64 @@ msgstr "Saídas de produção foram completadas"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Sucatear Saídas de Produção"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Saídas de produção foram sucateadas"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Saídas de produção foram sucateadas"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Cancelar Saídas de Produção"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Saídas de produção foram canceladas"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr "Alocado"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Local de Origem"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Selecione o local de origem para alocação de estoque"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Selecione o local de origem para alocação de estoque"
msgid "Allocate Stock"
msgstr "Alocar Estoque"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Itens de estoque alocados"
@@ -4658,8 +4713,8 @@ msgstr "Itens de estoque alocados"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Receber notificações desta categoria"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Escolher local"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destino do item selecionado"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Localização padrão da categoria de peça selecionada"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Localização do estoque recebida selecionada"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Localização padrão selecionada"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Parte Virtual"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Definir Localização"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Definir código em Lote"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Definir Localização"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Definir código em Lote"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Definir data de validade"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Ajustar Pacotes"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Alterar Status"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Adicionar observação"
@@ -4812,22 +4867,22 @@ msgstr "Adicionar observação"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Armazenar no local padrão"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Armazenar com estoque já recebido"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Armazenar com estoque já recebido"
msgid "Batch Code"
msgstr "Código de Lote"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Digite o código do lote para itens de estoque recebidos"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Números de Série"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Digite o número de série para itens de estoque recebidos"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Data de Validade"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Insira uma data de expiração para os itens recebidos"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Embalagem"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Anotação"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Código (SKU)"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Código (SKU)"
msgid "Received"
msgstr "Recebido"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Excluir Itens de Linha"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Itens Recebidos"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Ítem recebido em estoque"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Remessa Completa"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Situação do Estoque"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Voltar"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
@@ -5229,7 +5284,7 @@ msgstr "Erro interno do servidor"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Desconectado"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Deslogado com sucesso"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Tema alterado"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "A redefinação falhou"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Já logado"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Há uma sessão conflitante no servidor para este navegador. Por favor, faça logout primeiro."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Logado"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Logado com sucesso"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Falha ao configurar autenticação de múltiplos fatores"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "Autenticação de múltiplos fatores configurada com sucesso"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Senha definida"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "A senha não pode ser alterada"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "As senhas são diferentes"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Senha alterada"
@@ -5351,38 +5406,10 @@ msgstr "Senha alterada"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Não implementado"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Esta função ainda não foi implementada"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-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:37
-msgid "Invalid Return Code"
-msgstr "Código de retorno inválido"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "O servidor retornou o estado {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Tempo esgotado"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "A solicitação excedeu o tempo"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Exportando Dados"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Ações de Estoque"
@@ -5811,73 +5838,73 @@ msgstr "Ocorreu um erro inesperado"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Erro no escaneamento"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Selecionar elementos não conhecidos"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Múltiplos tipos de objetos selecionados"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Ações ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Ações ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Escaneamento de Código de Barras"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Entrada de código de barras"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Ação"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Nenhum item selecionado"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} itens selecionados"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Itens Escaneados"
@@ -6593,7 +6620,7 @@ msgstr "Pontos"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Moeda"
@@ -6661,11 +6688,11 @@ msgstr "Ações Rápidas"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Início"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Usuários / Acesso"
@@ -6673,27 +6700,27 @@ msgstr "Usuários / Acesso"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Importador de dados"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Exportar dados"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Digitalizações de Código de Barras"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Tarefas de segundo plano"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Relatórios de Erro"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Moedas"
@@ -6701,11 +6728,11 @@ msgstr "Moedas"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Estados personalizados"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Unidades personalizadas"
@@ -6715,12 +6742,12 @@ msgstr "Unidades personalizadas"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Parâmetros de Categoria"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Tipo de Localização"
@@ -6728,35 +6755,35 @@ msgstr "Tipo de Localização"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Máquinas"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Operações"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Gerenciamento de Dados"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Relatórios"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Opções Avançadas"
@@ -6949,11 +6976,15 @@ msgstr "Tokens"
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Autenticação"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Códigos de barras"
@@ -6965,8 +6996,8 @@ msgstr "Códigos de barras"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Preços"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiquetas"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Rastreamento de Estoque"
@@ -6996,15 +7035,15 @@ msgstr "Rastreamento de Estoque"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Conta"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Segurança"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Opções de exibição"
@@ -7040,15 +7079,15 @@ msgstr "Marcar como não lido"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revisão"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Status Personalizado"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Status Personalizado"
msgid "External"
msgstr "Externo"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referência"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Produção Pai"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Quantidade de Produção"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Pode Produzir"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Saídas Completas"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Emitido por"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsável"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Qualquer local"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Local de Destino"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Qualquer local"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Criado"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Local de Destino"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Criado"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Data Prevista"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Concluído"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Detalhes da Produção"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Estoque Alocado"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Estoque Consumido"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Saídas Incompletas"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Pedido de Produção Filhos"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Resultados do teste"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Editar Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Adicionar Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Cancelar Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Pedido cancelado"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Cancelar este pedido"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Manter Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Colocar este pedido em espera"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Pedido colocado em espera"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Pedido de produção vencido"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Cancelar este pedido"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Problemas com o pedido"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Completar Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Marcar este pedido como completo"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Pedido concluído"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Emitir Pedido"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Completar Pedido"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Ações do Pedido de Produção"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Editar pedido"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplicar pedido"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Manter ordem"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Cancelar pedido"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Fabricante"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Link Externo"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Detalhes da Peça"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Adicionar Peça do Fornecedor"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Sem Estoque"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Informações do Usuário"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Categoria Pai"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Sub-categorias"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Local Padrão"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Categoria de peça de nível superior"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Editar Categoria da Peça"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Apagar items"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Excluir Categoria de Peça"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Ações da Peça"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Ação para peças nesta categoria"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Ação de Categorias Filhas"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Ação para categorias filhas desta categoria"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Ações de Categoria"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Detalhes da categoria"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Alocações de Pedido de Produção"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Alocações do Pedido de Vendas"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Validar LDM"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Deseja validar a lista de materiais desta montagem?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Validado Em"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Validado Por"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Validado Por"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variante de"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revisão"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Validado Por"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variante de"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revisão"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Local Padrão"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Localização padrão da categoria"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Unidades"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Palavras-chave"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Estoque Disponível"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "No pedido"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Necessário para Pedidos"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Alocado para Pedidos de Construção"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Alocado para Pedidos de Venda"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Estoque Mínimo"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Bloqueado"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Modelo de peça"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Peça Montada"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Parte do componente"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Parte Testável"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Peça Rastreável"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Parte comprável"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Parte vendível"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Criado em"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Criado por"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Validade Padrão"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "dias"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Faixa de Preço"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Último Número de Série"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Selecionar Revisão de Parte"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Variantes"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Alocações"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Lista de Materiais"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Último Número de Série"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Selecionar Revisão de Parte"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Variantes"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Alocações"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Lista de Materiais"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Usado em"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Preço de Peça"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Testar Modelos"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Peças Relacionadas"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Os parâmetros da peça não podem ser editados, pois a peça está bloqueada"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Obrigatório"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Os parâmetros da peça não podem ser editados, pois a peça está bloq
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Obrigatório"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Adicionar Parte"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Excluir Peça"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Excluir esta peça não é reversível"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Pedido"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Pedir estoque"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Ações da Peça"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Validar LDM"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Deseja validar a lista de materiais desta montagem?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Validado Em"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Validado Por"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Permitir variantes"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Herdado"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Opcional"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Consumível"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Preço Máximo"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Preço de Compra"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Localização Pai"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Sub-locais"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Tipo de Localização"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Local de estoque de alto nível"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Detalhes da localização"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Peças Padrão"
@@ -8768,86 +8915,86 @@ msgstr "Peças Padrão"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Editar Local de Estoque"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Excluir Local de Estoque"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Ação do Item"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Ação de itens de estoque neste local de estoque"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Ações de Localização"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Ação para localizações filhas deste local"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Ação para localizações filhas deste local"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Peça base"
@@ -8867,7 +9014,7 @@ msgstr "Peça base"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Próximo número de série"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Instalado em"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Consumido por"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Último Balanço"
@@ -8911,7 +9058,7 @@ msgstr "Último Balanço"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Detalhes do Estoque"
@@ -8919,15 +9066,15 @@ msgstr "Detalhes do Estoque"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Itens Instalados"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Itens Filhos"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Editar Item do Estoque"
@@ -8941,20 +9088,24 @@ msgstr "Editar Item do Estoque"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Excluir Item de Estoque"
@@ -8966,44 +9117,44 @@ msgstr "Excluir Item de Estoque"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Operações de Estoque"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Operações de Estoque"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Ações de Estoque"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Ações de Estoque"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Ações de Estoque"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr "Nenhum estoque disponível"
msgid "This stock item has been depleted"
msgstr "Este item de estoque foi esgotado"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Informação do Estoque"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Linhas Alocadas"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Selecionar Colunas"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtro"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filtros da Tabela"
@@ -9435,12 +9589,12 @@ msgstr "Adicionar Filtro"
msgid "Clear Filters"
msgstr "Limpar Filtros"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Nenhum registro encontrado"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "O servidor retornou um tipo de dado incorreto"
@@ -9477,7 +9631,7 @@ msgstr "O servidor retornou um tipo de dado incorreto"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Apagar itens selecionados"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
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:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Remover registros selecionados"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Atualizar dados"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Este item da BOM é definido para um pai diferente"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Informação da Peça"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Informação da Peça"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Estoque externo"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Incluir estoque de substitutos"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Incluir estoque de variantes"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Estoque externo"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Produzindo"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Incluir estoque de substitutos"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Incluir estoque de variantes"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Produzindo"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Produzindo"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Item Consumível"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Estoque não disponível"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Mostrar itens testáveis"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Mostrar itens rastreáveis"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Parte ativa"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Mostrar itens montados"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Mostrar itens com estoque disponível"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Mostrar itens no pedido"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validado"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Mostrar itens validados"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Herdado"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Mostrar itens herdados"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Permitir variantes"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Mostrar itens que permitem a substituição de variantes"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Opcional"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Mostrar itens opcionais"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Consumível"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Mostrar itens consumíveis"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Tem Preço"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Exibir itens com preço"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Importar Data BOM"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Adicionar Item BOM"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Item BOM criado"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Editar Item BOM"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Item BOM atualizado"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Deletar Item BOM"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Item BOM deletado"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Item da LDM validado"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Falha ao validar o item LDM"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Ver BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Validar Linha BOM"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Editar substitutos"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "A lista de materiais não pode ser editada, pois está bloqueada"
@@ -9966,18 +10108,6 @@ msgstr "Obtém herdados"
msgid "Unit Quantity"
msgstr "Quantidade Unitária"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr "Nenhum anexo encontrado"
msgid "Drag attachment file here to upload"
msgstr "Arraste o arquivo de anexo aqui para enviar"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Item"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Modelo"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Adicionar Modelo de Parâmetro"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Excluir Modelo de Parâmetro"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Edital Modelo de Parâmetro"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Caixa de seleção"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Mostrar modelos da caixa de seleção"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Tem escolhas"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Mostrar modelos com escolhas"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Possui unidades"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Mostrar modelos com unidades"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Tipo de Modelo"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr "Filtrar por status do item de linha"
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Receber Item"
diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po
index f69cc7a89f..95c3cac031 100644
--- a/src/frontend/src/locales/ro/messages.po
+++ b/src/frontend/src/locales/ro/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Eroare la redarea componentei"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "A apărut o eroare în timpul redării acestei componente. Consultați consola pentru mai multe informații."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Copiat"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Copiază"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicare"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Editare"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Șterge"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Anulează"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Acțiuni"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Caută"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Treceți"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nu"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nu"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Piesă"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Piese"
@@ -158,9 +184,9 @@ msgstr "Parametru"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametri"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Șabloane de Testare Parte"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Piesele Producătorului"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Categorie Piesă"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Categorii Piese"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Stochează Articol"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Stochează Articole"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Locația Stocului"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Locațiile Stocului"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Tipurile Locației Stocului"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Istoric Stoc"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Companii"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Cod Proiect"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Coduri Proiecte"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Comandă de achiziție"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Comandă de achiziție"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Linii Comenzi de Cumpărare"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Comandă de Vânzare"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Comenzi de Vânzare"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Returnează Comanda"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Returnează Comenzile"
@@ -442,12 +467,12 @@ msgstr "Contact"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Contacte"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Proprietar"
@@ -458,7 +483,7 @@ msgstr "Proprietari"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Utilizator"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Utilizatori"
@@ -486,7 +511,7 @@ msgstr "Grup"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Sablon eticheta"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Șabloane de etichetare"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Şablon de raport"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Şablon de raport"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Erroare"
msgid "Errors"
msgstr "Erroare"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Comenzi de Producție"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Eroare la redarea componentei"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "A apărut o eroare în timpul redării acestei componente. Consultați consola pentru mai multe informații."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Introduceți datele codului de bare"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Scanați codul de bare"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Codul de bare nu se potrivește cu tipul de model așteptat"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Succes"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Nu s-a reușit asocierea codului de bare"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Scanarea codului de bare a eșuat"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Nu s-a reușit asocierea codului de bare"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Asociază"
@@ -774,7 +824,7 @@ msgstr "Acest lucru va elimina asocierea către codul de bare asociat"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Dezasociază Codul de Bare"
@@ -786,14 +836,6 @@ msgstr "Deschide în Interfața Administrativă"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Copiat"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Copiază"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Tipărire Etichete"
@@ -930,7 +972,7 @@ msgstr "Luna viitoare"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Exportare date"
@@ -947,15 +989,15 @@ msgstr "Eroare la actualizarea comenzii"
msgid "Overdue"
msgstr "Restant"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Eroare la încărcarea widget-urilor din panoul de bord."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Nici un Widget selectat"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Utilizați meniul pentru a adăuga widget-uri la panoul de bord"
@@ -1288,15 +1330,15 @@ msgstr "E-mail: "
msgid "No name defined"
msgstr "Nici un nume definit"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Eliminați imagini"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Eliminați imaginea asociată de la acest articol?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Eliminați imaginea asociată de la acest articol?"
msgid "Remove"
msgstr "Șterge"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Faceți clic pentru a selecta fișierul(ele)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Imagine încărcată"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Imaginea a fost încărcată cu succes"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Eroare la Incarcare"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Sterge"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Aplică"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Selectați din imaginile existente"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Selectati Imaginea"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Descarcă imaginea de la distanță"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Încarcă imagine nouă"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Încărcare imagine"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Șterge imagine"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Descarcă imagine"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Imagine descărcată cu succes"
@@ -1418,23 +1460,23 @@ msgstr "Imagine descărcată cu succes"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Încărcarea imaginii a eșuat"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Imaginea a fost încărcată cu succes"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Note salvate cu succes"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Salvarea notei a eșuat"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Eroare la salvarea notelor"
@@ -1442,15 +1484,15 @@ msgstr "Eroare la salvarea notelor"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Salvează note"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Închide Editorul"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Activează editarea"
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Salvează selecția host"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "Versiune API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugin-uri"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stoc"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Producție"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Achiziţie"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr "Notițe"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Nici un stoc"
@@ -3111,8 +3164,8 @@ msgstr "Nici un stoc"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Locația sursei"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Selectaţi locaţia sursă pentru alocarea stocurilor"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Selectaţi locaţia sursă pentru alocarea stocurilor"
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Atribuie cod lot"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Atribuie cod lot"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr "Cod lot"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Introduceți codul lotului pentru articolele primite"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Parolă setată"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Parola a fost setată cu succes. Acum vă puteţi autentifica cu noua parolă"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Nu s-a putut modifica parola"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Cele două câmpuri de parolă nu se potrivesc"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Parolă schimbată"
@@ -5351,38 +5406,10 @@ msgstr "Parolă schimbată"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Versiunea"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Emis de"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Responsabil"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Versiune Din"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Versiune Din"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Stoc disponibil"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Selectați versiunea componentei"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Selectați versiunea componentei"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Indisponibil"
@@ -9116,27 +9275,22 @@ msgstr "Nu există stoc disponibil"
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Nu există stoc disponibil"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Arată articolele cu stocul disponibil"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po
index 78109deb26..1df6a6401e 100644
--- a/src/frontend/src/locales/ru/messages.po
+++ b/src/frontend/src/locales/ru/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Ошибка при отображении компонента"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Произошла ошибка при отрисовки этого компонента. Обратитесь к консоли для получения дополнительной информации."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Скопировано"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Копировать"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Дублировать"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Редактировать"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Удалить"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Отменить"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Действия"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Поиск"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Выбрать столбцы"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Пропустить"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Нет"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Нет"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Деталь"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Детали"
@@ -158,9 +184,9 @@ msgstr "Параметр"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Параметры"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Шаблоны тестов детали"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Детали производителей"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Категория детали"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Категории деталей"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Складская позиция"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Складские позиции"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Место хранения"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Места хранения"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Типы места хранения"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "История склада"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Компании"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Код проекта"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Коды проекта"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Заказ на закупку"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Заказы на закупку"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Позиции заказа на закупку"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Заказ на продажу"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Заказы на продажу"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Заказ на возврат"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Заказы на возврат"
@@ -442,12 +467,12 @@ msgstr "Контакт"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Контакты"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Владелец"
@@ -458,7 +483,7 @@ msgstr "Владельцы"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Пользователь"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Пользователи"
@@ -486,7 +511,7 @@ msgstr "Группа"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Шаблон этикетки"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Шаблоны этикеток"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Шаблон отчёта"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Шаблоны отчётов"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Ошибка"
msgid "Errors"
msgstr "Ошибки"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Администрирование пользователей"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Заказы на сборку"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Не реализовано"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Эта функция еще не реализована"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Доступ запрещён"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "У вас нет прав на выполнение данного действия"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Неверный код возврата"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Сервер вернул статус {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Таймаут"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Превышено время выполнения запроса"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "Не удалось выполнить процесс"
msgid "Process completed successfully"
msgstr "Процесс успешно завершён"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Ошибка при отображении компонента"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr "Введите данные штрихкода"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Сканировать штрихкод"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Штрихкод не соответствует ожидаемому типу модели"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Успешно"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Не удалось обработать штрихкод"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Ошибка сканирования штрихкода"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Не удалось привязать штрихкод"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Ссылка"
@@ -774,7 +824,7 @@ msgstr "Это удалит ссылку на связанный штрих-ко
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Отвязать штрихкод"
@@ -786,14 +836,6 @@ msgstr "Открыть в панели администратора"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Скопировано"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Копировать"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Печать этикеток"
@@ -930,7 +972,7 @@ msgstr "Следующий месяц"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "Экспорт данных"
@@ -947,15 +989,15 @@ msgstr "Ошибка обновления заказа"
msgid "Overdue"
msgstr "Просроченный"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Не удалось загрузить виджеты контрольной панели."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Виджеты не выбраны"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Используйте меню для добавления виджетов на панель"
@@ -1288,15 +1330,15 @@ msgstr "Электронная почта: "
msgid "No name defined"
msgstr "Имя не определено"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Убрать изображение"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Удалить связанное изображение?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Удалить связанное изображение?"
msgid "Remove"
msgstr "Удалить"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Нажмите, чтобы выбрать файл(ы)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Изображение загружено"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Изображение успешно загружено"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Ошибка загрузки"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Очистить"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Подтвердить"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Выбрать из существующих изображений"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Выбрать изображение"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Скачать изображение из удаленного источника"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Загрузить новое изображение"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Загрузить изображение"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Удалить изображение"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Скачать изображение"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Изображение успешно скачано"
@@ -1418,23 +1460,23 @@ msgstr "Изображение успешно скачано"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Не удалось загрузить изображение"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Изображение успешно загружено"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Заметка успешно сохранена"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Не удалось сохранить заметки"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Ошибка при сохранении заметок"
@@ -1442,15 +1484,15 @@ msgstr "Ошибка при сохранении заметок"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Сохранить заметки"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Закрыть редактор"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Разрешить редактирование"
@@ -1587,11 +1629,6 @@ msgstr "Страница не найдена"
msgid "This page does not exist"
msgstr "Данной страницы не существует"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Доступ запрещён"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "У вас нет прав для просмотра этой страницы."
@@ -1604,8 +1641,8 @@ msgstr "Ошибка сервера"
msgid "A server error occurred"
msgstr "Произошла ошибка сервера"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Ошибка формы"
@@ -1613,11 +1650,11 @@ msgstr "Ошибка формы"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Существуют ошибки для одного или нескольких полей формы"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Ошибка входа"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Проверьте введенные данные и повторите попытку."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Отправка почты прошла успешно"
@@ -1808,7 +1845,7 @@ msgstr "Узел"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Сохранить выбор хоста"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Сервер"
@@ -1896,14 +1933,15 @@ msgstr "Версия API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Плагины"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Выбрать набор"
msgid "{0} icons"
msgstr "{0} значков"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Загрузка"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Ничего не найдено"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Элемент"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "запись modelRenderer необходима для таблиц"
@@ -2060,7 +2107,7 @@ msgstr "Обработка данных"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Произошла ошибка"
@@ -2148,7 +2195,7 @@ msgstr "Данные успешно импортированы"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Закрыть"
@@ -2182,8 +2229,8 @@ msgstr "Опции"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Действия со штрихкодом"
@@ -2298,7 +2345,7 @@ msgstr "Обновление ролей группы"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Обновлено"
@@ -2344,9 +2391,9 @@ msgstr "Нет элементов"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Фоновый рабочий процесс не запущен"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Настройки Email"
@@ -2605,8 +2652,8 @@ msgstr "Подробнее о {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Уведомления"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Настройки"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Пользовательские настройки"
@@ -2671,8 +2718,8 @@ msgstr "Пользовательские настройки"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Системные настройки"
@@ -2684,8 +2731,8 @@ msgstr "Системные настройки"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Админ центр"
@@ -2722,24 +2769,26 @@ msgstr "Выход"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Склад"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Производство"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Закупки"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Удалить группу из поиска"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Вложения"
msgid "Notes"
msgstr "Заметки"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Плагин предоставлен"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Свернуть панели"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Развернуть панели"
@@ -2914,18 +2968,18 @@ msgstr "Информация о плагине"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Автор"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Дата"
@@ -2950,7 +3004,7 @@ msgstr "Дата"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Пакет"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Настройки плагинов"
@@ -3090,8 +3143,8 @@ msgstr "Отгрузка"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Неактивный"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Виртуальная"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Нет склада"
@@ -3111,8 +3164,8 @@ msgstr "Нет склада"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "В заказе"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Сведения"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Категория"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Категория"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Расположение"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Серийный номер"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Количество"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Далее"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Редактировать деталь"
@@ -3891,8 +3946,8 @@ msgstr "Требования продаж"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "На складе"
msgid "Required Quantity"
msgstr "Требуемое количество"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Создать заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Заказ на закупку создан"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Создать деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Деталь поставщика создана"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Добавить в заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Детали добавлены в заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "Выберите деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "Скопировать номер детали поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Создать деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "Выберите заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Создать заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Добавить в выбранный заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Не выбраны детали"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Не выбраны детали, которые можно закупить"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Детали добавлены"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Все выбранные детали добавлены в заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Необходимо выбрать хотя бы одну деталь для закупки"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Необходимо указать деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Необходимо указать количество"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Неправильный выбор деталей"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Исправьте ошибки в выбранных деталях"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "О проекте InvenTree"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "Детали для замены"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "Редактировать варианты замены позиции спецификации"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "Создать замену"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "Замена создана"
@@ -4506,33 +4561,33 @@ msgstr "Замена создана"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Продукция"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "Количество для завершения"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "Количество для завершения"
msgid "Status"
msgstr "Статус"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Завершить производство"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Производство завершено"
@@ -4560,64 +4615,64 @@ msgstr "Производство завершено"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "Количество для списания"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Списать Продукцию"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "Выбранная продукция будет завершена, но помечена списанной"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "Зарезервированные складские позиции будут израсходованы"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Продукция списана"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Продукция списана"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Отменить продукцию"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "Выбранная продукция будет удалена"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "Зарезервированные складские позиции будут возвращены на склад"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Производство отменено"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "Внутренний артикул"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "Внутренний артикул"
msgid "Allocated"
msgstr "Зарезервировано"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Место хранения комплектующих"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Выберите исходное расположение для распределения запасов"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Выберите исходное расположение для рас
msgid "Allocate Stock"
msgstr "Зарезервировать остатки"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Запасы назначены"
@@ -4658,8 +4713,8 @@ msgstr "Запасы назначены"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "Израсходовать запасы"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "Полностью израсходовано"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Израсходовано"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "Выберите код проекта для этой позиции"
@@ -4698,7 +4753,7 @@ msgstr "Выберите код проекта для этой позиции"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Подписаться на уведомления для этой ка
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Выберите место хранения"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Пункт назначения товара выбран"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Выбрано расположение категории по умолчанию"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Выбрано место получения запасов"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Выбрано местоположение по умолчанию"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Виртуальная деталь"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Задать место хранения"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Назначить код партии"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Задать место хранения"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Назначить код партии"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "Назначить серийный номер"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Задать срок годности"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Настройка упаковки"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Изменить статус"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Добавить заметку"
@@ -4812,22 +4867,22 @@ msgstr "Добавить заметку"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Использовать место хранения по умолчанию"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Использовать место хранения позиции заказа "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Использовать место хранения уже полученных запасов"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Использовать место хранения уже получе
msgid "Batch Code"
msgstr "Код партии"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Введите код партии для полученных запасов"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Серийные номера"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Введите серийные номера для полученных запасов"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Срок годности"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "Введите дату истечения срока годности полученных элементов"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Упаковка"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Заметка"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Артикул поставщика"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Артикул поставщика"
msgid "Received"
msgstr "Получено"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Получить позиции"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "Элементы получены"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Товар получен на складе"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr "Цена на основе детали и количества отличается{0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "Проверить отправку"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "Отметка отправления как проверенного означает, что вы проверили корректность всех предметов, включённых в эту отправку"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "Отправление отмечено как проверенное"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "Снять отметку проверки с отправки"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "Отметка отправления как непроверенного означает, что требуется дополнительная проверка"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "Отправление отмечено как непроверенное"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Завершить отправку"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "Оставьте поле пустым, чтобы использовать адрес заказа"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Состояние складской позиции"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Возврат"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Количество"
@@ -5229,7 +5284,7 @@ msgstr "Внутренняя ошибка сервера"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Выход"
@@ -5257,81 +5312,81 @@ msgstr "Успешный вход с помощью МФА"
msgid "MFA details were automatically provided in the browser"
msgstr "Данные МФА автоматически переданы в браузер"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Успешный выход из системы"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "Язык изменён"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "Язык изменён на заданный в вашем профиле"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Тема изменена"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Тема интерфейса изменена на заданную в профиле"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Сброс не удался"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Вход уже выполнен"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "На сервере есть конфликтующие сессии для данного браузера. Пожалуйста, выйдите из системы."
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Войти в систему"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Вход выполнен успешно"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "Не удалось настроить МФА"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "Многофакторная аутентификация настроена успешно"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "Многофакторная аутентификация через TOTP настроена успешно; вам нужно авторизоваться повторно."
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Пароль установлен"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Пароль был установлен успешно. Теперь вы можете войти в систему с новым паролем"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Пароль не может быть изменён"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "Пароли не совпадают"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Пароль изменен"
@@ -5351,38 +5406,10 @@ msgstr "Пароль изменен"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Не реализовано"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Эта функция еще не реализована"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "У вас нет прав на выполнение данного действия"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Неверный код возврата"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Сервер вернул статус {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Таймаут"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Превышено время выполнения запроса"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Экспортирование данных"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "Удалить выбранные складские позиции"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Действия со складом"
@@ -5811,73 +5838,73 @@ msgstr "Произошла неожиданная ошибка"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Элемент уже отсканирован"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "Ошибка API"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Не удалось получить данные"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Ошибка сканирования"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Выбранные элементы не известны"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Выбрано несколько типов объектов"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Действия ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Действия ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Сканирование штрихкодов"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Ввод штрихкода"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Действие"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Объекты не выбраны"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Отсканируйте и выберите объекты для выполнения действий"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Отсканируйте и выберите объекты для выполнения действий"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "Выбрано объектов: {0}"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Отсканированные объекты"
@@ -6593,7 +6620,7 @@ msgstr "Точки"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Валюта"
@@ -6661,11 +6688,11 @@ msgstr "Быстрые действия"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Главная"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "Пользователи / доступ"
@@ -6673,27 +6700,27 @@ msgstr "Пользователи / доступ"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Импорт данных"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "Экспорт данных"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Сканирование штрихкодов"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Фоновые задачи"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Отчёты об ошибках"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Курсы валют"
@@ -6701,11 +6728,11 @@ msgstr "Курсы валют"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Пользовательские состояния"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Единицы измерения"
@@ -6715,12 +6742,12 @@ msgstr "Единицы измерения"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Параметры категории"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Типы мест хранения"
@@ -6728,35 +6755,35 @@ msgstr "Типы мест хранения"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Оборудование"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Действия"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Управление данными"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Отчёты"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "Расширения / интеграции"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Расширенные настройки"
@@ -6949,11 +6976,15 @@ msgstr "Токены"
msgid "The settings below are specific to each available plugin"
msgstr "Настройки ниже специфичны для каждого доступного плагина"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Аутентификация"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Штрих-коды"
@@ -6965,8 +6996,8 @@ msgstr "Штрих-коды"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "Настройки ниже специфичны для каждого доступного метода уведомлений"
@@ -6974,21 +7005,29 @@ msgstr "Настройки ниже специфичны для каждого
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Цены"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Метки"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Движение остатков"
@@ -6996,15 +7035,15 @@ msgstr "Движение остатков"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Аккаунт"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Безопасность"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Параметры отображения"
@@ -7040,15 +7079,15 @@ msgstr "Пометить как непрочитанное"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "Детали не требуются"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "Для заказа на сборку не требуется никаких деталей."
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "У собираемой детали возможно не задана спецификация, или спецификация пустая."
@@ -7056,6 +7095,18 @@ msgstr "У собираемой детали возможно не задана
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "Спецификация не утверждена"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "У собираемой детали возможно не задана
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Ревизия"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Пользовательский статус"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Пользовательский статус"
msgid "External"
msgstr "Сторонний"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Ссылка"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Родительский заказ"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Количество производимых деталей"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Можно произвести"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Завершённая продукция"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Создал"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Ответственный"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Любое расположение"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Место назначения"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Любое расположение"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Создано"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Место назначения"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Создано"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Начальная дата"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Целевая дата"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Завершено"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Сведения о заказе"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "Необходимые детали"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Зарезервированные остатки"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Израсходованные остатки"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Незавершённая продукция"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "Сторонние заказы"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Дочерние заказы на сборку"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Результаты тестов"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Редактировать заказ на производство"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Создать заказ на сборку"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Отменить заказ для производства"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Заказ отменён"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Отменить заказ"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Отложить заказ на сборку"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Отложите этот заказ"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Заказ отложен"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Оформить заказ на сборку"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Оформить данный заказ"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Заказ оформлен"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Завершить заказ на сборку"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Отметить данный заказ как завершённый"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Заказ завершён"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Оформить заказ"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Завершить заказ"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Действия с заказом на сборку"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Редактировать заказ"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Дублировать заказ"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Отложить заказ"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Отменить заказ"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "Показать сторонние заказы на сборку"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "Показать сторонние заказы на сборку"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "В виде таблицы"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "В виде календаря"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "В виде календаря"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "Параметрическое представление"
@@ -7470,7 +7522,7 @@ msgstr "Производитель"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Внешняя ссылка"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Сведения о детали"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Создать деталь поставщика"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Нет на складе"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Роли группы"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "Информация о пользователе"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Родительская категория"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Подкатегории"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Место хранения по-умолчанию"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Категория детали верхнего уровня"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Редактировать категорию деталей"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Перенести элементы в родительскую категорию"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Удалить товар"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Удалить категорию деталей"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Действие с деталями"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Что делать с деталями этой категории"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Действие с дочерними категориями"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Что делать с дочерними категориями этой категории"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Действия с категорией"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Сведения о категории"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Резервирование в заказах на сборку"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Резервирование в заказах на продажу"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Утвердить спецификацию"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Вы хотите утвердить спецификацию для данной сборочной детали?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "Спецификация утверждена"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "Спецификация этой детали утверждена"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "Спецификация не утверждена"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "Спецификация для этой детали ранее была проверена, но требует повторной проверки"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "Спецификация для этой детали не утверждена"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Дата утверждения"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Утвердил"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Утвердил"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Разновидность детали"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Ревизия"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Утвердил"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Разновидность детали"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Ревизия"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Расположение по умолчанию"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Размещение категории по умолчанию"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Единица измерения"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Ключевые слова"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Доступно"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "В заказе"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Требуется для заказов"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Зарезервировано в заказах на сборку"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Зарезервировано в заказах на продажу"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Минимальный запас"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Заблокировано"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Шаблон детали"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Сборная деталь"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Компонент для сборки"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Тестируемая деталь"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Отслеживаемая деталь"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Можно закупать"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Можно продавать"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Дата создания"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Создал"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Срок годности по умолчанию"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "дней"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Ценовой диапазон"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Последний серийный номер"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Выберите ревизию детали"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Разновидности"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Резервирование"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Спецификация"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Последний серийный номер"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Выберите ревизию детали"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Разновидности"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Резервирование"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Спецификация"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Используется в"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Цены на деталь"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Шаблоны тестов"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Связанные детали"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Деталь заблокирована"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Параметры детали нельзя редактировать, поскольку деталь заблокирована"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Требуется"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "Дефицит"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Параметры детали нельзя редактировать,
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Требуется"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "Дефицит"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Создать деталь"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Удалить деталь"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Удаление этой детали нельзя отменить"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Закупить"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Закупить на склад"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Поиск по серийному номеру"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Действия с деталью"
@@ -8172,7 +8177,7 @@ msgstr "Количество на складе"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Стоимость склада"
@@ -8205,10 +8210,152 @@ msgstr "Записи инвентаризации"
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Утвердить спецификацию"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Вы хотите утвердить спецификацию для данной сборочной детали?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "Спецификация утверждена"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "Спецификация этой детали утверждена"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "Спецификация для этой детали ранее была проверена, но требует повторной проверки"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "Спецификация для этой детали не утверждена"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Дата утверждения"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Утвердил"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Разрешить разновидности"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Унаследовано"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Необязательно"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Расходник"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "Количество для настройки"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "Потери"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "Кратность округления"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Максимальная цена"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Закупочные цены"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Дата оформления"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "Не проверено"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Родительское местоположение"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Дочерние местоположения"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Тип места хранения"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Место хранения верхнего уровня"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Сведения о месте"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Детали по умолчанию"
@@ -8768,86 +8915,86 @@ msgstr "Детали по умолчанию"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Редактировать место хранения"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Переместить элементы в родительское местоположение"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Удалить место хранения"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Действия с элементами"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Действия для складских элементов в этом месте"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Действия с местом хранения"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Действия для дочерних местоположений в этом месте"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Действия для дочерних местоположений в этом месте"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "Сканировать складской элемент"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "Сканированный элемент помещён в местоположение"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "Ошибка при сканировании складского элемента"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "Сканировать место хранения"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "Сканированное место хранения помещено в местоположение"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "Ошибка при сканировании места хранения"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Базовая деталь"
@@ -8867,7 +9014,7 @@ msgstr "Базовая деталь"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "Предыдущий серийный номер"
@@ -8875,35 +9022,35 @@ msgstr "Предыдущий серийный номер"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "Поиск по серийному номеру"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Следующий серийный номер"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Зарезервировано в заказах"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Установлено в"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Родительский элемент"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Запас-родитель"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Израсходовано для"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Последняя инвентаризация"
@@ -8911,7 +9058,7 @@ msgstr "Последняя инвентаризация"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Сведения о складе"
@@ -8919,15 +9066,15 @@ msgstr "Сведения о складе"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Установленные элементы"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Дочерние элементы"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Редактировать складскую позицию"
@@ -8941,20 +9088,24 @@ msgstr "Редактировать складскую позицию"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "Созданные элементы"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "Создано {n} складских позиций"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Удалить складскую позицию"
@@ -8966,44 +9117,44 @@ msgstr "Удалить складскую позицию"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Присвоить запасу серийный номер"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Присвоить запасу серийный номер"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Запасу присвоен серийный номер"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "Сканировать в местоположение"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "Сканировать в местоположение"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "Отсканируйте этот элемент для помещения в местоположение"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Действия со складом"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "Сканировать в местоположение"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "Отсканируйте этот элемент для помещения в местоположение"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Действия со складом"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Сериализовать"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Сериализовать запас"
@@ -9011,14 +9162,22 @@ msgstr "Сериализовать запас"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Действия со складским элементом"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Действия со складским элементом"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Действия со складским элементом"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Залежалый"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Просрочен"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Недоступно"
@@ -9116,27 +9275,22 @@ msgstr "Нет на складе"
msgid "This stock item has been depleted"
msgstr "Этот складской элемент был израсходован"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Информация о складе"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Зарезервированные позиции"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Выбрать столбцы"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Отфильтровать"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Фильтр таблицы"
@@ -9435,12 +9589,12 @@ msgstr "Добавить фильтр"
msgid "Clear Filters"
msgstr "Очистить фильтр"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Записи не найдены"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "Ошибка загрузки параметров таблицы"
@@ -9468,7 +9622,7 @@ msgstr "Ошибка загрузки параметров таблицы"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Сервер вернул неверный тип данных"
@@ -9477,7 +9631,7 @@ msgstr "Сервер вернул неверный тип данных"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "Ошибка загрузки данных таблицы"
@@ -9494,49 +9648,49 @@ msgstr "Ошибка загрузки данных таблицы"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Показать сведения"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "Просмотреть {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Удалить выбранные элементы"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Вы уверены, что хотите удалить выбранные элементы?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Это действие нельзя будет отменить"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Элементы удалены"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Не удалось удалить элементы"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Используется пользовательский фильтр таблицы"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Удалить выбранные записи"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Обновить данные"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Активные фильтры"
@@ -9548,71 +9702,66 @@ msgstr "Активные фильтры"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Эта позиция в спецификации унаследована от родительской детали"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Информация о детали"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "Эта позиция в спецификации не утверждена"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Информация о детали"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "Замены"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Виртуальная деталь"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "Сторонний склад"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Включает запас заменителей"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Сборка"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Включает запас заменителей"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Включает запас вариантов"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Сборка"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Сборка"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Расходный материал"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Нет на складе"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Показать тестируемые элементы"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Показать отслеживаемые позиции"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Активная деталь"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr "Показать активные"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Показать сборные детали"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "Показать виртуальные элементы"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Показать элементы, которые есть в наличии на складе"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Показать элементы, которые находятся в заказе"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Утверждено"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Показать утверждённые элементы"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Унаследовано"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Показать элементы, которые унаследованы"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Разрешить разновидности"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Показать элементы, в которых разрешено использовать разновидности для замены"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Необязательно"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Показать необязательные элементы"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Расходник"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Показать элементы, которые являются расходниками"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Есть цена"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Показать позиции с ценой"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Импортировать данные спецификации"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Создать позицию в спецификации"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Создана позиция в спецификации"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Редактировать позицию спецификации"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Позиция в спецификации обновлена"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Удалить позицию в спецификации"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Позиция в спецификации удалена"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Позиция в спецификации утверждена"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "При утверждении позиции в спецификации произошла ошибка"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Показать спецификацию"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Утвердить позицию в спецификации"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Редактировать варианты замены"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "Добавить позиции спецификации"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "Добавить одну позицию спецификации"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Импорт из файла"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "Импорт спецификации из файла"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Невозможно отредактировать спецификацию, поскольку деталь заблокирована"
@@ -9966,18 +10108,6 @@ msgstr "Наследуется"
msgid "Unit Quantity"
msgstr "Количество единиц"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "Количество для настройки"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "Потери"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "Кратность округления"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "Информация о спецификации"
@@ -10361,10 +10491,6 @@ msgstr "Вложений не найдено"
msgid "Drag attachment file here to upload"
msgstr "Перетащите файл для загрузки"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Элемент"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Модель"
@@ -10456,59 +10582,59 @@ msgstr "Создайте новый параметр"
msgid "Import parameters from a file"
msgstr "Импортировать параметры из файла"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Создать шаблон параметра"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "Дублировать шаблон параметра"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Удалить шаблон параметра"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Редактировать шаблон параметра"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Чекбокс"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Показать шаблоны-переключатели"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Есть варианты"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Показать шаблоны с вариантами"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Имеет единицу измерения"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Показать шаблоны с единицами измерения"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "Показывать включённые шаблоны"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Тип модели"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "Фильтровать по типу модели"
@@ -11623,7 +11749,7 @@ msgstr "Фильтр по статусу строки"
msgid "Receive selected items"
msgstr "Получить выбранные элементы"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Принять элемент"
diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po
index f7cef7a7b0..391a5d9c48 100644
--- a/src/frontend/src/locales/sk/messages.po
+++ b/src/frontend/src/locales/sk/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po
index c13fdcb7e3..48a5ff8f1e 100644
--- a/src/frontend/src/locales/sl/messages.po
+++ b/src/frontend/src/locales/sl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopirano"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopiraj"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Podvojeni"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Uredi"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Izbriši"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Prekliči"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Dejanja"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Išči"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Uspešno"
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Del"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Deli"
@@ -158,9 +184,9 @@ msgstr "Parameter"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametri"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Napaka"
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr "Odpri v nadzorni plošči"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopirano"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopiraj"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po
index fa67b7288d..7913904749 100644
--- a/src/frontend/src/locales/sr/messages.po
+++ b/src/frontend/src/locales/sr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Greška u renderovanju komponente"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Desila se greška prilikom renderovanja ovde komponente. Pogledajte konzolu za više informacija"
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Iskopirano"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopiraj"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Dupliciraj"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Izmeni"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Obriši"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Poništi"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Akcije"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Pretraga"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Izaberi kolone"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Prosledi"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Ne"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Ne"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Deo"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Delovi"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametri"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Šabloni testiranja dela"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Delovi proizvođača"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Kategorija delova"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Kategorije delova"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Stavka zalihe"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Stavke zaliha"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lokacija zaliha"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lokacije zaliha"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Tipovi lokacija zaliha"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Istorija zaliha"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Kompanije"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Kod projketa"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Kodovi projekta"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Narudžbenica"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Narudžbenice"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Linije narudžbenica"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Nalog za prodaju"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Naloti za prodaju"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Nalog za povrat"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Nalozi za povrat"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakti"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Vlasnik"
@@ -458,7 +483,7 @@ msgstr "Vlasnici"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Korisnik"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Korisnici"
@@ -486,7 +511,7 @@ msgstr "Grupa"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Šablon za naziv"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Šabloni za nazive"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Šablon za izveštaj"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Šabloni za izveštaje"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Grеška"
msgid "Errors"
msgstr "Greške"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Nalozi za izradu"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Nije implementirano"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Ovo svojstvo još nije implementirano"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Dozvola odbijena"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Nemate ovlašćenje za ovu aktivnost"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Neispravan povratni kod"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Server je vratio status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Isteklo je vreme"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "Isteklo je vreme zahteva"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Greška u renderovanju komponente"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Desila se greška prilikom renderovanja ovde komponente. Pogledajte konzolu za više informacija"
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Unesi podatke bar koda"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Skeniraj barkod"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Uspešno"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Greška pri skeniranju bar koda"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Greška pri povezivanju bar koda"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Linkuj"
@@ -774,7 +824,7 @@ msgstr "Ovo će ukloniti link sa povezanim barkodom"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Prekini vezu Barkoda"
@@ -786,14 +836,6 @@ msgstr "Otvori u administratorskom interfejsu"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Iskopirano"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopiraj"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr "Kasni"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Nijedan vidžet nije selektovan"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Koristi meni da bi dodao vidžete na tablu"
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr "Nije definisano ime"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Ukloni sliku"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Ukloniti sliku sa ovog predmeta?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Ukloniti sliku sa ovog predmeta?"
msgid "Remove"
msgstr "Ukloni"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klikni za odabir fajlova"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Slika dodata"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Slika je uspešno dodata"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Greška prilikom dodavanja"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Obriši"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Podnesi"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Izaberi od postojećih slika"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Izaberi sliku"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Preuzmi sliku sa druge lokacije"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Učitaj novu sliku"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Učitaj sliku"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Obriši sliku"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Preuzmi sliku"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Slika preuzeta uspešno"
@@ -1418,23 +1460,23 @@ msgstr "Slika preuzeta uspešno"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Učitavanje slike nije uspelo"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Slika je učitana uspešno"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Beleške sačuvane uspešno"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Beleške nisu sačuvane"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Greška prilikom čuvanja beleški"
@@ -1442,15 +1484,15 @@ msgstr "Greška prilikom čuvanja beleški"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Sačuvaj beleške"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Zatvori prozor za izmene"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Omogući izmene"
@@ -1587,11 +1629,6 @@ msgstr "Stranica nije nađena"
msgid "This page does not exist"
msgstr "Tražena stranica ne postoji"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Dozvola odbijena"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Nemate dozvolu da pristupite traženoj stranici"
@@ -1604,8 +1641,8 @@ msgstr "Greška na serveru"
msgid "A server error occurred"
msgstr "Desila se greška na serverskoj strani"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Greška Obrasca"
@@ -1613,11 +1650,11 @@ msgstr "Greška Obrasca"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Postoje greške na jednom ili više polja na obrascu"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Neuspešna prijava"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Proverite svoj unos i pokušajte ponovno."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Isporuka pošte uspešna"
@@ -1808,7 +1845,7 @@ msgstr "Host"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API Verzija"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Ekstenzije"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Izaberi pakovanje"
msgid "{0} icons"
msgstr "{0} ikone"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Učitavanje"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Nema pronađenih rezultata"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Stavka"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Generator potreban za tabele"
@@ -2060,7 +2107,7 @@ msgstr "Obrađivanje podataka"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Desila se greška"
@@ -2148,7 +2195,7 @@ msgstr "Podaci su učitani uspešno"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Zatvori"
@@ -2182,8 +2229,8 @@ msgstr "Opcije"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Akcije Barkoda"
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Ažurirano"
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Podešavanje e-pošte"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Obaveštenja"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Podešavanje"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Korisnička podešavanja"
@@ -2671,8 +2718,8 @@ msgstr "Korisnička podešavanja"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Sistemska podešavanja"
@@ -2684,8 +2731,8 @@ msgstr "Sistemska podešavanja"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Administratorski centar"
@@ -2722,24 +2769,26 @@ msgstr "Odjavljivanje"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Zalihe"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Proizvodnja"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Kupovina"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Prilozi"
msgid "Notes"
msgstr "Beleške"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr "Informacije o ekstenziji"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Autor"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Datum"
@@ -2950,7 +3004,7 @@ msgstr "Datum"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paket"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Podešavanje ekstenzija"
@@ -3090,8 +3143,8 @@ msgstr "Pošiljka"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Neaktivno"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtualan"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Nema zalihe"
@@ -3111,8 +3164,8 @@ msgstr "Nema zalihe"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "Na nalogu"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detalji"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategorija"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategorija"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Lokacija"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Serijski broj"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Količina"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Izmeni deo"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "U zalihama"
msgid "Required Quantity"
msgstr "Potrebna količina"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Novi nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Kreiran nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "Novi deo dobavljača"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Deo dobavljača kreiran"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "Dodaj u nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "Deo dodat u nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "Novi deo dobavljača"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "Novi nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "Dodaj u izabrani nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Nema izabranih delova"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "Nema izabranih delova koji se mogu kupiti"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Delovi dodati"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Svi izabrani delovi su dodati nalogu za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Morate izabrati bar jedan deo za naručivanje"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "Deo dobavljača je neophodan"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "Količina je neophodna"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "Nevažeći izbor dela"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "Molimo ispravite greške u izabranim delovima"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "O InvenTree Projektu"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Izlazna kompilacija"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Kompletiraj izlaznu kompilaciju"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Izlazne kompilacije kompletirane"
@@ -4560,64 +4615,64 @@ msgstr "Izlazne kompilacije kompletirane"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Izbrišii izlaznu kompilaciju"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Izlazna kompilacija izbriši"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Izlazna kompilacija izbriši"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Poništi izlazne kompilacije"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Izlazne kompilacije poništene"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "Identifikacioni broj dela"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "Identifikacioni broj dela"
msgid "Allocated"
msgstr "Alocirano"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Lokacija izvora"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Izaberi lokaciju izvora radi alokacije zaliha"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Izaberi lokaciju izvora radi alokacije zaliha"
msgid "Allocate Stock"
msgstr "Alociraj zalihe"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Stavke zaliha alocirane"
@@ -4658,8 +4713,8 @@ msgstr "Stavke zaliha alocirane"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Iskorišćeno"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "Pretplati se za obaveštenja za ovu kategoriju"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Izaberi lokaciju"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Destinacije stavke odabrana"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Podrazmevana lokacija kategorije dela izabrana"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Primljena lokacija zaliha selektovana"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Podrazumevana lokacija izabrana"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtualni deo"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Podesi lokaciju"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Dodeli kod serije"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Podesi lokaciju"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Dodeli kod serije"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Doradi pakovanje"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Promeni status"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Dodaj belešku"
@@ -4812,22 +4867,22 @@ msgstr "Dodaj belešku"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Prodavnica na podrazumevanoj lokaciji"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Prodavnica sa već primeljenom zalihom"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Prodavnica sa već primeljenom zalihom"
msgid "Batch Code"
msgstr "Kod serije"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Unesi kod serije za primljene stavke"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Serijski brojevi"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "Unesi serijske brojeve za primljene stavke"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Datum isteka"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Pakovanje"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Beleška"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Jedinica za praćenje zaliha"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Jedinica za praćenje zaliha"
msgid "Received"
msgstr "Primljeno"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Primi linijske stavke"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Stavka primljena u zalihe"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Završi isporuku"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Status zalihe"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Vrati"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Računaj"
@@ -5229,7 +5284,7 @@ msgstr "Interna serverska greška"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Odjavljen"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Uspešno ste odjavljeni"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Proverite u primljenoj pošti da li imate link za resetovanje. Proverite i u spamu"
-#: src/functions/auth.tsx:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Resetovanje neuspešno"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Ulogovani ste"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Uspešno ste se ulogovali"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Lozinka podešena"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Lozinka je uspešno podešena. Sada se možete prijaviti sa novom lozinkom"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "Lozinku nije bilo moguće promeniti"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Lozinka promenjena"
@@ -5351,38 +5406,10 @@ msgstr "Lozinka promenjena"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Nije implementirano"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Ovo svojstvo još nije implementirano"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Nemate ovlašćenje za ovu aktivnost"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Neispravan povratni kod"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Server je vratio status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Isteklo je vreme"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "Isteklo je vreme zahteva"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Akcije zaliha"
@@ -5811,73 +5838,73 @@ msgstr "Desila se greška"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "Stavka već skenirana"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API greška"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "Greška pri prikupljanju podataka instance"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "Greška skeniranja"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Izabrani elementi nisu poznati"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Višestruki tipovi selektovani"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "Skeniranje barkoda"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "Unos bar kodom"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Akcija"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "Nema izabranih stavki"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "Skeniraj i izaberi stavke za akcije"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "Skeniraj i izaberi stavke za akcije"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} stavki selektovano"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "Skenirane stavke"
@@ -6593,7 +6620,7 @@ msgstr "Tačkasto"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuta"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Importovanje podatka"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Skeniranja barkodova"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Pozadinski zadaci "
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Izveštaji o greškama"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Valute"
@@ -6701,11 +6728,11 @@ msgstr "Valute"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Posebne države"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Posebne jedinice"
@@ -6715,12 +6742,12 @@ msgstr "Posebne jedinice"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Kategorije parametara"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Tipovi lokacija"
@@ -6728,35 +6755,35 @@ msgstr "Tipovi lokacija"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Mašine"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Izveštavanje"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Napredne opcije"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Barkodovi"
@@ -6965,8 +6996,8 @@ msgstr "Barkodovi"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Cene"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Oznake"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Praćenje zaliha"
@@ -6996,15 +7035,15 @@ msgstr "Praćenje zaliha"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Nalog"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Bezbednost"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Prikaži opcije"
@@ -7040,15 +7079,15 @@ msgstr "Označi kao nepročitano"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revizija"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Prilagođeni status"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Prilagođeni status"
msgid "External"
msgstr "Spoljno"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referenca"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Nadređeni nalog"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Količina naloga"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Može da se sastavi"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Završeni nalozi"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Izdat od strane"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Odgovoran"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Bilo koja lokacija"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Destinaciona lokacija"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Bilo koja lokacija"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Kreirano"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Destinaciona lokacija"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Kreirano"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Ciljani datum"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Završeno"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Detalji naloga"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Alocirano zaliha"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Potrošeno zaliha"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Nepotpuni nalozi"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Pod-nalozi za izradu"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Rezultati testa"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Izmeni nalog za izradu"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Dodaj nalog za izradu"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Otkaži nalog za izradu"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Nalog otkazan"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Otkaži ovaj nalog"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Zadrži nalog za izradu"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Stavi ovaj nalog na čekanje"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Nalog stavljen na čekanje"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Izdaj nalog za izradu"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Izdaj ovaj nalog"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Nalog izdat"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Završi nalog za izradu"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Označi ovaj nalog kao završen"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Nalog završen"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Izdaj nalog"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Završi nalog"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Akcije naloga za izradu"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Izmeni nalog"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Dupliraj nalog"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Zadrži nalog"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Otkaži nalog"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Proizvođač"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Spoljni link"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Detalji dela"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Dodaj deo dobavljača"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Nema zaliha"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Nadređena kategorija"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Podkategorije"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Podrazumevana lokacija"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Vrhovna kategorija dela"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Izmeni kategoriju dela"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "Premesti stavke u nadređenu kategoriju"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Obriši stavke"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Obriši kategoriju dela"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Akcije delova"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Akcije za delove unutar ove kategorije"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Akcije podkategorije"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Akcije za podkategorije ove kategorije"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Akcije kategorije"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Detalji kategorije"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Dodela naloga za izradu"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Dodela prodajnih naloga"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Validiraj spisak materijala"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Da li želite da validirate spisak materijala za ovaj sklop?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Varijanta od"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Revizija od"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Varijanta od"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Revizija od"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Podrazumevana lokacija"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Podrazumevana lokacija kategorije"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Merne jedinice"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Ključne reči"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Dostupne zalihe"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Na nalogu"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Potrebno za naloge"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Dodeljeno nalozima za izradu"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Dodeljeno prodajnim nalozima"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimum zaliha"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Zaključano"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Šablonski de"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Sastavljeni deo"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Komponenta"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Deo može da se testira"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Deo može da se prati"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Deo može da se kupi"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Deo može da se proda"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Datum kreiranja"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Kreirano od strane"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Raspon cena"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Najnoviji serijski broj"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Izaberite reviziju dela"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varijante"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Alokacije"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Spisak materijala"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Najnoviji serijski broj"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Izaberite reviziju dela"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varijante"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Alokacije"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Spisak materijala"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Korišćeno u"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Cena dela"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Test šabloni"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Povezani delovi"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Deo je zaključan"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Parametri dela ne mogu da se izmene, deo je zaključan"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Neophodno"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Parametri dela ne mogu da se izmene, deo je zaključan"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Neophodno"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Dodaj deo"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Obriši deo"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Brisanje ovog dela se ne može poništiti"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Nalog"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Naruči zalihe"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Akcije dela"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Vrednost zaliha"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Validiraj spisak materijala"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Da li želite da validirate spisak materijala za ovaj sklop?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Dozvoli varijante"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Nasleđeno"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Opciono"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Potrošno"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maksimalna cena"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Cena nabavke"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "Datum izdavanja"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Nadređena lokacija"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Podlokacije"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Tip lokacije"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Lokacija zaliha najvišeg nivoa"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Detalji lokacije"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Podrazumevani delovi"
@@ -8768,86 +8915,86 @@ msgstr "Podrazumevani delovi"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Izmeni lokaciju zaliha"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "Pomeri stavku na roditeljsku lokaciju"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Obriši lokaciju zaliha"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Akcija stavki"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Akcija za stavke na ovoj lokaciji"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Akcije lokacija"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Akcija za lokacije podređene ovoj"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Akcija za lokacije podređene ovoj"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Osnovni deo"
@@ -8867,7 +9014,7 @@ msgstr "Osnovni deo"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Sledeći serijski broj"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "Alociraj u naloge"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Instalirano u"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "Stavka roditelj"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "Stavka roditelj"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Potrošeno od strane"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Poslednji popis"
@@ -8911,7 +9058,7 @@ msgstr "Poslednji popis"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Detalji zaliha"
@@ -8919,15 +9066,15 @@ msgstr "Detalji zaliha"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Instalirane stavke"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Podstavke"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Izmeni stavku"
@@ -8941,20 +9088,24 @@ msgstr "Izmeni stavku"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Obriši stavku"
@@ -8966,44 +9117,44 @@ msgstr "Obriši stavku"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "Serijalizuj stavku"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "Serijalizuj stavku"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "Stavka serijalizovana"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Operacije nad zalihama"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Operacije nad zalihama"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "Serijalizuj"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "Serijalizuj zalihe"
@@ -9011,14 +9162,22 @@ msgstr "Serijalizuj zalihe"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Akcije stavki"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Akcije stavki"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Akcije stavki"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "Zastarelo"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "Isteklo"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Nedostupno"
@@ -9116,27 +9275,22 @@ msgstr "Nema dostupnih zaliha"
msgid "This stock item has been depleted"
msgstr "Ova stavka je potrošena"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Informacije o zalihama"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Alocirane linije"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Izaberi kolone"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Filteri tabele"
@@ -9435,12 +9589,12 @@ msgstr "Dodaj filter"
msgid "Clear Filters"
msgstr "Očisti filtere"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Nema pronađenih zapisa"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Server je vratio neispravan tip podataka"
@@ -9477,7 +9631,7 @@ msgstr "Server je vratio neispravan tip podataka"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Obriši izabrane stavke"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Da li ste sigurni da želite da obrišete ove izabrane stavke?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Ova akcija se ne može poništiti"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "Prilagođeni filteri tabele su aktivni"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Obriši izabrane zapise"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Osveži podatke"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Ova stavka sa spiska materijala je definisana za drugu roditeljsku komponentu"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Informacije o delu"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Informacije o delu"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Spoljne zalihe"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Uključuje zamenske zalihe"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Uključuje zalihe varijanti"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Spoljne zalihe"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Izgradnja"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Uključuje zamenske zalihe"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Uključuje zalihe varijanti"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Izgradnja"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Izgradnja"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Potrošna stavka"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Nema dostupnih zaliha"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Prikaži stavke koje mogu da se testiraju"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Prikaži stavke koje mogu da se prate"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktivan deo"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Prikaži sklopljene stavke"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Prikaži stavke sa dostupnim zalihama"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Prikaži stavke na nalogu"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validirano"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Prikaži validirane stavke"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Nasleđeno"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Prikaži nasleđene stavke"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Dozvoli varijante"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Prikaži stavke koje dozvoljavaju zamenu varijanti"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Opciono"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Prikaži opcione stavke"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Potrošno"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Prikaži potrošne stavke"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Ima cenu"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Prikaži stavke sa cenama"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Uvezi spisak materijala"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Dodaj stavku na spisak materijala"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "Stavka sa spiska materijala kreirana"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Izmeni stavku sa spiska materijala"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Stavka sa spiska materijala ažurirana"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Obriši stavku sa spiska materijala"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Stavka sa spiska materijala obrisana"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Stavka sa spiska materijala validirana"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Greška pri validaciji stavke sa spiska materijala"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Pogledaj spisak materijala"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Validiraj stavku sa spiska materijala"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Izmeni zamene"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Spisak materijala ne može da se menja, deo je zaključan"
@@ -9966,18 +10108,6 @@ msgstr "Biva nasleđeno"
msgid "Unit Quantity"
msgstr "Količina po jedinici"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr "Nema pronađenih priloga"
msgid "Drag attachment file here to upload"
msgstr "Prevuci prilog ovde za upload"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Stavka"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Dodaj šablon parametara"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Obriši šablon parametara"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Izmeni šablon parametara"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Potvrdni okvir"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Prikaži šablone sa potvrdnim okvirima"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Ima izbore"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Prikaži šablone sa izborima"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Ima merne jedinice"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Prikaži šablon sa mernim jedinicama"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Tip modela"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr "Filtriraj po statusu stavke"
msgid "Receive selected items"
msgstr "Primi izabrane stavke"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Primi stavku"
diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po
index 4b91167df5..d0dc9a9713 100644
--- a/src/frontend/src/locales/sv/messages.po
+++ b/src/frontend/src/locales/sv/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Fel vid rendering av komponent"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Ett fel inträffade vid rendering av denna komponent. Se konsolen för mer information."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopierad"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopiera"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Duplicera"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Redigera"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Radera"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Avbryt"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Åtgärder"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Sök"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Välj kolumner"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Lyckades"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Nej"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Nej"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Artkel"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Artiklar"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametrar"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Testmall för artiklar"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Tillverkarens artiklar"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Artikel Kategori"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Artikelkategorier"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Lager artikel"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Artikel i lager"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Lagerplats"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Lagerplats"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Lagerplatstyper"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Lagerhistorik"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Företag"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Projektkod"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Projektkoder"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Inköpsorder"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Inköpsorder"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Inköpsorderrader"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Försäljningsorder"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Försäljningsorder"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Returorder"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Returorder"
@@ -442,12 +467,12 @@ msgstr "Kontakt"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Kontakter"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Ägare"
@@ -458,7 +483,7 @@ msgstr "Ägare"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Användare"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Användare"
@@ -486,7 +511,7 @@ msgstr "Grupp"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Etikettmall"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Etikettmallar"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Rapportmall"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Rapportmallar"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Fel"
msgid "Errors"
msgstr "Fel"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Admin"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Byggordrar"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Inte implementerad"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Denna funktionen har inte implementerats"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Åtkomst nekad"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Du har inte behörighet att utföra denna åtgärd"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Ogiltig svarskod"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Servern returnerade status {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Fel vid rendering av komponent"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Ett fel inträffade vid rendering av denna komponent. Se konsolen för mer information."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Skanna streckkod"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Lyckades"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Länk"
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Ta bort länk för streckkod"
@@ -786,14 +836,6 @@ msgstr "Öppna i administratörsgränssnittet"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopierad"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopiera"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr "Nästa månad"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr "E-post: "
msgid "No name defined"
msgstr "Inget namn definierat"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Ta bort bild"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
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:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Vill du ta bort den associerade bilden från denna artikel?"
msgid "Remove"
msgstr "Ta bort"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Klicka för att välja fil(er)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Bild uppladdad"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Uppladdningsfel"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Rensa"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Skicka"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Välj från befintliga bilder"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Välj bild"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Ladda upp ny bild"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Ladda upp bild"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Radera bild"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Ladda ner bild"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Bilduppladdning misslyckades"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Anteckningarna sparades framgångsrikt"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Det gick inte att spara anteckningarna"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Spara anteckningar"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Stäng redigerare"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr "Sidan hittades inte"
msgid "This page does not exist"
msgstr "Sidan finns inte"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Åtkomst nekad"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Du saknar behörighet att visa denna sida."
@@ -1604,8 +1641,8 @@ msgstr "Serverfel"
msgid "A server error occurred"
msgstr "Ett serverfel inträffade"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Formulär fel"
@@ -1613,11 +1650,11 @@ msgstr "Formulär fel"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
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:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Inloggningen misslyckades"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Kontrollera din inmatning och försök igen."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "E-postleverans lyckad"
@@ -1808,7 +1845,7 @@ msgstr "Värd"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Server"
@@ -1896,14 +1933,15 @@ msgstr "API Version"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Välj paket"
msgid "{0} icons"
msgstr "{0} ikoner"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Laddar"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Inga resultat hittades"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Artikel"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "modelRenderer post krävs för tabeller"
@@ -2060,7 +2107,7 @@ msgstr "Bearbetar data"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Ett fel inträffade"
@@ -2148,7 +2195,7 @@ msgstr "Data har importerats framgångsrikt"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Stäng"
@@ -2182,8 +2229,8 @@ msgstr "Alternativ"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Streckkods åtgärder"
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Uppdaterad"
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-postinställningar"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Notifikationer"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Inställningar"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Användarinställningar"
@@ -2671,8 +2718,8 @@ msgstr "Användarinställningar"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Systeminställningar"
@@ -2684,8 +2731,8 @@ msgstr "Systeminställningar"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Admin-center"
@@ -2722,24 +2769,26 @@ msgstr "Logga ut"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Lagersaldo"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Inköp"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Bilagor"
msgid "Notes"
msgstr "Anteckningar"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Datum"
@@ -2950,7 +3004,7 @@ msgstr "Datum"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paket"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr "Frakt"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Inaktiv"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Virtuell"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Inget på lager"
@@ -3111,8 +3164,8 @@ msgstr "Inget på lager"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "På order"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Detaljer"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategori"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Plats"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Antal"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Nästa"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Redigera artikel"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "Inga delar valda"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Delar tillagda"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Slutförd produktion"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Produktion som har slutförts"
@@ -4560,64 +4615,64 @@ msgstr "Produktion som har slutförts"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Skrota tillverkad produktion"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Tillverkad produktion har skrotats"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Tillverkad produktion har skrotats"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Avbryt produktion"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Tillverkade produkter har raderats"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IAN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IAN"
msgid "Allocated"
msgstr "Allokerad"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Välj plats"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Virtuell artikel"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Tilldela streckkod"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Tilldela streckkod"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Ändra status"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Lägg till anteckning"
@@ -4812,22 +4867,22 @@ msgstr "Lägg till anteckning"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr "Batchkod"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Serienummer"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Utloggad"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Utloggningen lyckades"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Tema ändrat"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Återställningen misslyckades"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Redan inloggad"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Inloggad"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Inloggning lyckades"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Lösenord sparat!"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "Lösenord ändrat"
@@ -5351,38 +5406,10 @@ msgstr "Lösenord ändrat"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Inte implementerad"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Denna funktionen har inte implementerats"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-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:37
-msgid "Invalid Return Code"
-msgstr "Ogiltig svarskod"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Servern returnerade status {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Lager åtgärder"
@@ -5811,73 +5838,73 @@ msgstr "Ett oväntat fel har inträffat"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API-fel"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Valda element är inte kända"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Flera objekttyper valda"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "Åtgärder ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "Åtgärder ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Åtgärd"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} artiklar valda"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Valuta"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Hem"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Felrapporter"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Valutor"
@@ -6701,11 +6728,11 @@ msgstr "Valutor"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Anpassade enheter"
@@ -6715,12 +6742,12 @@ msgstr "Anpassade enheter"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Platstyper"
@@ -6728,35 +6755,35 @@ msgstr "Platstyper"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Maskiner"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "Datahantering"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Rapportering"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Streckkoder"
@@ -6965,8 +6996,8 @@ msgstr "Streckkoder"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Prissättning"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiketter"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Konto"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Säkerhet"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Visningsalternativ"
@@ -7040,15 +7079,15 @@ msgstr "Markera som oläst"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "Anpassad status"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "Anpassad status"
msgid "External"
msgstr "Extern"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referens"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Föregående tillverkning"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Tillverkat antal"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Kan tillverkas"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Slutförd produktion"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Utfärdad av"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Ansvarig"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Alla platser"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Destinationsplats"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Alla platser"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Skapad"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Destinationsplats"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Skapad"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Startdatum"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Färdigdatum"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Slutförd"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Tillverknings Detaljer"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Allokerat lager"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Förbrukat lager"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Ofullständig produktion"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Underordnad tillverknings order"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Test resultat"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Redigera Tillverknings order"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Lägg till Tillverknings order"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Avbryt Tillverknings order"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Order avbruten"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Avbryt denna order"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Pausa denna order"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Ordern är pausad"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Utfärda tillverknings order"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Utfärda denna order"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Order utfärdad"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Slutför tillverknings order"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Markera denna order som slutförd"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Order slutförd"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Utfärda Order"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Slutför Order"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Åtgärder Tillverknings order"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Redigera order"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Duplicera order"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Pausa order"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Avbryt order"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "Tabellvy"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "Kalendervy"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "Kalendervy"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Tillverkare"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Extern länk"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Artikel Detaljer"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Inget på lager"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Grupproller"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Underkategorier"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Radera objekt"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Tillverknings orderallokeringar"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Försäljningsorder allokeringar"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "Validerad den"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Validerad av"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Validerad av"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Variant av"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Validerad av"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Variant av"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Enheter"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Nyckelord"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Tillgängligt lager"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "På order"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Låst"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Mall artikel"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Sammansatt artikel"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Komponent artikel"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Testbar artikel"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Spårbar artikel"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Köpartikel"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Försäljningsbar artikel"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Skapad Datum"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Skapad av"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "dagar"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Prisintervall"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Välj artikel revision"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varianter"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Allokeringar"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Stycklista"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Välj artikel revision"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varianter"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Allokeringar"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Stycklista"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Används i"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Prissättning för artikel"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Testmall"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Relaterade artiklar"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Lägg till artikel"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Ta bort artikel"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Borttagning av denna artikel kan inte återställas"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Artikel åtgärder"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "Validerad den"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Validerad av"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Tillåt varianter"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Ärvd"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Föregående Plats"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Underplaceringar"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Typ av plats"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Högsta nivå lagerplats"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Platsuppgifter"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Standard artiklar"
@@ -8768,86 +8915,86 @@ msgstr "Standard artiklar"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Redigera lagerplats"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Radera lagerplats"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Platsåtgärder"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Grunddel"
@@ -8867,7 +9014,7 @@ msgstr "Grunddel"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Nästa serienummer"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Installerad i"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Senaste inventering"
@@ -8911,7 +9058,7 @@ msgstr "Senaste inventering"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "Ej tillgänglig"
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Välj kolumner"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filter"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr "Lägg till filter"
msgid "Clear Filters"
msgstr "Rensa filter"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Inga resultat hittades"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "Visa detaljer"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Uppdatera data"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Aktiva filter"
@@ -9548,71 +9702,66 @@ msgstr "Aktiva filter"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "Virtuell del"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Under tillverkning"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Under tillverkning"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Under tillverkning"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktiv del"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Validerad"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Ärvd"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Tillåt varianter"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "Visa BOM"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "Importera från fil"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Artikel"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Modell"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Kryssruta"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Har val"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Har enheter"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Modelltyp"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po
index 9a23579d83..78500bfb3d 100644
--- a/src/frontend/src/locales/th/messages.po
+++ b/src/frontend/src/locales/th/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr ""
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr ""
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr ""
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr ""
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr ""
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr ""
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr ""
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr ""
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr ""
@@ -98,16 +123,16 @@ msgid "No"
msgstr ""
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr ""
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr ""
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr ""
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr ""
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr ""
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr ""
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr ""
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr ""
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr ""
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr ""
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr ""
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr ""
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr ""
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr ""
@@ -458,7 +483,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr ""
@@ -486,7 +511,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr ""
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr ""
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr ""
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr ""
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr ""
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr ""
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr ""
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr ""
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr ""
@@ -774,7 +824,7 @@ msgstr ""
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr ""
@@ -786,14 +836,6 @@ msgstr ""
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr ""
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr ""
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr ""
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr ""
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr ""
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr ""
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr ""
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr ""
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr ""
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr ""
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr ""
msgid "This page does not exist"
msgstr ""
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr ""
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr ""
@@ -1604,8 +1641,8 @@ msgstr ""
msgid "A server error occurred"
msgstr ""
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr ""
@@ -1613,11 +1650,11 @@ msgstr ""
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr ""
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr ""
@@ -1808,7 +1845,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr ""
@@ -1896,14 +1933,15 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr ""
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr ""
msgid "{0} icons"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr ""
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr ""
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr ""
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr ""
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr ""
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr ""
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr ""
@@ -2684,8 +2731,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr ""
@@ -2722,24 +2769,26 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr ""
@@ -2950,7 +3004,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr ""
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr ""
@@ -3111,8 +3164,8 @@ msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr ""
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr ""
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr ""
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr ""
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr ""
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr ""
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr ""
msgid "Received"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr ""
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr ""
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr ""
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr ""
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr ""
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr ""
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr ""
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr ""
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr ""
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr ""
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr ""
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po
index 15a7df2542..99f703e356 100644
--- a/src/frontend/src/locales/tr/messages.po
+++ b/src/frontend/src/locales/tr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Bileşen görüntüleme hatası"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Bu bileşeni görüntülerken bir hata oluştu. Daha fazla bilgi için konsola bakın."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Kopyalandı"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Kopyala"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "İkizini Oluştur"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Düzenle"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Sil"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Vazgeç"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Eylemler"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Ara"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Sütunları Seç"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Geç"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Hayır"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Hayır"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Parça"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Parçalar"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Parametreler"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Üretici Parçaları"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Parça Kategorisi"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Parça Kategorileri"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Stok Kalemi"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Stok Kalemleri"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Stok Konumu"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Stok Konumları"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Stok Konum Türleri"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Stok Geçmişi"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Şirketler"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Proje Kodu"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Proje Kodları"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Satın Alma Siparişi"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Satın Alma Siparişleri"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Satın Alma Sipariş Satırları"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Satış Siparişi"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Satış Siparişleri"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "İade Emri"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "İade Siparişleri"
@@ -442,12 +467,12 @@ msgstr "Bağlantı"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Bağlantılar"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Sahip"
@@ -458,7 +483,7 @@ msgstr "Sahipler"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Kullanıcı"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Kullanıcılar"
@@ -486,7 +511,7 @@ msgstr "Grup"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Etiket Şablonu"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Etiket Şablonları"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Rapor Şablonu"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Rapor Şablonları"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Hata"
msgid "Errors"
msgstr "Hatalar"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Yönetici"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Üretim Emirleri"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Gerçeklenmemiş"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Bu özellik henüz gerçeklenmemiş"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "İzin Reddedildi"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "Bu eylemi gerçekleştirme izniniz yok"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Geçersiz Dönüş Kodu"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Sunucu {returnCode} durumunu döndürdü"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "Zaman Aşımı"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "İstek zaman aşımı"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "İşlem başarısız"
msgid "Process completed successfully"
msgstr "İşlem başarı ile tamamlandı"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Bileşen görüntüleme hatası"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "Bu bileşeni görüntülerken bir hata oluştu. Daha fazla bilgi için konsola bakın."
-
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
#~ msgstr "Title"
@@ -688,8 +738,8 @@ msgstr "Barkod verisi gir"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Barkod Tara"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "Barkod beklenen model ile uyuşmuyor"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Başarılı"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "Barkod işlenemedi"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Barkod taranamadı"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Barkod bağlanamadı"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Bağlantı"
@@ -774,7 +824,7 @@ msgstr "Bu, ilgili barkoda olan bağlantıyı kaldıracaktır"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Barkodun Bağlantısını Kaldır"
@@ -786,14 +836,6 @@ msgstr "Yönetici arayüzünde aç"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Kopyalandı"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Kopyala"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Etiket Yazdırma"
@@ -930,7 +972,7 @@ msgstr "Sonraki ay"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Sipariş güncellenirken hata oluştu"
msgid "Overdue"
msgstr "Gecikmiş"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "Pano kartları yüklenemedi."
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Hiç kart seçilmedi"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Panoya kart eklemek için menüyü kullanın"
@@ -1288,15 +1330,15 @@ msgstr "E-Posta:"
msgid "No name defined"
msgstr "Herhangi bir ad tanımlanmamış"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Görseli Kaldır"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Bu ögeyle ilişkilendirilmiş görsel kaldırılsın mı?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Bu ögeyle ilişkilendirilmiş görsel kaldırılsın mı?"
msgid "Remove"
msgstr "Kaldır"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Dosya(ları) seçmek için tıkla"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Görsel yüklendi"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Görsel başarıyla yüklendi"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Yükleme Hatası"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Temizle"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Gönder"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Mevcut görsellerden seç"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Görsel Seç"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Uzak görseli indir"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Yeni görsel yükle"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Görsel Yükle"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Görseli sil"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Görseli İndir"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Görsel başarıyla indirildi"
@@ -1418,23 +1460,23 @@ msgstr "Görsel başarıyla indirildi"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Görsel yükleme başarısız oldu"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Görsel başarıyla yüklendi"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Notlar başarıyla kaydedildi"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Notların kaydı başarısız oldu"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Notları Kaydederken Hata Oluştu"
@@ -1442,15 +1484,15 @@ msgstr "Notları Kaydederken Hata Oluştu"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Notları Kaydet"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "Editörü Kapat"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Düzenlemeyi Etkinleştirin"
@@ -1587,11 +1629,6 @@ msgstr "Sayfa Bulunamadı"
msgid "This page does not exist"
msgstr "Bu sayfa mevcut değil"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "İzin Reddedildi"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "Bu sayfayı görme izniniz yok."
@@ -1604,8 +1641,8 @@ msgstr "Hatayı Kaydet"
msgid "A server error occurred"
msgstr "Bir sunucu hatası oluştu"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Form Hatası"
@@ -1613,11 +1650,11 @@ msgstr "Form Hatası"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Bir veya daha fazla form alanında hatalar var"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Giriş başarısız"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Lütfen bilgilerinizi kontrol edin ve yeniden giriş yapın."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "E-posta teslimi başarılı"
@@ -1808,7 +1845,7 @@ msgstr "Sunucu"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Ana bilgisayar seçimini kaydet"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Sunucu"
@@ -1896,14 +1933,15 @@ msgstr "API Sürümü"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Eklentiler"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Paket seç"
msgid "{0} icons"
msgstr "{0} simge"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Yükleniyor"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Hiçbir şey bulunamadı"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Öge"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "Tablolar için gerekli modelRenderer girdisi"
@@ -2060,7 +2107,7 @@ msgstr "Veri İşleniyor"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Bir hata oluştu"
@@ -2148,7 +2195,7 @@ msgstr "Veri başarıyla içe aktarıldı"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Kapat"
@@ -2182,8 +2229,8 @@ msgstr "Ayarlar"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Barkod Eylemleri"
@@ -2298,7 +2345,7 @@ msgstr "Grup rolleri güncelleniyor"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Güncellendi"
@@ -2344,9 +2391,9 @@ msgstr "Öğe yok"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "Arka plan işçi süreci çalışmıyor"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "E-posta Ayarları"
@@ -2605,8 +2652,8 @@ msgstr "Hakkında daha fazlasını öğren {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Bildirimler"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Ayarlar"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "Kullanıcı Ayarları"
@@ -2671,8 +2718,8 @@ msgstr "Kullanıcı Ayarları"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Sistem Ayarları"
@@ -2684,8 +2731,8 @@ msgstr "Sistem Ayarları"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Yönetici Merkezi"
@@ -2722,24 +2769,26 @@ msgstr "Çıkış"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Stok"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Üretim"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Satın Alma"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "Arama grubunu kaldır"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Ekler"
msgid "Notes"
msgstr "Notlar"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "Eklenti Sağlandı"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "Panelleri daralt"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "Panelleri genişlet"
@@ -2914,18 +2968,18 @@ msgstr "Eklenti Bilgileri"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Yazar"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Tarih"
@@ -2950,7 +3004,7 @@ msgstr "Tarih"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "Paket"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Eklenti Ayarları"
@@ -3090,8 +3143,8 @@ msgstr "Gönderi"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Pasif"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Sanal"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Stok yok"
@@ -3111,8 +3164,8 @@ msgstr "Stok yok"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "Siparişte"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Ayrıntılar"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Kategori"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Konum"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Seri Numarası"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Miktar"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "Sonraki"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Parçayı Düzenle"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Stokta"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Tedarikçi parçası oluşturuldu"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "Üretim Çıktısı"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Durum"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Üretim Çıktılarını Tamamla"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Üretim çıktıları tamamlandı"
@@ -4560,64 +4615,64 @@ msgstr "Üretim çıktıları tamamlandı"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Üretim Çıktılarını Hurdaya Ayır"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Üretim çıktıları hurdaya ayrıldı"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Üretim çıktıları hurdaya ayrıldı"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Üretim Çıktılarını İptal Et"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Üretim çıktıları iptal edildi"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "DPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "DPN"
msgid "Allocated"
msgstr "Tahsis Edildi"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Kaynak Konum"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr "Stoku Tahsis Et"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Tüketildi"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Konum Seçiniz"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Kalemin Hedefi seçildi"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Parça kategorisi varsayılan konumu seçildi"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Varış konumu seçildi"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Varsayılan konum seçildi"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Sanal Parça"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Konum Ayarla"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Parti Kodu Ata"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Konum Ayarla"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Parti Kodu Ata"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "Son Kullanma Tarihi Belirle"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Paketlemeyi Ayarla"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Durumu Değiştir"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Note Ekle"
@@ -4812,22 +4867,22 @@ msgstr "Note Ekle"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Varsayılan konumda depola"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "Satırdaki hedefe depola "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Mevcut stokla birlikte depola"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Mevcut stokla birlikte depola"
msgid "Batch Code"
msgstr "Parti Kodu"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Seri Numaraları"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "Son Kullanma Tarihi"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Paketleme"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Not"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Teslim Alındı"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Kalemleri Teslim Al"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "Gönderiyi Tamamla"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Stok Durumu"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "Geri Dön"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Say"
@@ -5229,7 +5284,7 @@ msgstr "Dahili sunucu hatası"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Çıkış Yapıldı"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Başarıyla çıkış yapıldı"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "Tema değişti"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Sıfırlama başarısız"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Zaten giriş yapıldı"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Giriş Yapıldı"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Başarıyla giriş yapıldı"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Şifre belirlendi"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Gerçeklenmemiş"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "Bu özellik henüz gerçeklenmemiş"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "Bu eylemi gerçekleştirme izniniz yok"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "Geçersiz Dönüş Kodu"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Sunucu {returnCode} durumunu döndürdü"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "Zaman Aşımı"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "İstek zaman aşımı"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "Veriler Dışa Aktarılıyor"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Stok Eylemleri"
@@ -5811,73 +5838,73 @@ msgstr "Beklenmeyen bir hata oluştu"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Seçilen elemanlar bilinmiyor"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Birden çok nesne türü seçildi"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Eylem"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "{0} öge seçildi"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr "Noktalar"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Para Birimi"
@@ -6661,11 +6688,11 @@ msgstr "Hızlı İşlemler"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "Ana Sayfa"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Veri İçe Aktarma"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "Barkod Taramaları"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Arka Plan Görevleri"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Hata Raporları"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Para Birimleri"
@@ -6701,11 +6728,11 @@ msgstr "Para Birimleri"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Özel Durumlar"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Özel Birimler"
@@ -6715,12 +6742,12 @@ msgstr "Özel Birimler"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Kategori Parametreleri"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Konum Türleri"
@@ -6728,35 +6755,35 @@ msgstr "Konum Türleri"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Makineler"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "Operasyonlar"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Raporlama"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Gelişmiş Seçenekler"
@@ -6949,11 +6976,15 @@ msgstr "Tokenler"
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "Kimlik Doğrulama"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Barkodlar"
@@ -6965,8 +6996,8 @@ msgstr "Barkodlar"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Fiyatlandırma"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Etiketler"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Stok İzleme"
@@ -6996,15 +7035,15 @@ msgstr "Stok İzleme"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Hesap"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Güvenlik"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Görüntüleme Seçenekleri"
@@ -7040,15 +7079,15 @@ msgstr "Okunmadı olarak imle"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Revizyon"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "Harici"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Referans"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Üst Üretim"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Üretim Miktarı"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Üretebilir"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Tamamlanan Çıkışlar"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Düzenleyen"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Sorumlu"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Herhangi bir konum"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Hedef Konum"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Herhangi bir konum"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Oluşturuldu"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Hedef Konum"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Oluşturuldu"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "Başlangıç Tarihi"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Hedef Tarih"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Tamamlandı"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Üretim Ayrıntıları"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Tahsis Edilen Stok"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Tüketilen Stok"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Tamamlanmayan Çıktılar"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Alt Üretim Emirleri"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Test Sonuçları"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Üretim Emrini Düzenle"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Üretim Emri Ekle"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Üretim Emrini İptal Et"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Sipariş iptal edildi"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Bu siparişi iptal et"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Üretimi Askıya Al"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Bu üretimi askıya al"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Beklemeye alınan sipariş"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Üretim Emri Düzenle"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Bu siparişi düzenle"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Sipariş düzenlendi"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Üretim Emrini Tamamla"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Bu siparişi tamamlandı olarak imle"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Sipariş tamamlandı"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Sipariş Düzenle"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Siparişi Tamamla"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Üretim Emri Eylemleri"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Siparişi düzenle"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Siparişi çoğalt"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Siparişi beklet"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Siparişi iptal et"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Üretici"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Harici Bağlantı"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Parça Ayrıntıları"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Tedarikçi Parçası Ekle"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Stok Yok"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "Grup Rolleri"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Üst Kategori"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Alt kategoriler"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Varsayılan konum"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Üst seviye parça kategorisi"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Parça Kategorisini Düzenle"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Ögeleri sil"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Parça Kategorisini Sil"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Parçalar Eylemi"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Bu kategorideki parçalar için eylem"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Alt Kategoriler Eylemi"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Bu kategorinin alt kategorileri için eylem"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Kategori Eylemleri"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Kategori Ayrıntıları"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Üretim Emri Tahsisatları"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Satış Siparişi Ayrımaları"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "ML Doğrula"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Bu montajın ürün ağacını doğrulamak istiyor musunuz?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "Doğrulayan"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "Doğrulayan"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Şunun varyantı"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Şunun revizyonu"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "Doğrulayan"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Şunun varyantı"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Şunun revizyonu"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Varsayılan Konum"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Kategorinin Varsayılan Konumu"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Birim"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Anahtar Sözcükler"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Mevcut Stok"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Siparişte"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Emirler için Gerekli"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Üretim Emirlerine Tahsis Edildi"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Satış Siparişlerine Tahsis Edildi"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Minimum Stok"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Kilitli"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Şablon Parça"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Birleştirilmiş Parça"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Bileşen Parça"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Test Edilebilir Parça"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "İzlenebilir Parça"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Satın Alınabilir Parça"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Satılabilir Parça"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Oluşturma Tarihi"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Oluşturan"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "Varsayılan Son Kullanma Tarihi"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "günler"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Fiyat Aralığı"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "Son Seri Numarası"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Parça Revizyonu Seç"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Varyantlar"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Ayırmalar"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Ürün Ağacı"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "Son Seri Numarası"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Parça Revizyonu Seç"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Varyantlar"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Ayırmalar"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Ürün Ağacı"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Şunda Kullanıldı"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Parça Fiyatlandırma"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Test Şablonları"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "İlgili Parçalar"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Parça Kilitli"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "Parça kilitli olduğundan bu parçanın parametreleri düzenlenemez"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Gerekli"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "Parça kilitli olduğundan bu parçanın parametreleri düzenlenemez"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Gerekli"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Parça Ekle"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Parçayı Sil"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Bu parçanın silinmesi geri alınamaz"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Emir"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "Stok Sipariş Et"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "Seri numarasına göre ara"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Parça Eylemleri"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "Stok Değeri"
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "ML Doğrula"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Bu montajın ürün ağacını doğrulamak istiyor musunuz?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "Doğrulayan"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Varyantlara İzin Ver"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Devralınmış"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "İsteğe bağlı"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Tüketilebilir"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Maximum Fiyat"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Satın Alma Fiyatlandırması"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Üst Konum"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Alt Konumlar"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Konum Türü"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Üst seviye stok konumu"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Konum Ayrıntıları"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Varsayılan Parçalar"
@@ -8768,86 +8915,86 @@ msgstr "Varsayılan Parçalar"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Stok Konumunu Düzenle"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Ögeler Eylemi"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Bu konumdaki stok kalemleri için eylem"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Konum Eylemleri"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Bu konumdaki alt konumlar için eylem"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Bu konumdaki alt konumlar için eylem"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Temel Parça"
@@ -8867,7 +9014,7 @@ msgstr "Temel Parça"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Sonraki seri numarası"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Şuna Takıldı"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Tüketen"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Son Stok Sayımı"
@@ -8911,7 +9058,7 @@ msgstr "Son Stok Sayımı"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Stok Ayrıntıları"
@@ -8919,15 +9066,15 @@ msgstr "Stok Ayrıntıları"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Takılı Kalemler"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Alt Ögeler"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Stok Kalemini Düzenle"
@@ -8941,20 +9088,24 @@ msgstr "Stok Kalemini Düzenle"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Stok Kalemini Sil"
@@ -8966,44 +9117,44 @@ msgstr "Stok Kalemini Sil"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Stok İşlemleri"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Stok İşlemleri"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Stok Kalemi Eylemleri"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Stok Kalemi Eylemleri"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Stok Kalemi Eylemleri"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr "Mevcut stok yok"
msgid "This stock item has been depleted"
msgstr "Bu stok kalemi tükendi"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Stok Bilgisi"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "Tahsis Edilen Kalemler"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Sütunları Seç"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Filtre"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Tablo Süzgeçleri"
@@ -9435,12 +9589,12 @@ msgstr "Filtre Ekle"
msgid "Clear Filters"
msgstr "Süzgeçleri Temizle"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Hiç kayıt bulunamadı"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Sunucu yanlış veri türü döndürdü"
@@ -9477,7 +9631,7 @@ msgstr "Sunucu yanlış veri türü döndürdü"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Seçilen Ögeleri Sil"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "Seçilen ögeleri silmek istediğinize emin misiniz?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "Bu işlem geri alınamaz"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "Ürünler silindi"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "Ürünlerin silinmesi başarısız"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Seçili kayıtları sil"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Veriyi yenile"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "Aktif Filtreler"
@@ -9548,71 +9702,66 @@ msgstr "Aktif Filtreler"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "Bu ML ögesi farklı bir üst öge için tanımlı"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Parça Bilgisi"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Parça Bilgisi"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Harici stok"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Yedek stok içerir"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Varyant stok içerir"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Harici stok"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Üretiliyor"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Yedek stok içerir"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Varyant stok içerir"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Üretiliyor"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Üretiliyor"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Tüketilebilir öge"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Yetersiz stok"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Test edilebilir ögeleri göster"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "İzlenebilir ögeleri göster"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "Aktif Parça"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Birleştirilmiş ögeleri göster"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Stokta bulunan kalemleri göster"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Siparişteki ögeleri göster"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Doğrulandı"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Doğrulanan kalemleri göster"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Devralınmış"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Devralınmış kalemleri göster"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Varyantlara İzin Ver"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Varyant ikamesine izin veren kalemleri göster"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "İsteğe bağlı"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "İsteğe bağlı ögeleri göster"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Tüketilebilir"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Tüketilebilir ögeleri göster"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Fiyatlandırılmış"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Fiyatlandırılmış ögeleri göster"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "ML Verisi İçe aktar"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "ML Ögesi Ekle"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "ML ögesi oluşturuldu"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "ML Ögesini Düzenle"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "ML ögesi güncellendi"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "ML Ögesini Sil"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "ML ögesi silindi"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "BOM kalemi doğrulandı"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "BOM kalemini doğrulama başarısız oldu"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "ML Görüntüle"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "BOM Satırını Doğrula"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Yedekleri Düzenle"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Parça kilitli olduğundan ürün ağacı düzenlenemez"
@@ -9966,18 +10108,6 @@ msgstr "Devralınır"
msgid "Unit Quantity"
msgstr "Birim Miktarı"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr "Hiç ek bulunamadı"
msgid "Drag attachment file here to upload"
msgstr "Ek dosyasını yüklemek için buraya sürükleyiniz"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Öge"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "Model"
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "Parametre Şablonu Ekle"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "Parametre Şablonunu Sil"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "Parametre Şablonunu Düzenle"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "Onay kutusu"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "Onay kutusu şablonlarını göster"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "Seçenekleri olanlar"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "Seçenekli şablonları göster"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Birimi Var"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "Birimli şablonları göster"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "Model Türü"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr "Satır durumuna göre filtrele"
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "Ögeyi Teslim Al"
diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po
index f9f30f3c61..b2a116529e 100644
--- a/src/frontend/src/locales/uk/messages.po
+++ b/src/frontend/src/locales/uk/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\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"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Помилка рендерингу компонента"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "Сталася помилка під час рендерингу цього компонента. Передивитись в консоль для отримання додаткової інформації."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Скопійовано"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Копіювати"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Дублювати"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Редагувати"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Видалити"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Скасувати"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Дії"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Пошук"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr ""
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Пропустити"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Ні"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Ні"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Частина"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Частини"
@@ -158,9 +184,9 @@ msgstr "Параметр"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Параметри"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr ""
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Деталі виробника"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Категорія"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Категорії"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Елемент складу"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "У наявності"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Розташування складу"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Розташування складу"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr ""
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr ""
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Компанії"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Код проєкту"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Коди проєкту"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Замовлення на купівлю"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Закупівлі"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr ""
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Замовлення на купівлю"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr ""
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr ""
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr ""
@@ -442,12 +467,12 @@ msgstr "Контакт"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Контакти"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Власник"
@@ -458,7 +483,7 @@ msgstr "Власники"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Користувач"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Користувачі"
@@ -486,7 +511,7 @@ msgstr "Група"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr ""
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr ""
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr ""
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Помилка"
msgid "Errors"
msgstr "Помилки"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Адмін"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Замовлення на збірку"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr ""
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Дозвіл відхилено"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr ""
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr ""
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr ""
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Помилка рендерингу компонента"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr "Введіть дані штрихкоду"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Сканувати штрих-код"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Успіх"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Не вдалося сканувати штрих-код"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Не вдалося прив'язати штрих-код"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Посилання"
@@ -774,7 +824,7 @@ msgstr "Це призведе до видалення посилання з ві
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Відв'язати штрих-код"
@@ -786,14 +836,6 @@ msgstr "Відкрити в інтерфейсі адміністратора"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Скопійовано"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Копіювати"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "Друк етикеток"
@@ -930,7 +972,7 @@ msgstr "Наступний місяць"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr "Помилка під час оновлення замовлення"
msgid "Overdue"
msgstr "Прострочено"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "Жодного віджету не обрано"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "Використовуйте меню, щоб додати віджети до панелі керування"
@@ -1288,15 +1330,15 @@ msgstr "Електронна пошта: "
msgid "No name defined"
msgstr "Ім'я не визначено"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Видалити зображення"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Видалити пов'язане зображення з цього елемента?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Видалити пов'язане зображення з цього е
msgid "Remove"
msgstr "Видалити"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Натисніть, щоб вибрати файл(и)"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "Зображення завантажено"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "Зображення успішно завантажено"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Помилка при завантаженні"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Очистити"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Відправити"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Обрати з існуючих зображень"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Вибрати зображення"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "Завантажити віддалене зображення"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Завантажити нове зображення"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Завантажити зображення"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Видалити зображення"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "Завантажити зображення"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "Зображення успішно завантажено"
@@ -1418,23 +1460,23 @@ msgstr "Зображення успішно завантажено"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Не вдалося завантажити зображення"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "Зобращення успішно завантажено"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Примітки успішно збережено"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Не вдалося зберегти примітки"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "Помилка під час збереження нотаток"
@@ -1442,15 +1484,15 @@ msgstr "Помилка під час збереження нотаток"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Зберегти примітки"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "Увімкнути редагування"
@@ -1587,11 +1629,6 @@ msgstr "Сторінку не знайдено"
msgid "This page does not exist"
msgstr "Цієї сторінки не існує"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "Дозвіл відхилено"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "У вас немає дозволу на перегляд цієї сторінки."
@@ -1604,8 +1641,8 @@ msgstr "Помилка сервера"
msgid "A server error occurred"
msgstr "Сталася помилка сервера"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Помилка форми"
@@ -1613,11 +1650,11 @@ msgstr "Помилка форми"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Існують деякі помилки для одного або декількох полів"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Не вдалося увійти"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Перевірте введені дані та повторіть спробу."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Пошту відправлено"
@@ -1808,7 +1845,7 @@ msgstr "Хост"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "Зберегти вибір хосту"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Сервер"
@@ -1896,14 +1933,15 @@ msgstr "Версія API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Плагіни"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Вибрати пакет"
msgid "{0} icons"
msgstr "Значки {0}"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Завантаження"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Результатів не знайдено"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr ""
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "для таблиць, необхідний запис modelRenderer"
@@ -2060,7 +2107,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr ""
@@ -2148,7 +2195,7 @@ msgstr "Дані успішно імпортовано"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Закрити"
@@ -2182,8 +2229,8 @@ msgstr "Параметри"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr ""
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr ""
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Налаштування електронної пошти"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Сповіщення"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Налаштування"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Налаштування системи"
@@ -2684,8 +2731,8 @@ msgstr "Налаштування системи"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Центр адміністрування"
@@ -2722,24 +2769,26 @@ msgstr "Вихід"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "В наявності"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "Виробництво"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Вкладення"
msgid "Notes"
msgstr "Нотатки"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "Автор"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Дата"
@@ -2950,7 +3004,7 @@ msgstr "Дата"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr ""
@@ -3090,8 +3143,8 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Неактивний"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr ""
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Немає в наявності"
@@ -3111,8 +3164,8 @@ msgstr "Немає в наявності"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr ""
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr ""
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Категорія"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Категорія"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr ""
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Серійний номер"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Кількість"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr ""
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "В наявності"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "Нове Замовлення на купівлю"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "Замовлення на купівлю створено"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "Деталі додано"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "Усі вибрані частини додані до Замовлення на купівлю"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "Ви повинні вибрати принаймні один елемент для замовлення"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Статус"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr ""
@@ -4560,64 +4615,64 @@ msgstr ""
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr ""
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr ""
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr ""
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr ""
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr ""
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Розташування джерела"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "Вибір розташування вихідного товару при розподілі запасів"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "Вибір розташування вихідного товару пр
msgid "Allocate Stock"
msgstr ""
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "Елементи складу виділені"
@@ -4658,8 +4713,8 @@ msgstr "Елементи складу виділені"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "Використано"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Оберіть розташування"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr ""
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "Призначити Номер серії збірки"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "Призначити Номер серії збірки"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr ""
@@ -4812,22 +4867,22 @@ msgstr ""
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr ""
msgid "Batch Code"
msgstr "Номер серії збірки"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "Введіть Номер серії збірки для отриманих елементів"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Нотатки"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "Артикул, SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "Артикул, SKU"
msgid "Received"
msgstr "Отримано"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "Елемент, отриманий на складі"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Стан залишків"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Кількість"
@@ -5229,7 +5284,7 @@ msgstr "Внутрішня помилка сервера"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr ""
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "Вхід вже здійснено"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "Пароль успішно встановлено. Тепер ви можете увійти в систему, використовуючи новий пароль"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr ""
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr ""
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr ""
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr ""
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr ""
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Дії над запасами"
@@ -5811,73 +5838,73 @@ msgstr ""
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr ""
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr ""
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr ""
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr "Крапки"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr ""
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr ""
@@ -6701,11 +6728,11 @@ msgstr ""
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr ""
@@ -6715,12 +6742,12 @@ msgstr ""
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr ""
@@ -6728,35 +6755,35 @@ msgstr ""
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr ""
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr ""
@@ -6965,8 +6996,8 @@ msgstr ""
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr ""
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
+#~ msgid "Labels"
+#~ msgstr "Labels"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr ""
@@ -6996,15 +7035,15 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr ""
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr ""
@@ -7040,15 +7079,15 @@ msgstr ""
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Ревізія"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "Зовнішній"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Відповідальний"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Будь-яке розташування"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr ""
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Будь-яке розташування"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
msgstr ""
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Кінцева дата"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Виділений запас"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Використані запаси"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Дочірні Замовлення на збірку"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr ""
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Зовнішнє посилання"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr ""
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr ""
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Батьківська категорія"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Підкатегорії"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr ""
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Коренева категорія"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Видалити елемент"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Видалити категорію елементу"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr ""
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr ""
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Ви хочете підтвердити рахунок матеріалів для цієї збірки?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Місцеперебування за замовчуванням"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr ""
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Одиниці виміру"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr ""
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Доступний залишок"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Потрібно для Замовлень збірки"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Виділений запас для Замовлень на збірку"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr ""
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Мінімальний запас"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Відстежуваний елемент"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr ""
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr ""
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr ""
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Використано у"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Ціна елементу"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr ""
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr ""
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Необхідний"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Необхідний"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Видалити деталь"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Видалення цього елементу не може бути скасовано"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "Замовлення"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr ""
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Ви хочете підтвердити рахунок матеріалів для цієї збірки?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr ""
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr ""
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr ""
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Тип локації"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr ""
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr ""
@@ -8768,86 +8915,86 @@ msgstr ""
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Видалити місце складу"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "Дія для товарів в цьому розташуванні"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr ""
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Дія для розміщення дочірніх місць у цієї локації"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Дія для розміщення дочірніх місць у цієї локації"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr ""
@@ -8867,7 +9014,7 @@ msgstr ""
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Використано"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr ""
@@ -8911,7 +9058,7 @@ msgstr ""
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr ""
@@ -8919,15 +9066,15 @@ msgstr ""
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr ""
@@ -8941,20 +9088,24 @@ msgstr ""
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr ""
@@ -8966,44 +9117,44 @@ msgstr ""
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr ""
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr ""
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr ""
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr ""
@@ -9435,12 +9589,12 @@ msgstr ""
msgid "Clear Filters"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr ""
@@ -9477,7 +9631,7 @@ msgstr ""
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr ""
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
msgstr ""
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr ""
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
msgstr ""
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr ""
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr ""
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Показати відстежувані позиції"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr ""
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr ""
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr ""
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr ""
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr ""
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr ""
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr ""
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr ""
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr ""
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Біл матеріалів не можна редагувати, тому що частина заблокована"
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr ""
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr ""
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po
index d8d29f142c..ab0e8fe9f5 100644
--- a/src/frontend/src/locales/vi/messages.po
+++ b/src/frontend/src/locales/vi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:23\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "Lỗi khi hiển thị thành phần"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+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."
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "Đã sao chép"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "Sao chép"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "Nhân bản"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "Sửa"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "Xóa"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "Hủy bỏ"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "Chức năng"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "Tìm kiếm"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "Chọn cột"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "Hoàn tất"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "Không"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "Không"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "Phụ kiện"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "Phụ tùng"
@@ -158,9 +184,9 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "Thông số"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "Mẫu thử nghiệm"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "Nhà sản xuất phụ kiện"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "Danh mục phụ kiện"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "Danh mục phụ kiện"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "Hàng trong kho"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "Hàng trong kho"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "Vị trí kho hàng"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "Vị trí kho hàng"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "Phân loại vị trí kho hàng"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "Lịch sử kho hàng"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "Doanh nghiệp"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "Mã dự án"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "Mã dự án"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "Đơn đặt mua"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "Đơn hàng mua"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "Các dòng đơn đặt hàng"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "Đơn đặt bán"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "Đơn hàng bán"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "Đơn hàng trả lại"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "Đơn hàng trả lại"
@@ -442,12 +467,12 @@ msgstr "Liên hệ"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "Danh bạ"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "Chủ sở hữu"
@@ -458,7 +483,7 @@ msgstr "Chủ sở hữu"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "Người dùng"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "Người dùng"
@@ -486,7 +511,7 @@ msgstr "Nhóm"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "Mẫu nhãn tem"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "Mẫu nhãn tem"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "Mẫu báo cáo"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "Mẫu báo cáo"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "Lỗi"
msgid "Errors"
msgstr "Lỗi"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "Quản trị"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "Đơn đặt bản dựng"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "Chưa triển khai"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "Tính năng này vẫn chưa được triển khai"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "Từ chối phân quyền"
+
+#: lib/functions/Notification.tsx:24
+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"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "Mã trả hàng không hợp lệ"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "Mã phản hồi của máy chủ {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr ""
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr ""
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr ""
msgid "Process completed successfully"
msgstr ""
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "Lỗi khi hiển thị thành phần"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-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 "Title"
@@ -688,8 +738,8 @@ msgstr "Nhập dữ liệu mã vạch"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "Quét mã vạch"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "Thành công"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr ""
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "Quét mã vạch thất bại"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "Liên kết với mã vạch thất bại"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "Liên kết"
@@ -774,7 +824,7 @@ msgstr "Thao tác này sẽ xóa liên kết đến mã vạch được liên k
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "Gỡ liên kết mã vạch"
@@ -786,14 +836,6 @@ msgstr "Mở trong giao diện quản trị"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "Đã sao chép"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "Sao chép"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "In nhãn"
@@ -930,7 +972,7 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr ""
@@ -947,15 +989,15 @@ msgstr ""
msgid "Overdue"
msgstr "Quá hạn"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr ""
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr ""
@@ -1288,15 +1330,15 @@ msgstr ""
msgid "No name defined"
msgstr "Chưa định nghĩa tên"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "Xoá hình"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "Xóa hình liên quan khỏi mục này?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "Xóa hình liên quan khỏi mục này?"
msgid "Remove"
msgstr "Xoá"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr ""
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr ""
@@ -1324,69 +1366,69 @@ msgstr ""
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr ""
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "Nhấp vào để chọn file"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr ""
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr ""
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "Lỗi tải lên"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "Clear"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "Gửi"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "Chọn từ hình ảnh có sẵn"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "Chọn hình ảnh"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "Tải lên ảnh mới"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "Tải lên ảnh"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "Xoá ảnh"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr ""
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr ""
@@ -1418,23 +1460,23 @@ msgstr ""
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "Tải ảnh thất bại"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "Lưu ghi chú thành công"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "Không lưu được chú thích"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr ""
@@ -1442,15 +1484,15 @@ msgstr ""
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "Lưu ghi chú"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr ""
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr ""
@@ -1587,11 +1629,6 @@ msgstr "Không tìm thấy trang"
msgid "This page does not exist"
msgstr "Trang không tồn tại"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-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 "Bạn không có quyền xem trang này"
@@ -1604,8 +1641,8 @@ msgstr "Lỗi máy chủ"
msgid "A server error occurred"
msgstr "Xảy ra lỗi máy chủ"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "Lỗi form"
@@ -1613,11 +1650,11 @@ msgstr "Lỗi form"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "Lỗi nhập liệu"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "Đăng nhập thất bại"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "Kiểm tra đầu vào của bạn và thử lại."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "Thư đã được gửi đi thành công"
@@ -1808,7 +1845,7 @@ msgstr "Host"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "Máy chủ"
@@ -1896,14 +1933,15 @@ msgstr "Phiên bản API"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "Plugins"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "Chọn gói"
msgid "{0} icons"
msgstr "{0} icons"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "Đang tải"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "Không có kết quả nào được tìm thấy"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "Hàng hóa"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "modelRenderer mục nhập bắt buộc cho bảng"
@@ -2060,7 +2107,7 @@ msgstr "Đang xử lý dữ liệu"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "Có lỗi xảy ra"
@@ -2148,7 +2195,7 @@ msgstr "Dữ liệu đã được nhập thành công"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "Đóng"
@@ -2182,8 +2229,8 @@ msgstr ""
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "Chức năng mã vạch"
@@ -2298,7 +2345,7 @@ msgstr ""
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "Đã cập nhật"
@@ -2344,9 +2391,9 @@ msgstr ""
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr ""
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "Thiết lập email"
@@ -2605,8 +2652,8 @@ msgstr ""
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,11 +2664,11 @@ msgstr "Thông báo"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
+msgid "Superuser Mode"
msgstr ""
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
+msgid "Admin Mode"
msgstr ""
#: src/components/nav/Header.tsx:237
@@ -2653,8 +2700,8 @@ msgstr "Cài đặt"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr ""
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "Thiết lập hệ thống"
@@ -2684,8 +2731,8 @@ msgstr "Thiết lập hệ thống"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "Trung tâm quản trị"
@@ -2722,24 +2769,26 @@ msgstr "Đăng xuất"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "Kho hàng"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "Mua sắm"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr ""
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "Đính kèm"
msgid "Notes"
msgstr "Ghi chú"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr ""
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr ""
@@ -2914,18 +2968,18 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "Ngày"
@@ -2950,7 +3004,7 @@ msgstr "Ngày"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr ""
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "Thiết lập phần bổ sung"
@@ -3090,8 +3143,8 @@ msgstr "Lô hàng"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "Không hoạt động"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "Ảo"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "Hết hàng"
@@ -3111,8 +3164,8 @@ msgstr "Hết hàng"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "On Order"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "Chi tiết"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "Danh mục"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "Danh mục"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "Vị trí"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "Số sê-ri"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "Số lượng"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "Sửa phụ kiện"
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "Còn hàng"
msgid "Required Quantity"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "Đã tạo sản phẩm nhà cung cấp"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr ""
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr ""
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr ""
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr ""
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr ""
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr ""
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "Trạng thái"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "Hoàn thành xây dựng đầu ra"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "Xây dựng đầu ra đã hoàn thành"
@@ -4560,64 +4615,64 @@ msgstr "Xây dựng đầu ra đã hoàn thành"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr ""
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "Loại bỏ xây dựng đầu ra"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr ""
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr ""
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "Xây dựng đầu ra đã bị hủy bỏ"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "Xây dựng đầu ra đã bị hủy bỏ"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "Loại bỏ xây dựng đầu ra"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr ""
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "Xây dựng đầu ra đã bị hủy"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "IPN"
msgid "Allocated"
msgstr ""
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "Vị trí nguồn cung"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr ""
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr ""
msgid "Allocate Stock"
msgstr "Phân kho"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr ""
@@ -4658,8 +4713,8 @@ msgstr ""
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr ""
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr ""
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr ""
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr ""
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "Chọn vị trí"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "Đã chọn đích đến của mặt hàng"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "Vị trí mặc định danh mục đã được chọn"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "Vị trí kho hàng nhận đã được chọn"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "Vị trí mặc định đã chọn"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "Nguyên liệu ảo"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr ""
@@ -4773,38 +4828,38 @@ msgstr ""
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "Cài đặt vị trí"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "Cài đặt vị trí"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr ""
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "Điều chỉnh bao bì"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Thay đổi trạng thái"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "Thêm ghi chú"
@@ -4812,22 +4867,22 @@ msgstr "Thêm ghi chú"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "Cửa hàng ở vị trí mặc định"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "Cửa hàng đã nhận hàng"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "Cửa hàng đã nhận hàng"
msgid "Batch Code"
msgstr "Mã lô hàng"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "Số sê-ri"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr ""
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "Đóng gói"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "Ghi chú"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "SKU"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "SKU"
msgid "Received"
msgstr "Đã nhận"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "Nhận hạng mục"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr ""
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr ""
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr ""
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr ""
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "Trạng thái kho"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr ""
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Đếm"
@@ -5229,7 +5284,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "Đã đăng xuất"
@@ -5257,81 +5312,81 @@ msgstr ""
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "Đăng xuất thành công"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "Thiết lập lại thất bại"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "Đã đăng nhập"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "Đăng nhập thành công."
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "Đã đặt mật khẩu"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
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/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr ""
@@ -5351,38 +5406,10 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "Chưa triển khai"
-
-#: src/functions/notifications.tsx:14
-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:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-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:37
-msgid "Invalid Return Code"
-msgstr "Mã trả hàng không hợp lệ"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "Mã phản hồi của máy chủ {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr ""
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr ""
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr ""
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr ""
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "Thao tác kho"
@@ -5811,73 +5838,73 @@ msgstr "Đã xảy ra lỗi không mong muốn."
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr ""
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr ""
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr ""
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "Chọn phần tử chưa được biết đến"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "Đã chọn nhiều loại đối tượng"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr ""
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr ""
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr ""
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "Thao tác"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr ""
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr ""
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "đã chọn {0} mục"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr ""
@@ -6593,7 +6620,7 @@ msgstr ""
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "Tiền tệ"
@@ -6661,11 +6688,11 @@ msgstr ""
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr ""
@@ -6673,27 +6700,27 @@ msgstr ""
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "Nhập dữ liệu"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "Tác vụ Chạy nền"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "Báo cáo lỗi"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "Tiền tệ"
@@ -6701,11 +6728,11 @@ msgstr "Tiền tệ"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "Tuỳ chọn states"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "Tuỳ chọn đơn vị"
@@ -6715,12 +6742,12 @@ msgstr "Tuỳ chọn đơn vị"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "Thông số danh mục"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "Loại vị trí"
@@ -6728,35 +6755,35 @@ msgstr "Loại vị trí"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "Máy móc"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "Báo cáo"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr ""
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "Tùy chọn Nâng cao"
@@ -6949,11 +6976,15 @@ msgstr ""
msgid "The settings below are specific to each available plugin"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "Mã vạch"
@@ -6965,8 +6996,8 @@ msgstr "Mã vạch"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr ""
@@ -6974,21 +7005,29 @@ msgstr ""
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "Giá bán"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "Nhãn"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "Theo dõi tồn kho"
@@ -6996,15 +7035,15 @@ msgstr "Theo dõi tồn kho"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "Tài khoản"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "Bảo mật"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "Tùy chọn hiển thị"
@@ -7040,15 +7079,15 @@ msgstr "Đánh dấu chưa đọc"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr ""
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr ""
@@ -7056,6 +7095,18 @@ msgstr ""
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr ""
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "Sửa đổi"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "Bên ngoài"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "Tham chiếu"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "Phiên bản cha"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "Số lượng đơn vị"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "Có thể dựng"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "Đầu ra hoàn thiện"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "Cấp bởi"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "Chịu trách nhiệm"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "Vị trí bất kỳ"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "Địa điểm đích"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "Vị trí bất kỳ"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "Đã tạo"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "Địa điểm đích"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "Đã tạo"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "Ngày mục tiêu"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "Đã hoàn thành"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "Chi tiết bản dựng"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "Kho hàng đã phân bổ"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "Kho tiêu thụ"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "Đầu ra chưa hoàn hiện"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr ""
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "Đơn đặt bản dựng con"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "Kết quả kiểm tra"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "Sửa đơn đặt bản dựng"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "Tạo đơn đặt bản dựng"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "Hủy đơn đặt bản dựng"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "Đã huỷ giao dịch"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "Hủy đơn hàng này"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "Chuyển trạng thái chờ đơn đặt bản dựng"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "Chuyển đơn hàng sang trạng thái chờ"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "Đơn hàng đã chuyển sang chờ"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "Xác nhận"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "Xác nhận"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "Đã xác nhận"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "Hoàn thành"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "Đánh dấu hoàn thành"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "Hoàn thành"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "Xác nhận"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "Hoàn thành"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "Thao tác đơn đặt bản dựng"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "Chỉnh sửa đơn hàng"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "Nhân bản đơn hàng"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "Giữ đơn hàng"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "Hủy đơn hàng"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr ""
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr ""
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr ""
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr ""
@@ -7470,7 +7522,7 @@ msgstr "Nhà sản xuất"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "Liên kết Ngoài"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "Chi tiết"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "Thêm sản phẩm nhà cung cấp"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "Hết hàng"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr ""
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr ""
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "Danh mục cha"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "Phụ mục"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "Vị trí mặc định"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "Danh mục top"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "Sửa"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr ""
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "Xoá"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "Xoá"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "Thao tác"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "Thao tác trong danh mục"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "Thao tác"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "Thao tác"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "Thao tác"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "Chi tiết"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "Phân bổ đơn hàng bản dựng"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "Phân bổ đơn hàng bán"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "Xác minh BOM"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "Bạn có muốn xác minh BOM?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "Biến thể của"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "Sửa đổi của"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "Biến thể của"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "Sửa đổi của"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "Vị trí mặc định"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "Vị trí danh mục mặc định"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "Đơn vị"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "Từ khóa"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "Số hàng tồn"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "Đang đặt hàng"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "Yêu cầu cho đơn hàng"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "Đã phân bổ đơn hàng"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "Đã phân bổ đơn hàng"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "Kho tối thiểu"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "Khóa"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "Nguyên liệu mẫu"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "Đã lắp ráp"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "Thành phần"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "Có thể kiểm"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "Có thể theo dõi"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "Có thể đặt"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "Có thể bán"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "Ngày tạo"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "Tạo bởi"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr ""
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr ""
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "Khoảng giá"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr ""
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "Chọn lịch sử nguyên liệu"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "Biến thể"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "Phân bổ"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "Hóa đơn nguyên vật liệu"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "Chọn lịch sử nguyên liệu"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "Biến thể"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "Phân bổ"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "Hóa đơn nguyên vật liệu"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "Sử dụng trong"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "Giá"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "Mẫu thử nghiệm"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "Phụ kiện liên quan"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "Nguyên liệu bị khoá"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr ""
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "Bắt buộc"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr ""
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr ""
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "Bắt buộc"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "Thêm nguyên liệu"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "Xoá nguyên liệu"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "Không thể khôi phục việc xóa nguyên liệu này"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "Thao tác"
@@ -8172,7 +8177,7 @@ msgstr ""
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr ""
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "Xác minh BOM"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "Bạn có muốn xác minh BOM?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "Cho phép biến thể"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "Được kế thừa"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "Tuỳ chọn"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "Vật tư tiêu hao"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "Giá cao nhất"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "Giá mua"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr ""
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "Địa chỉ chính"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "Địa chỉ phụ"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "Loại vị trí"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "Vị trí kho tổng"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "Chi tiết địa điểm"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "Nguyên liệu mặc định"
@@ -8768,86 +8915,86 @@ msgstr "Nguyên liệu mặc định"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "Sửa vị trí kho"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "Xoá vị trí kho"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "Thao tác items"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
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:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "Thao tác vị trí"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "Thao tác cho vị trí phụ tại vị trí này"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "Thao tác cho vị trí phụ tại vị trí này"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr ""
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "Sản phẩm cơ bản"
@@ -8867,7 +9014,7 @@ msgstr "Sản phẩm cơ bản"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr ""
@@ -8875,35 +9022,35 @@ msgstr ""
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "Số seri kế tiếp"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "Nhập vào"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "Sử dụng bởi"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "Kiểm kê cuối cùng"
@@ -8911,7 +9058,7 @@ msgstr "Kiểm kê cuối cùng"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "Chi tiết kho"
@@ -8919,15 +9066,15 @@ msgstr "Chi tiết kho"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "Mục đã cài đặt"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "Mục con"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "Sửa hàng trong kho"
@@ -8941,20 +9088,24 @@ msgstr "Sửa hàng trong kho"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "Xoá kho item"
@@ -8966,44 +9117,44 @@ msgstr "Xoá kho item"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr ""
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "Hoạt động kho"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "Hoạt động kho"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr ""
@@ -9011,14 +9162,22 @@ msgstr ""
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "Thao tác kho items"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "Thao tác kho items"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "Thao tác kho items"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr ""
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr ""
@@ -9116,27 +9275,22 @@ msgstr ""
msgid "This stock item has been depleted"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "Thông tin kho"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr ""
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr ""
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "Chọn cột"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "Bộ lọc"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "Bộ lọc bảng"
@@ -9435,12 +9589,12 @@ msgstr "Thêm bộ lọc"
msgid "Clear Filters"
msgstr "Xóa bộ lọc"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "Không tìm thấy biểu ghi"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr ""
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "Máy chủ trả chưa đúng dữ liệu"
@@ -9477,7 +9631,7 @@ msgstr "Máy chủ trả chưa đúng dữ liệu"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr ""
@@ -9494,49 +9648,49 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr ""
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "Xóa mục đã chọn"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
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:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr ""
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "Xóa bản ghi được chọn"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "Làm mới dữ liệu"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr ""
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "BOM này đã được định nghĩa"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "Thông tin nguyên liệu"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr ""
-#: src/tables/bom/BomTable.tsx:234
-msgid "Substitutes"
-msgstr ""
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "Thông tin nguyên liệu"
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
+#: src/tables/bom/BomTable.tsx:257
+msgid "Substitutes"
msgstr ""
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "Kho ngoài"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "Bao gồm kho thay thế"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "Bao gồm kho biến thể"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr ""
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "Kho ngoài"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "Đang dựng"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "Bao gồm kho thay thế"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "Bao gồm kho biến thể"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "Đang dựng"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "Đang dựng"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "Vật tư tiêu hao"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "Không khả dụng"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "Hiển thị items có thể kiểm"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "Hiển thị items có thể theo dõi"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr ""
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "Hiện items đã lắp ráp"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "Hiện items còn trong kho"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "Hiện items theo thứ tự"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "Đã xác minh"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "Hiện items đã xác minh"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "Được kế thừa"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "Hiện items được kế thừa"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "Cho phép biến thể"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "Hiện items có biến thể con"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "Tuỳ chọn"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "Hiện items tuỳ chọn"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "Vật tư tiêu hao"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "Hiện items tiêu hao"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "Có định giá"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "Hiện items định giá"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "Nhập dữ liệu BOM"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "Thêm BOM item"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "BOM item đã tạo"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "Sửa BOM item"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "Đã cập nhật BOM item"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "Xoá BOM item"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "Đã xoá BOM item"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "Đã xác minh item BOM"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "Lỗi xác minh BOM item"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "Xác minh BOM line"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "Sửa vật tư thay thế"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr ""
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr ""
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr ""
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "Không thể sửa BOM, do nguyên liệu bị khoá"
@@ -9966,18 +10108,6 @@ msgstr ""
msgid "Unit Quantity"
msgstr ""
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr ""
@@ -10361,10 +10491,6 @@ msgstr "Không tìm thấy tệp đính kèm"
msgid "Drag attachment file here to upload"
msgstr ""
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "Hàng hóa"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr ""
@@ -10456,59 +10582,59 @@ msgstr ""
msgid "Import parameters from a file"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "Có đơn vị"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr ""
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr ""
@@ -11623,7 +11749,7 @@ msgstr ""
msgid "Receive selected items"
msgstr ""
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr ""
diff --git a/src/frontend/src/locales/zh_Hans/messages.po b/src/frontend/src/locales/zh_Hans/messages.po
index 095c57dcc0..5679e53d26 100644
--- a/src/frontend/src/locales/zh_Hans/messages.po
+++ b/src/frontend/src/locales/zh_Hans/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "渲染组件出错"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "渲染此组件时发生错误。请参阅控制台获取更多信息。"
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "已复制"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "复制"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "复制"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "编辑"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "删除"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "取消"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "操作"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "搜索"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "选择列"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "通过"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "否"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "否"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "零件"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "零件"
@@ -158,9 +184,9 @@ msgstr "参数"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "参数"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "零件测试模板"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "制造商零件"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "零件类别"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "零件类别"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "库存项"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "库存项"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "库存地点"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "库存地点"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "库存地点类型"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "库存历史记录"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "公司"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "项目编码"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "项目编码"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "采购订单"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "采购订单"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "采购订单行"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "销售订单"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "销售订单"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "退货订单"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "退货订单"
@@ -442,12 +467,12 @@ msgstr "联系人"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "联系人"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "所有者"
@@ -458,7 +483,7 @@ msgstr "所有者"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "用户"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "用户"
@@ -486,7 +511,7 @@ msgstr "群组"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "标签模板"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "标签模板"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "报告模板"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "报告模板"
@@ -556,8 +581,8 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,19 +620,52 @@ msgstr "错误"
msgid "Errors"
msgstr "错误"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "管理员"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "生产订单"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "尚未实现"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "此功能尚未实现"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "权限受限"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "您无权执行此操作。"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "无效返回码"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "服务器返回状态 {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "超时"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "请求已超时"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
@@ -617,14 +675,6 @@ msgstr "处理失败"
msgid "Process completed successfully"
msgstr "处理成功"
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "渲染组件出错"
-
-#: src/components/Boundary.tsx:16
-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"
@@ -688,8 +738,8 @@ msgstr "输入条形码数据"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "扫描条形码"
@@ -702,13 +752,13 @@ msgid "Barcode does not match the expected model type"
msgstr "条形码与预期型号不匹配"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "操作成功"
@@ -718,7 +768,7 @@ msgid "Failed to handle barcode"
msgstr "条形码处理失败"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
msgstr "扫描条形码失败"
@@ -759,12 +809,12 @@ msgid "Failed to link barcode"
msgstr "链接条形码失败"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "链接"
@@ -774,7 +824,7 @@ msgstr "这将删除关联条形码的链接"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "解绑条形码"
@@ -786,14 +836,6 @@ msgstr "在管理员界面打开"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "已复制"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "复制"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
msgstr "打印标签"
@@ -930,7 +972,7 @@ msgstr "下个月"
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
msgstr "出口数据"
@@ -947,15 +989,15 @@ msgstr "更新订单时出错"
msgid "Overdue"
msgstr "逾期"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
msgstr "仪表板组件加载失败。"
-#: src/components/dashboard/DashboardLayout.tsx:293
+#: src/components/dashboard/DashboardLayout.tsx:296
msgid "No Widgets Selected"
msgstr "未选中小组件"
-#: src/components/dashboard/DashboardLayout.tsx:296
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
msgstr "使用菜单将小组件添加到面板"
@@ -1288,15 +1330,15 @@ msgstr "邮箱: "
msgid "No name defined"
msgstr "未定义名称"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "删除图片"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "删除与此项关联的图片?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,11 +1354,11 @@ msgstr "删除与此项关联的图片?"
msgid "Remove"
msgstr "移除"
-#: src/components/details/DetailsImage.tsx:88
+#: src/components/details/DetailsImage.tsx:89
msgid "Image removed"
msgstr "图像已移除"
-#: src/components/details/DetailsImage.tsx:89
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
msgstr "图片已成功删除"
@@ -1324,69 +1366,69 @@ msgstr "图片已成功删除"
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
msgstr "拖放上传,或从剪贴板粘贴图片"
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "点击选择文件"
-#: src/components/details/DetailsImage.tsx:222
+#: src/components/details/DetailsImage.tsx:223
msgid "Image uploaded"
msgstr "图片已上传"
-#: src/components/details/DetailsImage.tsx:223
+#: src/components/details/DetailsImage.tsx:224
msgid "Image has been uploaded successfully"
msgstr "图片已经上传成功"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "上传错误"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "清除"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "提交"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "从现有图片中选择"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "选择图片"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "下载远程图片"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "上传新图片"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "上传图片"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "删除图片"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "下载图片"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "图片下载成功"
@@ -1418,23 +1460,23 @@ msgstr "图片下载成功"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "图片上传失败"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "图片已经上传成功"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "备注保存成功"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "保存记事失败"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
msgstr "错误保存笔记"
@@ -1442,15 +1484,15 @@ msgstr "错误保存笔记"
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "保存备注"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
msgstr "关闭编辑器"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "启用编辑"
@@ -1587,11 +1629,6 @@ msgstr "无法找到页面"
msgid "This page does not exist"
msgstr "此页面不存在"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "权限受限"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "您没有权限查看此网页。"
@@ -1604,8 +1641,8 @@ msgstr "服务器错误"
msgid "A server error occurred"
msgstr "服务器出错。"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "表单错误"
@@ -1613,11 +1650,11 @@ msgstr "表单错误"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "一个或多个表单字段存在错误"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "登录失败"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "请检查您的输入并重试。"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "邮件发送成功"
@@ -1808,7 +1845,7 @@ msgstr "主机"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1877,7 +1914,7 @@ msgstr "保存主机选择"
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "服务器"
@@ -1896,14 +1933,15 @@ msgstr "API 版本"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "插件"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1968,16 +2006,25 @@ msgstr "选择包"
msgid "{0} icons"
msgstr "{0} 个图标"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "正在加载"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "未找到结果"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "项目"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr ""
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "表格需要 modelRenderer 条目"
@@ -2060,7 +2107,7 @@ msgstr "处理数据中"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "发生错误"
@@ -2148,7 +2195,7 @@ msgstr "数据已成功导入"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "关闭"
@@ -2182,8 +2229,8 @@ msgstr "选项"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "条形码操作"
@@ -2298,7 +2345,7 @@ msgstr "正在更新组角色"
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "已更新"
@@ -2344,9 +2391,9 @@ msgstr "没有项目"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2549,7 +2596,7 @@ msgstr "后台工作进程未运行"
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "电子邮件设置"
@@ -2605,8 +2652,8 @@ msgstr "了解更多关于{code}的信息"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2616,14 +2663,14 @@ msgstr "通知"
#~ msgid "Administrator Mode"
#~ msgstr "Administrator Mode"
-#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
-msgstr ""
-
#: src/components/nav/Header.tsx:231
msgid "Superuser Mode"
msgstr "超级用户模式"
+#: src/components/nav/Header.tsx:231
+msgid "Admin Mode"
+msgstr ""
+
#: src/components/nav/Header.tsx:237
msgid "The current user has elevated privileges and should not be used for regular usage."
msgstr "当前用户拥有提升权限,不应用于日常常规操作。"
@@ -2653,8 +2700,8 @@ msgstr "设置"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
msgstr "用户设置"
@@ -2671,8 +2718,8 @@ msgstr "用户设置"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "系统设置"
@@ -2684,8 +2731,8 @@ msgstr "系统设置"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "管理中心"
@@ -2722,24 +2769,26 @@ msgstr "登出"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "库存"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
msgstr "生产"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "采购"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2810,7 +2860,7 @@ msgstr "移除搜索组"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2879,15 +2929,19 @@ msgstr "附件"
msgid "Notes"
msgstr "备注"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
msgstr "插件已提供"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr ""
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
msgstr "收起面板"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
msgstr "展开面板"
@@ -2914,18 +2968,18 @@ msgstr "插件信息"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "作者"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "日期"
@@ -2950,7 +3004,7 @@ msgstr "日期"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "软件包"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "插件设置"
@@ -3090,8 +3143,8 @@ msgstr "配送"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "未激活"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "虚拟"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "无库存"
@@ -3111,8 +3164,8 @@ msgstr "无库存"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "订购中"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "详情"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "类别"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "类别"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "位置"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "序列号"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "数量"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3798,7 +3853,7 @@ msgid "Next"
msgstr "下一个"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "编辑零件"
@@ -3891,8 +3946,8 @@ msgstr "销售需求"
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3903,94 +3958,94 @@ msgstr "入库"
msgid "Required Quantity"
msgstr "所需数量"
-#: src/components/wizards/OrderPartsWizard.tsx:203
+#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
msgstr "新建采购订单"
-#: src/components/wizards/OrderPartsWizard.tsx:205
+#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
msgstr "采购订单已创建"
-#: src/components/wizards/OrderPartsWizard.tsx:217
+#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
msgstr "新增供应商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:219
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "供应商零件已更新"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
msgstr "添加到采购订单中"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
msgstr "零件已添加到采购订单中"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
msgstr "选择供应商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:323
+#: src/components/wizards/OrderPartsWizard.tsx:326
msgid "Copy supplier part number"
msgstr "复制供应商零件编号"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
msgstr "新增供应商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
msgstr "选择采购订单"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
msgstr "新建采购订单"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
msgstr "添加到已选的采购订单中"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
msgstr "没有选定零件"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
msgstr "未选择可购买的零件"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
msgstr "零件已添加"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
msgstr "所有选中的零件添加到采购订单中"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
msgstr "您必须至少选择一个零件才能下单"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
msgstr "供应商零件为必填项"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
msgstr "数量为必填项"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
msgstr "无效的零件选择"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
msgstr "请修正所选零件中的错误"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
@@ -4480,19 +4535,19 @@ msgstr "关于InvenTree项目"
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
msgstr "替代零件"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
msgstr "编辑物料清单替代项"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
msgstr "添加替代项"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
msgstr "替代项已添加"
@@ -4506,33 +4561,33 @@ msgstr "替代项已添加"
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "生产产出"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
msgstr "待完成数量"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr "待完成数量"
msgid "Status"
msgstr "状态"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "完成生产输出"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "生产已完成"
@@ -4560,64 +4615,64 @@ msgstr "生产已完成"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
msgstr "待报废数量"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "报废生产输出"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
msgstr "选定的生产产出将被完成,但标记为报废"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
msgstr "已分配的库存物料将被消耗"
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "生产已完成"
+
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "生产已完成"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "取消生产输出"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
msgstr "选定的生产产出将被移除"
-#: src/forms/BuildForms.tsx:530
+#: src/forms/BuildForms.tsx:523
msgid "Allocated stock items will be returned to stock"
msgstr "已分配的库存物料将退回可用库存"
-#: src/forms/BuildForms.tsx:537
+#: src/forms/BuildForms.tsx:530
msgid "Build outputs have been cancelled"
msgstr "生产已完成"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "内部零件编码 IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "内部零件编码 IPN"
msgid "Allocated"
msgstr "已分配"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "来源地点"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "选择分配库存的源位置"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "选择分配库存的源位置"
msgid "Allocate Stock"
msgstr "分配库存"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "分配的库存项目"
@@ -4658,8 +4713,8 @@ msgstr "分配的库存项目"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
@@ -4672,22 +4727,22 @@ msgstr "消耗库存"
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
msgstr "已全部消耗"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
msgstr "已消耗"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
msgstr "请为此行项目选择项目编码"
@@ -4698,7 +4753,7 @@ msgstr "请为此行项目选择项目编码"
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4737,35 +4792,35 @@ msgstr "订阅此类别的通知"
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "选择位置"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "已选择项目目的地"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "已选择零件类别默认位置"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "已选择接收库存位置"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "已选择默认位置"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "虚拟零件"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
msgstr "该零件为虚拟件,不会接收实物库存。"
@@ -4773,38 +4828,38 @@ msgstr "该零件为虚拟件,不会接收实物库存。"
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "设置位置"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr "分配批号"
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "设置位置"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "分配批号"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
msgstr "分配序列号"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
msgstr "设置到期日期"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "调整封包"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "更改状态"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "添加备注"
@@ -4812,22 +4867,22 @@ msgstr "添加备注"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "存储在默认位置"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
msgstr "存储至行项目指定位置 "
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "存储已收到的库存"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "存储已收到的库存"
msgid "Batch Code"
msgstr "批号"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
msgstr "输入接收项目的批号"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "序列号"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
msgstr "输入接收项目的序列号"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "有效期至"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
msgstr "输入接收项目的到期日期"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "包装"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "备注"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "库存单位 (SKU)"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,11 +4944,11 @@ msgstr "库存单位 (SKU)"
msgid "Received"
msgstr "已接收"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "接收行项目"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
msgstr "物料已收货"
@@ -4906,52 +4961,52 @@ msgid "Item received into stock"
msgstr "已收到库存物品"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
msgstr "根据零件和数量计算的价格不一致 {0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
msgstr "检查发货"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
msgstr "将装运标记为已检查的货物,表明您已经验证这批装运的所有物品都是正确的"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
msgstr "发货单已标记为已核对"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
msgstr "取消核对发货单"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
msgstr "将发货单标记为未核对,表示该发货单需要进一步核查"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
msgstr "发货单已标记为未核对"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
msgstr "正在完成发货"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
msgstr "发货已成功完成"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "完成配送"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
msgstr "留空则使用订单地址"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "库存状态"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "退货"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "总计"
@@ -5229,7 +5284,7 @@ msgstr "服务内部错误"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "已登出"
@@ -5257,81 +5312,81 @@ msgstr "MFA登录验证成功"
msgid "MFA details were automatically provided in the browser"
msgstr "浏览器自动提供了MFA验证信息"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "已成功登出"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
msgstr "语言已更改"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
msgstr "您的活动语言已被更改为您个人资料中设置的语言"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
msgstr "主题已更改"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
msgstr "您的活动主题已被更改为您个人资料中设置的主题"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "重置失败"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
msgstr "您已经登陆了"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "此浏览器的服务器上存在冲突会话。请先登出该会话。"
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "已登录"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "已成功登入"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
msgstr "设置 MFA 失败"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
msgstr "MFA 设置成功"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "基于 TOTP 的多因素认证(MFA)设置成功;您需要重新登录。"
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "密码已设置"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "密码设置成功。您现在可以使用新密码登录"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
msgstr "无法更改密码"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
msgstr "两个密码不匹配"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
msgstr "密码已更改"
@@ -5351,38 +5406,10 @@ msgstr "密码已更改"
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "尚未实现"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "此功能尚未实现"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "您无权执行此操作。"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "无效返回码"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "服务器返回状态 {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "超时"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "请求已超时"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
msgstr "正在导出数据"
@@ -5472,7 +5499,7 @@ msgid "Delete selected stock items"
msgstr "删除选中的库存物料"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "库存操作"
@@ -5811,73 +5838,73 @@ msgstr "发生意外错误。"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
msgstr "项目已扫描"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
msgstr "API 错误"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
msgstr "获取实例数据失败"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
msgstr "扫描错误"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "所选元素未知"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "选择多个对象类型"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "操作 ... "
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr "操作 ... "
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
msgstr "条形码扫描"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
msgstr "条形码输入"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "操作"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
msgstr "未选中项目"
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "扫描并选择项目以执行操作"
+
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr "扫描并选择项目以执行操作"
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "已选择 {0} 项"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
msgstr "已扫描项目"
@@ -6593,7 +6620,7 @@ msgstr "点"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "货币"
@@ -6661,11 +6688,11 @@ msgstr "快捷方式"
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
msgstr "首页"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
msgstr "用户与权限"
@@ -6673,27 +6700,27 @@ msgstr "用户与权限"
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "数据导入"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
msgstr "数据导出"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "扫描条码"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "后台任务"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "错误报告"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "币种"
@@ -6701,11 +6728,11 @@ msgstr "币种"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "自定状态"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "自定义单位"
@@ -6715,12 +6742,12 @@ msgstr "自定义单位"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "类别参数"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "位置类型"
@@ -6728,35 +6755,35 @@ msgstr "位置类型"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "设备"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
msgstr "运维管理"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
msgstr "数据管理"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "报告"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
msgstr "产品生命周期管理"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
msgstr "扩展 / 集成"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "高级选项"
@@ -6949,11 +6976,15 @@ msgstr "令牌"
msgid "The settings below are specific to each available plugin"
msgstr "以下设置项为各插件的专属配置"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
msgstr "身份验证"
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "条形码"
@@ -6965,8 +6996,8 @@ msgstr "条形码"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
msgstr "以下设置专属于每种可用的通知方式"
@@ -6974,21 +7005,29 @@ msgstr "以下设置专属于每种可用的通知方式"
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "定价"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "标签"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
msgid "Part Stocktake"
msgstr "零件盘点"
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "库存跟踪"
@@ -6996,15 +7035,15 @@ msgstr "库存跟踪"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "账户"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "安全"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "显示选项"
@@ -7040,15 +7079,15 @@ msgstr "标记为未读"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
msgstr "无必填项"
-#: src/pages/build/BuildDetail.tsx:72
+#: src/pages/build/BuildDetail.tsx:73
msgid "This build order does not have any required items."
msgstr "该生产订单无必填物料。"
-#: src/pages/build/BuildDetail.tsx:73
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
msgstr "该装配件可能未定义物料清单(BOM),或BOM为空。"
@@ -7056,6 +7095,18 @@ msgstr "该装配件可能未定义物料清单(BOM),或BOM为空。"
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "物料清单未验证"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr "该装配件可能未定义物料清单(BOM),或BOM为空。"
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "版本"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
msgstr "自定义状态"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr "自定义状态"
msgid "External"
msgstr "外部"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "参考"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "上级生产"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "生产数量"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "可以创建"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "已出产"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "发布人"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "责任人"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "任意地点"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "目标地点"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "任意地点"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "已创建"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "目标地点"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "已创建"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
msgstr "开始日期"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "预计日期"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "已完成"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "生产详情"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
msgstr "所需零件"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "已分配的库存"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "已消耗库存"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "未出产"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
msgstr "外部订单"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "子生产订单"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "测试结果"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "编辑生产订单"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "添加生产订单"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "取消生产订单"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "订单已取消"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "取消此订单"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "挂起生产订单"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "将此订单挂起"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "挂起订单"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "发出生产订单"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "发出这个订单"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "订单发起"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "完成生产订单"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "标记该订单为已完成"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "订单已完成"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "发布订单"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "完成订单"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "生产订单操作"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "编辑订单"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "复制订单"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "挂起订单"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "取消订单"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7403,7 +7455,7 @@ msgstr "显示外部生产订单"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,7 +7464,7 @@ msgstr "显示外部生产订单"
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
msgstr "表格视图"
@@ -7424,7 +7476,7 @@ msgid "Calendar View"
msgstr "日历视图"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,7 +7485,7 @@ msgstr "日历视图"
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
msgstr "参数视图"
@@ -7470,7 +7522,7 @@ msgstr "制造商"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7534,7 +7586,7 @@ msgstr "外部链接"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "零件详情"
@@ -7633,11 +7685,11 @@ msgid "Add Supplier Part"
msgstr "添加供应商零件"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "无库存"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
@@ -7659,7 +7711,7 @@ msgid "Group Roles"
msgstr "分组角色"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
msgstr "用户信息"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "上级类别"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "子类别"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "默认位置"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "最高级零件类别"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "编辑零件类别"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
msgstr "移动项目到父类别"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "删除项"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "删除零件类别"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "零件操作"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "对此类别中零件的操作"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "子类别操作"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "对此类别中零件的操作"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "类别操作"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "类别详情"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "分配生产订单"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "分配销售订单"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr "正在验证 BOM"
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr "BOM 已验证"
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "验证物料清单"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "您想要验证此装配的材料清单吗?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr "物料清单已验证"
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr "该零件的物料清单已完成验证"
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr "物料清单未验证"
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr "该零件的物料清单已通过历史检验,但需重新验证"
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr "该零件的物料清单尚未完成验证"
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr "验证通过日期"
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr "验证人"
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr "验证人"
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "变体于"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "修订"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr "验证人"
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "变体于"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "修订"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "默认位置"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "类别默认位置"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "单位"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "关键词"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "可用库存"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "订购中"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "订单必填项"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "分配生产订单"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "分配销售订单"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "最低库存"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "已锁定"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "模板零件"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "组装零件"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "组件零件"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "可测试零件"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "可追溯零件"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "可购买零件"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "可销售零件"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "创建日期"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "创建人"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
msgstr "默认有效期"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
msgstr "天"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "价格范围"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "最新序列号"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "选择零件版本"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "变体"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "分配"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "物料清单"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr "最新序列号"
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "选择零件版本"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "变体"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "分配"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "物料清单"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "用于"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "零件价格"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "测试模板"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "关联零件"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "零件已锁定"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "零件参数无法编辑,因为零件已锁定"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "必填"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "不足"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "零件参数无法编辑,因为零件已锁定"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "必填"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr "不足"
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "添加零件"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "删除零件"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "删除此零件无法撤销"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "订单"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "订单库存"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
msgstr "按序列号搜索"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "零件选项"
@@ -8172,7 +8177,7 @@ msgstr "库存数量"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "库存价值"
@@ -8205,10 +8210,152 @@ msgstr "盘点录入"
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr "正在验证 BOM"
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr "BOM 已验证"
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "验证物料清单"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "您想要验证此装配的材料清单吗?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "物料清单已验证"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "该零件的物料清单已完成验证"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "该零件的物料清单已通过历史检验,但需重新验证"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "该零件的物料清单尚未完成验证"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "验证通过日期"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "验证人"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "允许变体"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "继承项"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "可选项"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "消耗品"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "设置数量"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "损耗"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "取整倍数"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "最高价格"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "采购价格"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8476,7 +8623,7 @@ msgstr "签发日期"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
@@ -8655,7 +8802,7 @@ msgid "Not checked"
msgstr "未审查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8743,7 +8890,7 @@ msgid "Parent Location"
msgstr "上级地点"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "次级地点"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "位置类型"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "最高级库存位置"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "位置详细信息"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "默认零件"
@@ -8768,86 +8915,86 @@ msgstr "默认零件"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "编辑库存地点"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
msgstr "移动项目到父位置"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "删除库存地点"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "项目操作"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "对此位置中的库存物品执行的操作"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "位置操作"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "对此位置中的子位置执行的操作"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "对此位置中的子位置执行的操作"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
msgstr "扫描库存物料"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
msgstr "库存物料已扫描入库"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
msgstr "库存物料扫描错误"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
msgstr "扫描库存地点"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
msgstr "库存地点绑定完成"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
msgstr "库存地点扫描错误"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
msgstr "扫描入库库存项"
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
msgstr "扫描物料至该库位"
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
msgstr "扫描入库容器"
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
msgstr "扫描容器至该库位"
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "基础零件"
@@ -8867,7 +9014,7 @@ msgstr "基础零件"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
msgstr "前序序列号"
@@ -8875,35 +9022,35 @@ msgstr "前序序列号"
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
msgstr "查找序列号"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "下一个序列号"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "分配到订单"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "安装于"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "上级项目"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "上级库存项"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "消耗者"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "最近库存盘点"
@@ -8911,7 +9058,7 @@ msgstr "最近库存盘点"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "库存详情"
@@ -8919,15 +9066,15 @@ msgstr "库存详情"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "已安装的项目"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "子项目"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "编辑库存项"
@@ -8941,20 +9088,24 @@ msgstr "编辑库存项"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
msgstr "物料已创建"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
msgstr "已创建 {n} 个库存物料"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "删除库存项"
@@ -8966,44 +9117,44 @@ msgstr "删除库存项"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "序列化库存"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "序列化库存"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "库存项已创建"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
msgstr "扫码入库至指定位置"
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr "扫码入库"
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr "将此物料扫码入库至指定库位"
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "库存操作"
-
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "扫码入库"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "将此物料扫码入库至指定库位"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "库存操作"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "序列化"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "序列化库存"
@@ -9011,14 +9162,22 @@ msgstr "序列化库存"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "库存项操作"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "库存项操作"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,17 +9186,17 @@ msgstr "库存项操作"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
msgstr "呆滞"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
msgstr "已过期"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
msgstr "不可用"
@@ -9116,27 +9275,22 @@ msgstr "无可用库存"
msgid "This stock item has been depleted"
msgstr "库存项已耗尽"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "库存信息"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "已分配的项目"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
msgstr "行项目"
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "选择列"
-
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
#~ msgstr "Excel"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "过滤器"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "表格筛选"
@@ -9435,12 +9589,12 @@ msgstr "添加过滤条件"
msgid "Clear Filters"
msgstr "清除筛选"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "没有找到记录"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
msgstr "表格选项加载错误"
@@ -9468,7 +9622,7 @@ msgstr "表格选项加载错误"
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "服务器返回了错误的数据类型"
@@ -9477,7 +9631,7 @@ msgstr "服务器返回了错误的数据类型"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
msgstr "表格数据加载错误"
@@ -9494,49 +9648,49 @@ msgstr "表格数据加载错误"
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
msgstr "查看详情"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
msgstr "{model} 视图"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "删除所选项目"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "确定要删除所选的项目吗?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
msgstr "该操作无法撤销"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
msgstr "物料已删除"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
msgstr "删除物料失败"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
msgstr "当前启用了自定义表格筛选器"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "删除选中的记录"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "刷新数据"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
msgstr "当前生效的筛选条件"
@@ -9548,71 +9702,66 @@ msgstr "当前生效的筛选条件"
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "此物料清单项目是为另一个上级定义的"
-#: src/tables/bom/BomTable.tsx:114
-msgid "Part Information"
-msgstr "零件信息"
-
-#: src/tables/bom/BomTable.tsx:117
+#: src/tables/bom/BomTable.tsx:122
msgid "This BOM item has not been validated"
msgstr "该物料清单物料未经验证"
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:145
+msgid "Part Information"
+msgstr "零件信息"
+
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
msgstr "替代料"
-#: src/tables/bom/BomTable.tsx:296
+#: src/tables/bom/BomTable.tsx:301
+#~ msgid "Create BOM Item"
+#~ msgstr "Create BOM Item"
+
+#: src/tables/bom/BomTable.tsx:310
+#~ msgid "Show asssmbled items"
+#~ msgstr "Show asssmbled items"
+
+#: src/tables/bom/BomTable.tsx:319
#: src/tables/sales/SalesOrderLineItemTable.tsx:137
#: src/tables/sales/SalesOrderLineItemTable.tsx:195
#: src/tables/sales/SalesOrderLineItemTable.tsx:212
msgid "Virtual part"
msgstr "虚拟零件"
-#: src/tables/bom/BomTable.tsx:301
-#~ msgid "Create BOM Item"
-#~ msgstr "Create BOM Item"
+#: src/tables/bom/BomTable.tsx:331
+#~ msgid "Edit Bom Item"
+#~ msgstr "Edit Bom Item"
-#: src/tables/bom/BomTable.tsx:309
+#: src/tables/bom/BomTable.tsx:332
#: src/tables/build/BuildLineTable.tsx:282
#: src/tables/part/PartTable.tsx:146
msgid "External stock"
msgstr "外部库存"
-#: src/tables/bom/BomTable.tsx:310
-#~ msgid "Show asssmbled items"
-#~ msgstr "Show asssmbled items"
-
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "包括替代库存"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-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:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "正在生产"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "包括替代库存"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "包括变体库存"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "正在生产"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "正在生产"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "可耗物品"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "无可用库存"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "显示可跟踪项目"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "显示可跟踪项目"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "激活的零件"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
msgstr "显示有效项"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "显示已装配的项目"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
msgstr "显示虚拟项"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "显示有可用库存的项目"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "按顺序显示项目"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "已验证"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "显示已验证的项目"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "继承项"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "显示继承的项目"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "允许变体"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "显示允许变体替换的项目"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "可选项"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "显示可选项目"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "消耗品"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "显示可消耗项目"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "是否有价格"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "显示带定价的项目"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "导入物料清单数据"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "添加物料清单项"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "BOM 项目已创建"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "编辑物料清单项目"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "物料清单 项目已更新"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "删除物料清单项目"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "物料清单项目已删除"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "物料清单项目已验证"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "验证物料清单项目失败"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "查看 物料清单"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "验证物料清单行"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "编辑替代零件"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
msgstr "添加物料清单项目"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
msgstr "添加单个物料清单项目"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
msgstr "从文件导入"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
msgstr "从文件导入物料清单项目"
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "无法编辑材料清单,因为零件已锁定"
@@ -9966,18 +10108,6 @@ msgstr "获取已继承的"
msgid "Unit Quantity"
msgstr "单位数量"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr "设置数量"
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr "损耗"
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr "取整倍数"
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
msgstr "物料清单信息"
@@ -10361,10 +10491,6 @@ msgstr "找不到附件。"
msgid "Drag attachment file here to upload"
msgstr "拖拽附件文件到此处上传"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "项目"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "型号"
@@ -10456,59 +10582,59 @@ msgstr "创建一个新参数"
msgid "Import parameters from a file"
msgstr "从文件导入参数"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "添加参数模板"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
msgstr "重复参数模板"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "删除零件参数模板"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "编辑参数模板"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "勾选框"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "显示复选框模板"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "有选项"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "显示有选项的模板"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "有单位"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "显示有单位的模板"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
msgstr "显示已启用的模板"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "型号类型"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
msgstr "按型号类型筛选"
@@ -11623,7 +11749,7 @@ msgstr "按行项目状态筛选"
msgid "Receive selected items"
msgstr "接收选中项目"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "接收物品"
diff --git a/src/frontend/src/locales/zh_Hant/messages.po b/src/frontend/src/locales/zh_Hant/messages.po
index d0c8abfba7..c09b7863aa 100644
--- a/src/frontend/src/locales/zh_Hant/messages.po
+++ b/src/frontend/src/locales/zh_Hant/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-04-11 03:27\n"
+"PO-Revision-Date: 2026-05-03 02:22\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,9 +18,29 @@ msgstr ""
"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 252\n"
+#: lib/components/Boundary.tsx:14
+msgid "Error rendering component"
+msgstr "渲染組件出錯"
+
+#: lib/components/Boundary.tsx:17
+msgid "An error occurred while rendering this component. Refer to the console for more information."
+msgstr "渲染此組件時發生錯誤。請參閲控制枱獲取更多信息。"
+
+#: lib/components/Boundary.tsx:18
+msgid "Try reloading the page, or contact your administrator if the problem persists."
+msgstr ""
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copied"
+msgstr "已複製"
+
+#: lib/components/CopyButton.tsx:49
+msgid "Copy"
+msgstr "複製"
+
#: lib/components/RowActions.tsx:36
#: src/components/items/ActionDropdown.tsx:289
-#: src/pages/Index/Scan.tsx:64
+#: src/pages/Index/Scan.tsx:62
msgid "Duplicate"
msgstr "複製"
@@ -30,7 +50,7 @@ msgid "Edit"
msgstr "編輯"
#: lib/components/RowActions.tsx:56
-#: src/components/forms/ApiForm.tsx:770
+#: src/components/forms/ApiForm.tsx:769
#: src/components/items/ActionDropdown.tsx:257
#: src/components/items/RoleTable.tsx:155
#: src/hooks/UseForm.tsx:170
@@ -40,7 +60,7 @@ msgid "Delete"
msgstr "刪除"
#: lib/components/RowActions.tsx:66
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:188
#: src/components/items/ActionDropdown.tsx:277
#: src/components/items/ActionDropdown.tsx:278
@@ -56,7 +76,7 @@ msgstr "取消"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
-#: src/forms/PurchaseOrderForms.tsx:891
+#: src/forms/PurchaseOrderForms.tsx:902
#: src/forms/StockForms.tsx:805
#: src/forms/StockForms.tsx:852
#: src/forms/StockForms.tsx:905
@@ -68,15 +88,20 @@ msgid "Actions"
msgstr "操作"
#: lib/components/SearchInput.tsx:34
-#: src/components/forms/fields/RelatedModelField.tsx:493
+#: src/components/forms/fields/RelatedModelField.tsx:523
#: src/components/nav/Header.tsx:190
#: src/components/wizards/ImportPartWizard.tsx:200
#: src/components/wizards/ImportPartWizard.tsx:233
-#: src/pages/Index/Settings/UserSettings.tsx:75
-#: src/pages/part/PartDetail.tsx:1168
+#: src/pages/Index/Settings/UserSettings.tsx:77
+#: src/pages/part/PartDetail.tsx:1067
msgid "Search"
msgstr "搜尋"
+#: lib/components/TableColumnSelect.tsx:16
+#: lib/components/TableColumnSelect.tsx:23
+msgid "Select Columns"
+msgstr "選擇列"
+
#: lib/components/YesNoButton.tsx:20
msgid "Pass"
msgstr "通過"
@@ -98,16 +123,16 @@ msgid "No"
msgstr "否"
#: lib/enums/ModelInformation.tsx:29
-#: src/components/wizards/OrderPartsWizard.tsx:279
-#: src/forms/BuildForms.tsx:364
-#: src/forms/BuildForms.tsx:441
-#: src/forms/BuildForms.tsx:511
-#: src/forms/BuildForms.tsx:669
-#: src/forms/BuildForms.tsx:833
-#: src/forms/BuildForms.tsx:936
-#: src/forms/PurchaseOrderForms.tsx:887
+#: src/components/wizards/OrderPartsWizard.tsx:281
+#: src/forms/BuildForms.tsx:357
+#: src/forms/BuildForms.tsx:434
+#: src/forms/BuildForms.tsx:504
+#: src/forms/BuildForms.tsx:662
+#: src/forms/BuildForms.tsx:826
+#: src/forms/BuildForms.tsx:929
+#: src/forms/PurchaseOrderForms.tsx:898
#: src/forms/ReturnOrderForms.tsx:244
-#: src/forms/SalesOrderForms.tsx:429
+#: src/forms/SalesOrderForms.tsx:434
#: src/forms/StockForms.tsx:368
#: src/forms/StockForms.tsx:800
#: src/forms/StockForms.tsx:847
@@ -118,8 +143,9 @@ msgstr "否"
#: src/forms/StockForms.tsx:1095
#: src/forms/StockForms.tsx:1143
#: src/forms/StockForms.tsx:1187
-#: src/pages/build/BuildDetail.tsx:219
-#: src/pages/part/PartDetail.tsx:1220
+#: src/pages/build/BuildDetail.tsx:237
+#: src/pages/part/PartDetail.tsx:1119
+#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:91
#: src/tables/build/BuildOrderParametricTable.tsx:26
#: src/tables/part/PartTestResultTable.tsx:247
@@ -130,15 +156,15 @@ msgid "Part"
msgstr "零件"
#: lib/enums/ModelInformation.tsx:30
-#: lib/enums/Roles.tsx:35
+#: lib/enums/Roles.tsx:36
#: src/components/nav/NavigationDrawer.tsx:70
#: src/defaults/links.tsx:36
-#: src/pages/Index/Settings/SystemSettings.tsx:199
+#: src/pages/Index/Settings/SystemSettings.tsx:200
#: src/pages/part/CategoryDetail.tsx:135
-#: src/pages/part/CategoryDetail.tsx:285
-#: src/pages/part/CategoryDetail.tsx:340
-#: src/pages/part/CategoryDetail.tsx:371
-#: src/pages/part/PartDetail.tsx:956
+#: src/pages/part/CategoryDetail.tsx:282
+#: src/pages/part/CategoryDetail.tsx:337
+#: src/pages/part/CategoryDetail.tsx:368
+#: src/pages/part/PartDetail.tsx:855
msgid "Parts"
msgstr "零件"
@@ -153,14 +179,14 @@ msgstr "零件"
#: lib/enums/ModelInformation.tsx:39
msgid "Parameter"
-msgstr ""
+msgstr "參數"
#: lib/enums/ModelInformation.tsx:40
#: src/components/panels/ParametersPanel.tsx:21
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:195
-#: src/pages/Index/Settings/SystemSettings.tsx:193
-#: src/pages/part/PartDetail.tsx:920
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:196
+#: src/pages/Index/Settings/SystemSettings.tsx:194
+#: src/pages/part/PartDetail.tsx:811
msgid "Parameters"
msgstr "參數"
@@ -172,7 +198,7 @@ msgstr "參數模板"
#: lib/enums/ModelInformation.tsx:46
#: src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx:13
msgid "Parameter Templates"
-msgstr ""
+msgstr "參數模板"
#: lib/enums/ModelInformation.tsx:52
msgid "Part Test Template"
@@ -183,9 +209,9 @@ msgid "Part Test Templates"
msgstr "零件測試模板"
#: lib/enums/ModelInformation.tsx:59
-#: src/components/wizards/OrderPartsWizard.tsx:290
+#: src/components/wizards/OrderPartsWizard.tsx:293
#: src/pages/company/SupplierPartDetail.tsx:419
-#: src/pages/stock/StockDetail.tsx:289
+#: src/pages/stock/StockDetail.tsx:290
#: src/tables/build/BuildAllocatedStockTable.tsx:152
#: src/tables/part/PartPurchaseOrdersTable.tsx:50
#: src/tables/purchasing/SupplierPartParametricTable.tsx:29
@@ -213,25 +239,25 @@ msgid "Manufacturer Parts"
msgstr "製造商零件"
#: lib/enums/ModelInformation.tsx:79
-#: src/pages/part/CategoryDetail.tsx:371
+#: src/pages/part/CategoryDetail.tsx:368
#: src/tables/Filter.tsx:449
msgid "Part Category"
msgstr "零件類別"
#: lib/enums/ModelInformation.tsx:80
-#: lib/enums/Roles.tsx:37
-#: src/pages/part/CategoryDetail.tsx:279
-#: src/pages/part/CategoryDetail.tsx:362
-#: src/pages/part/PartDetail.tsx:1209
+#: lib/enums/Roles.tsx:38
+#: src/pages/part/CategoryDetail.tsx:276
+#: src/pages/part/CategoryDetail.tsx:359
+#: src/pages/part/PartDetail.tsx:1108
msgid "Part Categories"
msgstr "零件類別"
#: lib/enums/ModelInformation.tsx:88
-#: src/forms/BuildForms.tsx:512
-#: src/forms/BuildForms.tsx:672
-#: src/forms/BuildForms.tsx:834
-#: src/forms/SalesOrderForms.tsx:431
-#: src/pages/stock/StockDetail.tsx:1008
+#: src/forms/BuildForms.tsx:505
+#: src/forms/BuildForms.tsx:665
+#: src/forms/BuildForms.tsx:827
+#: src/forms/SalesOrderForms.tsx:436
+#: src/pages/stock/StockDetail.tsx:1030
#: src/tables/ColumnRenderers.tsx:129
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -242,25 +268,25 @@ msgid "Stock Item"
msgstr "庫存項"
#: lib/enums/ModelInformation.tsx:89
-#: lib/enums/Roles.tsx:45
+#: lib/enums/Roles.tsx:46
#: src/pages/company/CompanyDetail.tsx:211
-#: src/pages/part/CategoryDetail.tsx:314
+#: src/pages/part/CategoryDetail.tsx:311
#: src/pages/part/PartStockHistoryDetail.tsx:117
#: src/pages/stock/LocationDetail.tsx:130
-#: src/pages/stock/LocationDetail.tsx:211
+#: src/pages/stock/LocationDetail.tsx:208
msgid "Stock Items"
msgstr "庫存項"
#: lib/enums/ModelInformation.tsx:98
-#: lib/enums/Roles.tsx:47
-#: src/pages/stock/LocationDetail.tsx:457
+#: lib/enums/Roles.tsx:48
+#: src/pages/stock/LocationDetail.tsx:454
msgid "Stock Location"
msgstr "庫存地點"
#: lib/enums/ModelInformation.tsx:99
-#: src/pages/stock/LocationDetail.tsx:185
-#: src/pages/stock/LocationDetail.tsx:449
-#: src/pages/stock/StockDetail.tsx:999
+#: src/pages/stock/LocationDetail.tsx:182
+#: src/pages/stock/LocationDetail.tsx:446
+#: src/pages/stock/StockDetail.tsx:1021
msgid "Stock Locations"
msgstr "庫存地點"
@@ -273,8 +299,7 @@ msgid "Stock Location Types"
msgstr "庫存地點類型"
#: lib/enums/ModelInformation.tsx:114
-#: src/pages/Index/Settings/SystemSettings.tsx:257
-#: src/pages/part/PartDetail.tsx:877
+#: src/pages/part/PartDetail.tsx:768
msgid "Stock History"
msgstr "庫存歷史記錄"
@@ -319,26 +344,26 @@ msgid "Companies"
msgstr "公司"
#: lib/enums/ModelInformation.tsx:152
-#: src/pages/build/BuildDetail.tsx:335
+#: src/pages/build/BuildDetail.tsx:353
#: src/pages/purchasing/PurchaseOrderDetail.tsx:254
#: src/pages/sales/ReturnOrderDetail.tsx:232
#: src/pages/sales/SalesOrderDetail.tsx:225
-#: src/tables/ColumnRenderers.tsx:566
+#: src/tables/ColumnRenderers.tsx:563
#: src/tables/Filter.tsx:346
#: src/tables/TableHoverCard.tsx:101
msgid "Project Code"
msgstr "項目編碼"
#: lib/enums/ModelInformation.tsx:153
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:172
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:173
msgid "Project Codes"
msgstr "項目編碼"
#: lib/enums/ModelInformation.tsx:159
-#: src/components/wizards/OrderPartsWizard.tsx:338
+#: src/components/wizards/OrderPartsWizard.tsx:341
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:565
-#: src/pages/stock/StockDetail.tsx:352
+#: src/pages/stock/StockDetail.tsx:353
#: src/tables/part/PartPurchaseOrdersTable.tsx:32
#: src/tables/stock/StockItemTable.tsx:91
#: src/tables/stock/StockTrackingTable.tsx:152
@@ -346,12 +371,12 @@ msgid "Purchase Order"
msgstr "採購訂單"
#: lib/enums/ModelInformation.tsx:160
-#: lib/enums/Roles.tsx:39
+#: lib/enums/Roles.tsx:40
#: src/defaults/actions.tsx:106
-#: src/pages/Index/Settings/SystemSettings.tsx:303
+#: src/pages/Index/Settings/SystemSettings.tsx:313
#: src/pages/company/CompanyDetail.tsx:204
#: src/pages/company/SupplierPartDetail.tsx:267
-#: src/pages/part/PartDetail.tsx:841
+#: src/pages/part/PartDetail.tsx:732
#: src/pages/purchasing/PurchasingIndex.tsx:66
msgid "Purchase Orders"
msgstr "採購訂單"
@@ -365,12 +390,12 @@ msgid "Purchase Order Lines"
msgstr "採購訂單行"
#: lib/enums/ModelInformation.tsx:175
-#: src/pages/build/BuildDetail.tsx:308
+#: src/pages/build/BuildDetail.tsx:326
#: src/pages/part/pricing/SaleHistoryPanel.tsx:24
#: src/pages/sales/SalesOrderDetail.tsx:629
#: src/pages/sales/SalesOrderShipmentDetail.tsx:102
#: src/pages/sales/SalesOrderShipmentDetail.tsx:440
-#: src/pages/stock/StockDetail.tsx:361
+#: src/pages/stock/StockDetail.tsx:362
#: src/tables/part/PartSalesAllocationsTable.tsx:42
#: src/tables/sales/SalesOrderAllocationTable.tsx:111
#: src/tables/sales/SalesOrderShipmentTable.tsx:136
@@ -379,11 +404,11 @@ msgid "Sales Order"
msgstr "銷售訂單"
#: lib/enums/ModelInformation.tsx:176
-#: lib/enums/Roles.tsx:43
+#: lib/enums/Roles.tsx:44
#: src/defaults/actions.tsx:116
-#: src/pages/Index/Settings/SystemSettings.tsx:319
+#: src/pages/Index/Settings/SystemSettings.tsx:331
#: src/pages/company/CompanyDetail.tsx:224
-#: src/pages/part/PartDetail.tsx:853
+#: src/pages/part/PartDetail.tsx:744
#: src/pages/sales/SalesIndex.tsx:53
msgid "Sales Orders"
msgstr "銷售訂單"
@@ -404,11 +429,11 @@ msgid "Return Order"
msgstr "退貨訂單"
#: lib/enums/ModelInformation.tsx:195
-#: lib/enums/Roles.tsx:41
+#: lib/enums/Roles.tsx:42
#: src/defaults/actions.tsx:127
-#: src/pages/Index/Settings/SystemSettings.tsx:336
+#: src/pages/Index/Settings/SystemSettings.tsx:342
#: src/pages/company/CompanyDetail.tsx:231
-#: src/pages/part/PartDetail.tsx:860
+#: src/pages/part/PartDetail.tsx:751
#: src/pages/sales/SalesIndex.tsx:99
msgid "Return Orders"
msgstr "退貨訂單"
@@ -442,12 +467,12 @@ msgstr "聯繫人"
#: lib/enums/ModelInformation.tsx:218
#: src/pages/company/CompanyDetail.tsx:260
-#: src/pages/core/CoreIndex.tsx:33
+#: src/pages/core/CoreIndex.tsx:34
msgid "Contacts"
msgstr "聯繫人"
#: lib/enums/ModelInformation.tsx:224
-#: src/tables/ColumnRenderers.tsx:648
+#: src/tables/ColumnRenderers.tsx:645
msgid "Owner"
msgstr "所有者"
@@ -458,7 +483,7 @@ msgstr "所有者"
#: lib/enums/ModelInformation.tsx:231
#: src/pages/Auth/ChangePassword.tsx:36
#: src/pages/core/UserDetail.tsx:220
-#: src/tables/ColumnRenderers.tsx:599
+#: src/tables/ColumnRenderers.tsx:596
#: src/tables/Filter.tsx:395
#: src/tables/settings/ApiTokenTable.tsx:107
#: src/tables/settings/ApiTokenTable.tsx:127
@@ -473,7 +498,7 @@ msgstr "用户"
#: lib/enums/ModelInformation.tsx:232
#: src/components/nav/NavigationDrawer.tsx:105
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:15
-#: src/pages/core/CoreIndex.tsx:21
+#: src/pages/core/CoreIndex.tsx:22
#: src/pages/core/UserDetail.tsx:226
msgid "Users"
msgstr "用户"
@@ -486,7 +511,7 @@ msgstr "羣組"
#: lib/enums/ModelInformation.tsx:239
#: src/components/nav/NavigationDrawer.tsx:111
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:23
-#: src/pages/core/CoreIndex.tsx:27
+#: src/pages/core/CoreIndex.tsx:28
#: src/pages/core/GroupDetail.tsx:82
#: src/pages/core/UserDetail.tsx:99
#: src/tables/settings/UserTable.tsx:276
@@ -506,7 +531,7 @@ msgid "Label Template"
msgstr "標籤模板"
#: lib/enums/ModelInformation.tsx:255
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:209
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:210
msgid "Label Templates"
msgstr "標籤模板"
@@ -515,7 +540,7 @@ msgid "Report Template"
msgstr "報告模板"
#: lib/enums/ModelInformation.tsx:263
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:215
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:216
msgid "Report Templates"
msgstr "報告模板"
@@ -547,17 +572,17 @@ msgstr "選擇列表"
#: lib/enums/ModelInformation.tsx:291
msgid "Selection Entry"
-msgstr ""
+msgstr "選取項目"
#: lib/enums/ModelInformation.tsx:292
msgid "Selection Entries"
-msgstr ""
+msgstr "選取項目 (多筆)"
#: lib/enums/ModelInformation.tsx:298
#: src/components/barcodes/BarcodeInput.tsx:114
#: src/components/buttons/StarredToggleButton.tsx:46
-#: src/components/dashboard/DashboardLayout.tsx:281
-#: src/components/editors/NotesEditor.tsx:74
+#: src/components/dashboard/DashboardLayout.tsx:284
+#: src/components/editors/NotesEditor.tsx:81
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158
#: src/components/forms/fields/ApiFormField.tsx:251
#: src/components/forms/fields/TableField.tsx:45
@@ -571,8 +596,8 @@ msgstr ""
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
-#: src/forms/BomForms.tsx:74
-#: src/functions/auth.tsx:687
+#: src/forms/BomForms.tsx:80
+#: src/functions/auth.tsx:691
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -582,8 +607,8 @@ msgstr ""
#: src/pages/part/PartPricingPanel.tsx:71
#: src/states/IconState.tsx:46
#: src/states/IconState.tsx:76
-#: src/tables/InvenTreeTableHeader.tsx:124
-#: src/tables/bom/BomTable.tsx:557
+#: src/tables/InvenTreeTableHeader.tsx:128
+#: src/tables/bom/BomTable.tsx:581
#: src/tables/settings/EmailTable.tsx:109
#: src/tables/stock/StockItemTestResultTable.tsx:338
msgid "Error"
@@ -595,35 +620,60 @@ msgstr "錯誤"
msgid "Errors"
msgstr "錯誤"
-#: lib/enums/Roles.tsx:31
+#: lib/enums/Roles.tsx:32
msgid "Admin"
msgstr "管理"
-#: lib/enums/Roles.tsx:33
+#: lib/enums/Roles.tsx:34
#: src/defaults/actions.tsx:146
-#: src/pages/Index/Settings/SystemSettings.tsx:284
+#: src/pages/Index/Settings/SystemSettings.tsx:293
#: src/pages/build/BuildIndex.tsx:67
-#: src/pages/part/PartDetail.tsx:870
+#: src/pages/part/PartDetail.tsx:761
#: src/pages/sales/SalesOrderDetail.tsx:431
msgid "Build Orders"
msgstr "生產訂單"
+#: lib/functions/Notification.tsx:11
+msgid "Not implemented"
+msgstr "尚未實現"
+
+#: lib/functions/Notification.tsx:12
+msgid "This feature is not yet implemented"
+msgstr "此功能尚未實現"
+
+#: lib/functions/Notification.tsx:23
+#: src/components/errors/PermissionDenied.tsx:8
+msgid "Permission Denied"
+msgstr "權限受限"
+
+#: lib/functions/Notification.tsx:24
+msgid "You do not have permission to perform this action"
+msgstr "您無權執行此操作。"
+
+#: lib/functions/Notification.tsx:35
+msgid "Invalid Return Code"
+msgstr "無效返回碼"
+
+#: lib/functions/Notification.tsx:36
+msgid "Server returned status {returnCode}"
+msgstr "服務器返回狀態 {returnCode}"
+
+#: lib/functions/Notification.tsx:46
+msgid "Timeout"
+msgstr "超時"
+
+#: lib/functions/Notification.tsx:47
+msgid "The request timed out"
+msgstr "請求已超時"
+
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
msgid "Process failed"
-msgstr ""
+msgstr "處理失敗"
#: lib/hooks/MonitorDataOutput.tsx:75
msgid "Process completed successfully"
-msgstr ""
-
-#: src/components/Boundary.tsx:14
-msgid "Error rendering component"
-msgstr "渲染組件出錯"
-
-#: src/components/Boundary.tsx:16
-msgid "An error occurred while rendering this component. Refer to the console for more information."
-msgstr "渲染此組件時發生錯誤。請參閲控制枱獲取更多信息。"
+msgstr "處理成功完成"
#: src/components/DashboardItemProxy.tsx:34
#~ msgid "Title"
@@ -688,8 +738,8 @@ msgstr "輸入條碼資料"
#: src/components/barcodes/BarcodeScanDialog.tsx:56
#: src/components/buttons/ScanButton.tsx:27
#: src/components/nav/NavigationDrawer.tsx:122
-#: src/forms/PurchaseOrderForms.tsx:507
-#: src/forms/PurchaseOrderForms.tsx:648
+#: src/forms/PurchaseOrderForms.tsx:518
+#: src/forms/PurchaseOrderForms.tsx:659
msgid "Scan Barcode"
msgstr "掃描條碼"
@@ -699,28 +749,28 @@ msgstr "找不到符合的項目"
#: src/components/barcodes/BarcodeScanDialog.tsx:150
msgid "Barcode does not match the expected model type"
-msgstr ""
+msgstr "條碼與預期的型號不符"
#: src/components/barcodes/BarcodeScanDialog.tsx:161
-#: src/components/editors/NotesEditor.tsx:84
-#: src/components/editors/NotesEditor.tsx:118
-#: src/components/forms/ApiForm.tsx:496
+#: src/components/editors/NotesEditor.tsx:91
+#: src/components/editors/NotesEditor.tsx:125
+#: src/components/forms/ApiForm.tsx:495
#: src/components/wizards/ImportPartWizard.tsx:566
#: src/components/wizards/ImportPartWizard.tsx:691
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:45
-#: src/tables/bom/BomTable.tsx:548
+#: src/tables/bom/BomTable.tsx:572
#: src/tables/settings/PendingTasksTable.tsx:68
msgid "Success"
msgstr "操作成功"
#: src/components/barcodes/BarcodeScanDialog.tsx:167
msgid "Failed to handle barcode"
-msgstr ""
+msgstr "條碼處理失敗"
#: src/components/barcodes/BarcodeScanDialog.tsx:183
-#: src/pages/Index/Scan.tsx:129
+#: src/pages/Index/Scan.tsx:127
msgid "Failed to scan barcode"
-msgstr ""
+msgstr "條碼掃描失敗"
#: src/components/barcodes/QRCode.tsx:94
msgid "Low (7%)"
@@ -756,15 +806,15 @@ msgstr "選擇錯誤糾正級別"
#: src/components/barcodes/QRCode.tsx:170
msgid "Failed to link barcode"
-msgstr ""
+msgstr "條碼關聯失敗"
#: src/components/barcodes/QRCode.tsx:179
-#: src/pages/part/PartDetail.tsx:498
+#: src/pages/part/PartDetail.tsx:371
#: src/pages/purchasing/PurchaseOrderDetail.tsx:223
#: src/pages/sales/ReturnOrderDetail.tsx:189
#: src/pages/sales/SalesOrderDetail.tsx:182
#: src/pages/sales/SalesOrderShipmentDetail.tsx:119
-#: src/pages/stock/StockDetail.tsx:186
+#: src/pages/stock/StockDetail.tsx:187
msgid "Link"
msgstr "鏈接"
@@ -774,7 +824,7 @@ msgstr "這將刪除關聯條碼的鏈接"
#: src/components/barcodes/QRCode.tsx:205
#: src/components/items/ActionDropdown.tsx:192
-#: src/forms/PurchaseOrderForms.tsx:638
+#: src/forms/PurchaseOrderForms.tsx:649
msgid "Unlink Barcode"
msgstr "解綁條碼"
@@ -786,21 +836,13 @@ msgstr "在管理員界面打開"
#~ msgid "Copy to clipboard"
#~ msgstr "Copy to clipboard"
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copied"
-msgstr "已複製"
-
-#: src/components/buttons/CopyButton.tsx:50
-msgid "Copy"
-msgstr "複製"
-
#: src/components/buttons/PrintingActions.tsx:56
msgid "Printing Labels"
-msgstr ""
+msgstr "列印標籤"
#: src/components/buttons/PrintingActions.tsx:61
msgid "Printing Reports"
-msgstr ""
+msgstr "列印報告"
#: src/components/buttons/PrintingActions.tsx:77
#~ msgid "Printing"
@@ -857,7 +899,7 @@ msgstr "移除此行"
#: src/components/buttons/SSOButton.tsx:40
msgid "You will be redirected to the provider for further actions."
-msgstr ""
+msgstr "您將被重新導向至提供者以進行後續操作。"
#: src/components/buttons/SSOButton.tsx:44
#~ msgid "This provider is not full set up."
@@ -885,15 +927,15 @@ msgstr "打開聚焦"
#: src/components/buttons/StarredToggleButton.tsx:36
msgid "Subscription Updated"
-msgstr ""
+msgstr "訂閱已更新"
#: src/components/buttons/StarredToggleButton.tsx:38
msgid "Subscription removed"
-msgstr ""
+msgstr "已移除訂閱"
#: src/components/buttons/StarredToggleButton.tsx:38
msgid "Subscription added"
-msgstr ""
+msgstr "已新增訂閱"
#: src/components/buttons/StarredToggleButton.tsx:57
#~ msgid "Unsubscribe from part"
@@ -901,28 +943,28 @@ msgstr ""
#: src/components/buttons/StarredToggleButton.tsx:66
msgid "Unsubscribe from notifications"
-msgstr ""
+msgstr "取消訂閱通知"
#: src/components/buttons/StarredToggleButton.tsx:67
msgid "Subscribe to notifications"
-msgstr ""
+msgstr "訂閱通知"
#: src/components/calendar/Calendar.tsx:118
#: src/components/calendar/Calendar.tsx:181
msgid "Calendar Filters"
-msgstr ""
+msgstr "日曆過濾器"
#: src/components/calendar/Calendar.tsx:133
msgid "Previous month"
-msgstr ""
+msgstr "上個月"
#: src/components/calendar/Calendar.tsx:142
msgid "Select month"
-msgstr ""
+msgstr "選擇月份"
#: src/components/calendar/Calendar.tsx:163
msgid "Next month"
-msgstr ""
+msgstr "下個月"
#: src/components/calendar/Calendar.tsx:178
#: src/tables/InvenTreeTableHeader.tsx:294
@@ -930,39 +972,39 @@ msgstr ""
#~ msgstr "Download data"
#: src/components/calendar/Calendar.tsx:194
-#: src/tables/InvenTreeTableHeader.tsx:288
+#: src/tables/InvenTreeTableHeader.tsx:292
msgid "Export data"
-msgstr ""
+msgstr "匯出資料"
#: src/components/calendar/OrderCalendar.tsx:132
msgid "Order Updated"
-msgstr ""
+msgstr "訂單已更新"
#: src/components/calendar/OrderCalendar.tsx:142
msgid "Error updating order"
-msgstr ""
+msgstr "更新訂單時發生錯誤"
#: src/components/calendar/OrderCalendar.tsx:178
#: src/tables/Filter.tsx:194
msgid "Overdue"
msgstr "逾期"
-#: src/components/dashboard/DashboardLayout.tsx:282
+#: src/components/dashboard/DashboardLayout.tsx:285
msgid "Failed to load dashboard widgets."
-msgstr ""
-
-#: src/components/dashboard/DashboardLayout.tsx:293
-msgid "No Widgets Selected"
-msgstr ""
+msgstr "無法載入儀表板小工具。"
#: src/components/dashboard/DashboardLayout.tsx:296
+msgid "No Widgets Selected"
+msgstr "未選擇小工具"
+
+#: src/components/dashboard/DashboardLayout.tsx:299
msgid "Use the menu to add widgets to the dashboard"
-msgstr ""
+msgstr "使用選單將小工具新增至儀表板"
#: src/components/dashboard/DashboardMenu.tsx:62
#: src/components/dashboard/DashboardMenu.tsx:138
msgid "Accept Layout"
-msgstr ""
+msgstr "接受版面配置"
#: src/components/dashboard/DashboardMenu.tsx:94
#: src/components/nav/NavigationDrawer.tsx:64
@@ -978,35 +1020,35 @@ msgstr "編輯佈局"
#: src/components/dashboard/DashboardMenu.tsx:111
msgid "Add Widget"
-msgstr ""
+msgstr "新增小工具"
#: src/components/dashboard/DashboardMenu.tsx:120
msgid "Remove Widgets"
-msgstr ""
+msgstr "移除小工具"
#: src/components/dashboard/DashboardMenu.tsx:129
msgid "Clear Widgets"
-msgstr ""
+msgstr "清除小工具"
#: src/components/dashboard/DashboardWidget.tsx:81
msgid "Remove this widget from the dashboard"
-msgstr ""
+msgstr "從儀表板移除此小工具"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:77
msgid "Filter dashboard widgets"
-msgstr ""
+msgstr "過濾儀表板小工具"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:98
msgid "Add this widget to the dashboard"
-msgstr ""
+msgstr "將此小工具新增至儀表板"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:123
msgid "No Widgets Available"
-msgstr ""
+msgstr "沒有可用的小工具"
#: src/components/dashboard/DashboardWidgetDrawer.tsx:124
msgid "There are no more widgets available for the dashboard"
-msgstr ""
+msgstr "儀表板沒有更多可用的小工具"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:25
msgid "Subscribed Parts"
@@ -1014,7 +1056,7 @@ msgstr "已訂購零件"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:26
msgid "Show the number of parts which you have subscribed to"
-msgstr ""
+msgstr "顯示您已訂閱的零件數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:32
msgid "Subscribed Categories"
@@ -1022,15 +1064,15 @@ msgstr "已訂閲類別"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:33
msgid "Show the number of part categories which you have subscribed to"
-msgstr ""
+msgstr "顯示您已訂閱的零件類別數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:42
msgid "Invalid BOMs"
-msgstr ""
+msgstr "無效的 BOM"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:43
msgid "Assemblies requiring bill of materials validation"
-msgstr ""
+msgstr "需要驗證材料清單 (BOM) 的組件"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:54
#: src/tables/part/PartTable.tsx:264
@@ -1039,7 +1081,7 @@ msgstr "低庫存"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:56
msgid "Show the number of parts which are low on stock"
-msgstr ""
+msgstr "顯示庫存不足的零件"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:65
msgid "Required for Build Orders"
@@ -1047,31 +1089,31 @@ msgstr "生產訂單所需的"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:67
msgid "Show parts which are required for active build orders"
-msgstr ""
+msgstr "顯示進行中生產訂單所需的零件"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:72
msgid "Expired Stock Items"
-msgstr ""
+msgstr "過期庫存項目"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:74
msgid "Show the number of stock items which have expired"
-msgstr ""
+msgstr "顯示已過期的庫存項目數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:80
msgid "Stale Stock Items"
-msgstr ""
+msgstr "陳舊庫存項目"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:82
msgid "Show the number of stock items which are stale"
-msgstr ""
+msgstr "顯示陳舊的庫存項目數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:88
msgid "Active Build Orders"
-msgstr ""
+msgstr "進行中的生產訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:90
msgid "Show the number of build orders which are currently active"
-msgstr ""
+msgstr "顯示目前進行中的生產訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:95
msgid "Overdue Build Orders"
@@ -1079,23 +1121,23 @@ msgstr "逾期的生產訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:97
msgid "Show the number of build orders which are overdue"
-msgstr ""
+msgstr "顯示已逾期的生產訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:102
msgid "Assigned Build Orders"
-msgstr ""
+msgstr "已分配的生產訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:104
msgid "Show the number of build orders which are assigned to you"
-msgstr ""
+msgstr "顯示分配給您的生產訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:109
msgid "Active Sales Orders"
-msgstr ""
+msgstr "進行中的銷售訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:111
msgid "Show the number of sales orders which are currently active"
-msgstr ""
+msgstr "顯示目前進行中的銷售訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:116
msgid "Overdue Sales Orders"
@@ -1103,32 +1145,32 @@ msgstr "逾期的銷售訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:118
msgid "Show the number of sales orders which are overdue"
-msgstr ""
+msgstr "顯示已逾期的銷售訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:123
msgid "Assigned Sales Orders"
-msgstr ""
+msgstr "已分配的銷售訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:125
msgid "Show the number of sales orders which are assigned to you"
-msgstr ""
+msgstr "顯示分配給您的銷售訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:130
#: src/pages/sales/SalesIndex.tsx:87
msgid "Pending Shipments"
-msgstr ""
+msgstr "待處理發貨"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:132
msgid "Show the number of pending sales order shipments"
-msgstr ""
+msgstr "顯示待處理的銷售訂單發貨數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:137
msgid "Active Purchase Orders"
-msgstr ""
+msgstr "進行中的採購訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:139
msgid "Show the number of purchase orders which are currently active"
-msgstr ""
+msgstr "顯示目前進行中的採購訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:144
msgid "Overdue Purchase Orders"
@@ -1136,23 +1178,23 @@ msgstr "逾期的採購訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:146
msgid "Show the number of purchase orders which are overdue"
-msgstr ""
+msgstr "顯示已逾期的採購訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:151
msgid "Assigned Purchase Orders"
-msgstr ""
+msgstr "已分配的採購訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:153
msgid "Show the number of purchase orders which are assigned to you"
-msgstr ""
+msgstr "顯示分配給您的採購訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:158
msgid "Active Return Orders"
-msgstr ""
+msgstr "進行中的退貨訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:160
msgid "Show the number of return orders which are currently active"
-msgstr ""
+msgstr "顯示目前進行中的退貨訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:165
msgid "Overdue Return Orders"
@@ -1160,15 +1202,15 @@ msgstr "逾期的退貨訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:167
msgid "Show the number of return orders which are overdue"
-msgstr ""
+msgstr "顯示已逾期的退貨訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:172
msgid "Assigned Return Orders"
-msgstr ""
+msgstr "已分配的退貨訂單"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:174
msgid "Show the number of return orders which are assigned to you"
-msgstr ""
+msgstr "顯示分配給您的退貨訂單數量"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:194
#: src/components/dashboard/widgets/GetStartedWidget.tsx:15
@@ -1184,11 +1226,11 @@ msgstr "開始使用 InvenTree"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:202
#: src/components/dashboard/widgets/NewsWidget.tsx:123
msgid "News Updates"
-msgstr ""
+msgstr "最新消息"
#: src/components/dashboard/DashboardWidgetLibrary.tsx:203
msgid "The latest news from InvenTree"
-msgstr ""
+msgstr "InvenTree 的最新消息"
#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18
#: src/components/nav/MainMenu.tsx:93
@@ -1197,15 +1239,15 @@ msgstr "更改色彩模式"
#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23
msgid "Change the color mode of the user interface"
-msgstr ""
+msgstr "變更使用者介面的顏色模式"
#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18
msgid "Change Language"
-msgstr ""
+msgstr "變更語言"
#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23
msgid "Change the language of the user interface"
-msgstr ""
+msgstr "變更使用者介面的語言"
#: src/components/dashboard/widgets/NewsWidget.tsx:60
#: src/components/nav/NotificationDrawer.tsx:94
@@ -1215,42 +1257,42 @@ msgstr "標記為已讀"
#: src/components/dashboard/widgets/NewsWidget.tsx:115
msgid "Requires Superuser"
-msgstr ""
+msgstr "需要超級使用者"
#: src/components/dashboard/widgets/NewsWidget.tsx:116
msgid "This widget requires superuser permissions"
-msgstr ""
+msgstr "此小工具需要超級使用者權限"
#: src/components/dashboard/widgets/NewsWidget.tsx:133
msgid "No News"
-msgstr ""
+msgstr "沒有新聞"
#: src/components/dashboard/widgets/NewsWidget.tsx:134
msgid "There are no unread news items"
-msgstr ""
+msgstr "沒有未讀的新聞項目"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:15
msgid "Generating Stocktake Report"
-msgstr ""
+msgstr "正在產生盤點報告"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:20
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:53
#: src/pages/part/PartStockHistoryDetail.tsx:96
msgid "Generate Stocktake Report"
-msgstr ""
+msgstr "產生盤點報告"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:37
#: src/pages/part/PartStockHistoryDetail.tsx:108
msgid "Generate"
-msgstr ""
+msgstr "產生"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:64
msgid "Stocktake"
-msgstr ""
+msgstr "盤點"
#: src/components/dashboard/widgets/StocktakeDashboardWidget.tsx:65
msgid "Generate a new stocktake report"
-msgstr ""
+msgstr "產生新的盤點報告"
#: src/components/details/Details.tsx:117
#~ msgid "Email:"
@@ -1271,7 +1313,7 @@ msgstr "超級用户"
#: src/tables/settings/UserTable.tsx:285
#: src/tables/settings/UserTable.tsx:406
msgid "Administrator"
-msgstr ""
+msgstr "管理員"
#: src/components/details/Details.tsx:130
#: src/pages/core/UserDetail.tsx:87
@@ -1282,21 +1324,21 @@ msgstr ""
#: src/components/details/Details.tsx:131
msgid "Email: "
-msgstr ""
+msgstr "電子郵件: "
#: src/components/details/Details.tsx:423
msgid "No name defined"
msgstr "未定義名稱"
-#: src/components/details/DetailsImage.tsx:77
+#: src/components/details/DetailsImage.tsx:78
msgid "Remove Image"
msgstr "刪除圖片"
-#: src/components/details/DetailsImage.tsx:80
+#: src/components/details/DetailsImage.tsx:81
msgid "Remove the associated image from this item?"
msgstr "刪除與此項關聯的圖片?"
-#: src/components/details/DetailsImage.tsx:83
+#: src/components/details/DetailsImage.tsx:84
#: src/forms/StockForms.tsx:904
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
@@ -1312,81 +1354,81 @@ msgstr "刪除與此項關聯的圖片?"
msgid "Remove"
msgstr "移除"
-#: src/components/details/DetailsImage.tsx:88
-msgid "Image removed"
-msgstr ""
-
#: src/components/details/DetailsImage.tsx:89
+msgid "Image removed"
+msgstr "圖片已移除"
+
+#: src/components/details/DetailsImage.tsx:90
msgid "The image has been removed successfully"
-msgstr ""
+msgstr "圖片已成功移除"
#: src/components/details/DetailsImage.tsx:115
#~ msgid "Drag and drop to upload"
#~ msgstr "Drag and drop to upload"
-#: src/components/details/DetailsImage.tsx:157
+#: src/components/details/DetailsImage.tsx:158
msgid "Drag and drop to upload, or paste an image from the clipboard"
-msgstr ""
+msgstr "拖放以上傳,或從剪貼簿貼上圖片"
-#: src/components/details/DetailsImage.tsx:162
+#: src/components/details/DetailsImage.tsx:163
msgid "Click to select file(s)"
msgstr "點擊選擇文件"
-#: src/components/details/DetailsImage.tsx:222
-msgid "Image uploaded"
-msgstr ""
-
#: src/components/details/DetailsImage.tsx:223
-msgid "Image has been uploaded successfully"
-msgstr ""
+msgid "Image uploaded"
+msgstr "圖片已上傳"
-#: src/components/details/DetailsImage.tsx:230
+#: src/components/details/DetailsImage.tsx:224
+msgid "Image has been uploaded successfully"
+msgstr "圖片已成功上傳"
+
+#: src/components/details/DetailsImage.tsx:231
#: src/tables/general/AttachmentTable.tsx:201
msgid "Upload Error"
msgstr "上傳錯誤"
-#: src/components/details/DetailsImage.tsx:300
+#: src/components/details/DetailsImage.tsx:301
#: src/components/forms/fields/AutoFillRightSection.tsx:34
msgid "Clear"
msgstr "清除"
-#: src/components/details/DetailsImage.tsx:306
-#: src/components/forms/ApiForm.tsx:712
+#: src/components/details/DetailsImage.tsx:307
+#: src/components/forms/ApiForm.tsx:711
#: src/contexts/ThemeContext.tsx:56
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:151
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:570
msgid "Submit"
msgstr "提交"
-#: src/components/details/DetailsImage.tsx:350
+#: src/components/details/DetailsImage.tsx:351
msgid "Select from existing images"
msgstr "從現有圖片中選擇"
-#: src/components/details/DetailsImage.tsx:358
+#: src/components/details/DetailsImage.tsx:359
msgid "Select Image"
msgstr "選擇圖片"
-#: src/components/details/DetailsImage.tsx:374
+#: src/components/details/DetailsImage.tsx:375
msgid "Download remote image"
msgstr "下載遠程圖片"
-#: src/components/details/DetailsImage.tsx:389
+#: src/components/details/DetailsImage.tsx:390
msgid "Upload new image"
msgstr "上傳新圖片"
-#: src/components/details/DetailsImage.tsx:396
+#: src/components/details/DetailsImage.tsx:397
msgid "Upload Image"
msgstr "上傳圖片"
-#: src/components/details/DetailsImage.tsx:409
+#: src/components/details/DetailsImage.tsx:410
msgid "Delete image"
msgstr "刪除圖片"
-#: src/components/details/DetailsImage.tsx:443
+#: src/components/details/DetailsImage.tsx:444
msgid "Download Image"
msgstr "下載圖片"
-#: src/components/details/DetailsImage.tsx:448
+#: src/components/details/DetailsImage.tsx:449
msgid "Image downloaded successfully"
msgstr "圖片下載成功"
@@ -1418,39 +1460,39 @@ msgstr "圖片下載成功"
#~ msgid "Part is virtual (not a physical part)"
#~ msgstr "Part is virtual (not a physical part)"
-#: src/components/editors/NotesEditor.tsx:75
+#: src/components/editors/NotesEditor.tsx:82
msgid "Image upload failed"
msgstr "圖片上傳失敗"
-#: src/components/editors/NotesEditor.tsx:85
+#: src/components/editors/NotesEditor.tsx:92
msgid "Image uploaded successfully"
msgstr "圖片已經上傳成功"
-#: src/components/editors/NotesEditor.tsx:119
+#: src/components/editors/NotesEditor.tsx:126
msgid "Notes saved successfully"
msgstr "備註保存成功"
-#: src/components/editors/NotesEditor.tsx:130
+#: src/components/editors/NotesEditor.tsx:138
msgid "Failed to save notes"
msgstr "保存記事失敗"
-#: src/components/editors/NotesEditor.tsx:133
+#: src/components/editors/NotesEditor.tsx:141
msgid "Error Saving Notes"
-msgstr ""
+msgstr "儲存備註時發生錯誤"
#: src/components/editors/NotesEditor.tsx:151
#~ msgid "Disable Editing"
#~ msgstr "Disable Editing"
-#: src/components/editors/NotesEditor.tsx:153
+#: src/components/editors/NotesEditor.tsx:161
msgid "Save Notes"
msgstr "保存備註"
-#: src/components/editors/NotesEditor.tsx:172
+#: src/components/editors/NotesEditor.tsx:180
msgid "Close Editor"
-msgstr ""
+msgstr "關閉編輯器"
-#: src/components/editors/NotesEditor.tsx:179
+#: src/components/editors/NotesEditor.tsx:187
msgid "Enable Editing"
msgstr "啓用編輯"
@@ -1472,7 +1514,7 @@ msgstr "代碼"
#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:50
msgid "Error rendering preview"
-msgstr ""
+msgstr "預覽彩現時發生錯誤"
#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
msgid "Preview not available, click \"Reload Preview\"."
@@ -1496,7 +1538,7 @@ msgstr "保存模板時出錯"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:159
msgid "Could not load the template from the server."
-msgstr ""
+msgstr "無法從伺服器載入範本。"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:176
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:319
@@ -1525,7 +1567,7 @@ msgstr "預覽已成功更新。"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:236
msgid "An unknown error occurred while rendering the preview."
-msgstr ""
+msgstr "彩現預覽時發生未知錯誤。"
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263
#~ msgid "Save & Reload preview"
@@ -1587,11 +1629,6 @@ msgstr "無法找到頁面"
msgid "This page does not exist"
msgstr "此頁面不存在"
-#: src/components/errors/PermissionDenied.tsx:8
-#: src/functions/notifications.tsx:25
-msgid "Permission Denied"
-msgstr "權限受限"
-
#: src/components/errors/PermissionDenied.tsx:9
msgid "You do not have permission to view this page."
msgstr "您沒有權限查看此網頁。"
@@ -1604,8 +1641,8 @@ msgstr "服務器錯誤"
msgid "A server error occurred"
msgstr "服務器出錯。"
-#: src/components/forms/ApiForm.tsx:108
-#: src/components/forms/ApiForm.tsx:624
+#: src/components/forms/ApiForm.tsx:107
+#: src/components/forms/ApiForm.tsx:623
msgid "Form Error"
msgstr "表單錯誤"
@@ -1613,11 +1650,11 @@ msgstr "表單錯誤"
#~ msgid "Form Errors Exist"
#~ msgstr "Form Errors Exist"
-#: src/components/forms/ApiForm.tsx:634
+#: src/components/forms/ApiForm.tsx:633
msgid "Errors exist for one or more form fields"
msgstr "一個或多個表單字段存在錯誤"
-#: src/components/forms/ApiForm.tsx:750
+#: src/components/forms/ApiForm.tsx:749
#: src/hooks/UseForm.tsx:139
#: src/tables/plugin/PluginListTable.tsx:210
msgid "Update"
@@ -1661,12 +1698,12 @@ msgstr "登錄失敗"
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:350
+#: src/functions/auth.tsx:354
msgid "Check your input and try again."
msgstr "請檢查您的輸入並重試。"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:341
+#: src/functions/auth.tsx:345
msgid "Mail delivery successful"
msgstr "郵件發送成功"
@@ -1745,7 +1782,7 @@ msgstr "發送電子郵件"
#: src/components/forms/AuthenticationForm.tsx:239
msgid "Passwords do not match"
-msgstr ""
+msgstr "密碼不符"
#: src/components/forms/AuthenticationForm.tsx:256
msgid "Registration successful"
@@ -1761,7 +1798,7 @@ msgstr "輸入錯誤"
#: src/components/forms/AuthenticationForm.tsx:281
msgid "Check your input and try again. "
-msgstr ""
+msgstr "請檢查您的輸入並重試。"
#: src/components/forms/AuthenticationForm.tsx:305
msgid "This will be used for a confirmation"
@@ -1787,15 +1824,15 @@ msgstr "或使用 SSO"
#: src/components/forms/AuthenticationForm.tsx:348
msgid "Registration not active"
-msgstr ""
+msgstr "註冊未啟用"
#: src/components/forms/AuthenticationForm.tsx:349
msgid "This might be related to missing mail settings or could be a deliberate decision."
-msgstr ""
+msgstr "這可能與缺少郵件設定有關,或者是一個刻意的決定。"
#: src/components/forms/DateTimeField.tsx:64
msgid "Select date and time"
-msgstr ""
+msgstr "選擇日期與時間"
#: src/components/forms/HostOptionsForm.tsx:36
#: src/components/forms/HostOptionsForm.tsx:67
@@ -1808,7 +1845,7 @@ msgstr "主機"
#: src/components/plugins/PluginDrawer.tsx:68
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:19
#: src/pages/part/CategoryDetail.tsx:91
-#: src/pages/part/PartDetail.tsx:421
+#: src/pages/part/PartDetail.tsx:294
#: src/pages/stock/LocationDetail.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:67
#: src/tables/machine/MachineTypeTable.tsx:149
@@ -1845,12 +1882,12 @@ msgstr "保存"
#: src/components/forms/InstanceOptions.tsx:59
msgid "Select Server"
-msgstr ""
+msgstr "選擇伺服器"
#: src/components/forms/InstanceOptions.tsx:69
#: src/components/forms/InstanceOptions.tsx:93
msgid "Edit host options"
-msgstr ""
+msgstr "編輯主機選項"
#: src/components/forms/InstanceOptions.tsx:71
#~ msgid "Edit possible host options"
@@ -1858,7 +1895,7 @@ msgstr ""
#: src/components/forms/InstanceOptions.tsx:77
msgid "Save host selection"
-msgstr ""
+msgstr "儲存主機選擇"
#: src/components/forms/InstanceOptions.tsx:98
#~ msgid "Version: {0}"
@@ -1877,7 +1914,7 @@ msgstr ""
#~ msgstr "State: <0>worker0> ({0}), <1>plugins1>{1}"
#: src/components/forms/InstanceOptions.tsx:119
-#: src/pages/Index/Settings/SystemSettings.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:44
msgid "Server"
msgstr "服務器"
@@ -1896,14 +1933,15 @@ msgstr "API 版本"
#: src/components/forms/InstanceOptions.tsx:143
#: src/components/nav/NavigationDrawer.tsx:197
#: src/defaults/actions.tsx:173
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:228
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:229
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:46
+#: src/pages/Index/Settings/SystemSettings.tsx:355
msgid "Plugins"
msgstr "插件"
#: src/components/forms/InstanceOptions.tsx:144
-#: src/tables/general/ParameterTemplateTable.tsx:157
-#: src/tables/general/ParameterTemplateTable.tsx:192
+#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:178
#: src/tables/part/PartTestTemplateTable.tsx:117
#: src/tables/settings/TemplateTable.tsx:285
#: src/tables/settings/TemplateTable.tsx:396
@@ -1913,11 +1951,11 @@ msgstr "已啓用"
#: src/components/forms/InstanceOptions.tsx:144
msgid "Disabled"
-msgstr ""
+msgstr "已停用"
#: src/components/forms/InstanceOptions.tsx:150
msgid "Worker"
-msgstr ""
+msgstr "工作執行緒"
#: src/components/forms/InstanceOptions.tsx:151
#: src/tables/settings/FailedTasksTable.tsx:48
@@ -1926,19 +1964,19 @@ msgstr "已停止"
#: src/components/forms/InstanceOptions.tsx:151
msgid "Running"
-msgstr ""
+msgstr "執行中"
#: src/components/forms/fields/ApiFormField.tsx:206
msgid "Select file to upload"
-msgstr ""
+msgstr "選擇要上傳的檔案"
#: src/components/forms/fields/AutoFillRightSection.tsx:47
msgid "Accept suggested value"
-msgstr ""
+msgstr "接受建議值"
#: src/components/forms/fields/DateField.tsx:73
msgid "Select date"
-msgstr ""
+msgstr "選擇日期"
#: src/components/forms/fields/IconField.tsx:83
msgid "No icon selected"
@@ -1968,16 +2006,25 @@ msgstr "選擇包"
msgid "{0} icons"
msgstr "{0} 個圖標"
-#: src/components/forms/fields/RelatedModelField.tsx:494
+#: src/components/forms/fields/RelatedModelField.tsx:524
#: src/components/modals/AboutInvenTreeModal.tsx:91
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:397
msgid "Loading"
msgstr "正在加載"
-#: src/components/forms/fields/RelatedModelField.tsx:496
+#: src/components/forms/fields/RelatedModelField.tsx:526
msgid "No results found"
msgstr "找不到結果"
+#: src/components/forms/fields/RelatedModelField.tsx:576
+#: src/tables/general/BarcodeScanTable.tsx:35
+msgid "Item"
+msgstr "項目"
+
+#: src/components/forms/fields/RelatedModelField.tsx:577
+msgid "Create New {model}"
+msgstr "建立新 {model}"
+
#: src/components/forms/fields/TableField.tsx:46
msgid "modelRenderer entry required for tables"
msgstr "表格需要 modelRenderer 條目"
@@ -1988,7 +2035,7 @@ msgstr "無可用條目"
#: src/components/forms/fields/TableField.tsx:198
msgid "Add new row"
-msgstr ""
+msgstr "新增行"
#: src/components/images/DetailsImage.tsx:252
#~ msgid "Select image"
@@ -2060,7 +2107,7 @@ msgstr "處理數據中"
#: src/components/importer/ImporterColumnSelector.tsx:247
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:397
+#: src/functions/auth.tsx:401
msgid "An error occurred"
msgstr "發生錯誤"
@@ -2118,7 +2165,7 @@ msgstr "映射列"
#: src/components/importer/ImporterDrawer.tsx:46
msgid "Import Rows"
-msgstr ""
+msgstr "匯入資料行"
#: src/components/importer/ImporterDrawer.tsx:47
msgid "Process Data"
@@ -2130,7 +2177,7 @@ msgstr "完成導入"
#: src/components/importer/ImporterDrawer.tsx:92
msgid "Failed to fetch import session data"
-msgstr ""
+msgstr "無法擷取匯入工作階段資料"
#: src/components/importer/ImporterDrawer.tsx:97
#~ msgid "Cancel import session"
@@ -2148,7 +2195,7 @@ msgstr "數據已成功導入"
#: src/components/modals/AboutInvenTreeModal.tsx:200
#: src/components/modals/ServerInfoModal.tsx:134
#: src/components/wizards/ImportPartWizard.tsx:773
-#: src/forms/BomForms.tsx:137
+#: src/forms/BomForms.tsx:143
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:687
msgid "Close"
msgstr "關閉"
@@ -2182,14 +2229,14 @@ msgstr "選項"
#~ msgstr "Link custom barcode"
#: src/components/items/ActionDropdown.tsx:171
-#: src/tables/InvenTreeTableHeader.tsx:192
-#: src/tables/InvenTreeTableHeader.tsx:193
+#: src/tables/InvenTreeTableHeader.tsx:196
+#: src/tables/InvenTreeTableHeader.tsx:197
msgid "Barcode Actions"
msgstr "條碼操作"
#: src/components/items/ActionDropdown.tsx:176
msgid "View Barcode"
-msgstr ""
+msgstr "檢視條碼"
#: src/components/items/ActionDropdown.tsx:178
msgid "View barcode"
@@ -2230,7 +2277,7 @@ msgstr "重複項目"
#: src/components/items/ColorToggle.tsx:17
msgid "Toggle color scheme"
-msgstr ""
+msgstr "切換色彩配置"
#: src/components/items/DocTooltip.tsx:92
#: src/components/items/GettingStartedCarousel.tsx:20
@@ -2262,12 +2309,12 @@ msgstr "InvenTree Logo"
#: src/components/items/LanguageSelect.tsx:44
msgid "Default Language"
-msgstr ""
+msgstr "預設語言"
#: src/components/items/LanguageSelect.tsx:52
#: src/components/items/LanguageToggle.tsx:21
msgid "Select language"
-msgstr ""
+msgstr "選擇語言"
#: src/components/items/OnlyStaff.tsx:10
#: src/components/modals/AboutInvenTreeModal.tsx:50
@@ -2276,7 +2323,7 @@ msgstr ""
#: src/components/items/OnlyStaff.tsx:11
msgid "This information is only available for administrative 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."
@@ -2288,37 +2335,37 @@ msgstr ""
#: src/components/items/RoleTable.tsx:81
msgid "Updating"
-msgstr ""
+msgstr "更新中"
#: src/components/items/RoleTable.tsx:82
msgid "Updating group roles"
-msgstr ""
+msgstr "正在更新群組角色"
#: src/components/items/RoleTable.tsx:118
#: src/components/settings/ConfigValueList.tsx:42
#: src/pages/part/pricing/BomPricingPanel.tsx:151
#: src/pages/part/pricing/VariantPricingPanel.tsx:51
-#: src/tables/ColumnRenderers.tsx:731
+#: src/tables/ColumnRenderers.tsx:728
#: src/tables/purchasing/SupplierPartTable.tsx:186
msgid "Updated"
msgstr "已更新"
#: src/components/items/RoleTable.tsx:119
msgid "Group roles updated"
-msgstr ""
+msgstr "群組角色已更新"
#: src/components/items/RoleTable.tsx:135
msgid "Role"
-msgstr ""
+msgstr "角色"
#: src/components/items/RoleTable.tsx:140
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:906
msgid "View"
-msgstr ""
+msgstr "檢視"
#: src/components/items/RoleTable.tsx:145
msgid "Change"
-msgstr ""
+msgstr "變更"
#: src/components/items/RoleTable.tsx:150
#: src/forms/StockForms.tsx:950
@@ -2328,25 +2375,25 @@ msgstr "添加"
#: src/components/items/RoleTable.tsx:203
msgid "Reset group roles"
-msgstr ""
+msgstr "重設群組角色"
#: src/components/items/RoleTable.tsx:212
msgid "Reset"
-msgstr ""
+msgstr "重設"
#: src/components/items/RoleTable.tsx:215
msgid "Save group roles"
-msgstr ""
+msgstr "儲存群組角色"
#: src/components/items/TransferList.tsx:65
msgid "No items"
-msgstr ""
+msgstr "沒有項目"
#: src/components/items/TransferList.tsx:161
#: src/components/render/Stock.tsx:102
-#: src/pages/part/PartDetail.tsx:991
-#: src/pages/stock/StockDetail.tsx:265
-#: src/pages/stock/StockDetail.tsx:944
+#: src/pages/part/PartDetail.tsx:890
+#: src/pages/stock/StockDetail.tsx:266
+#: src/pages/stock/StockDetail.tsx:966
#: src/tables/ColumnRenderers.tsx:243
#: src/tables/build/BuildAllocatedStockTable.tsx:125
#: src/tables/build/BuildLineTable.tsx:198
@@ -2357,7 +2404,7 @@ msgstr "可用的"
#: src/components/items/TransferList.tsx:162
msgid "Selected"
-msgstr ""
+msgstr "已選擇"
#: src/components/modals/AboutInvenTreeModal.tsx:103
#~ msgid "Your InvenTree version status is"
@@ -2415,7 +2462,7 @@ msgstr "文檔"
#: src/components/modals/AboutInvenTreeModal.tsx:176
msgid "Source Code"
-msgstr ""
+msgstr "原始碼"
#: src/components/modals/AboutInvenTreeModal.tsx:177
msgid "Mobile App"
@@ -2542,14 +2589,14 @@ msgstr "後台工作者"
#: src/components/modals/ServerInfoModal.tsx:107
msgid "The background worker process is not running"
-msgstr ""
+msgstr "背景工作執行緒程序未執行"
#: src/components/modals/ServerInfoModal.tsx:107
#~ msgid "The Background worker process is not running."
#~ msgstr "The Background worker process is not running."
#: src/components/modals/ServerInfoModal.tsx:115
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:130
msgid "Email Settings"
msgstr "電子郵件設置"
@@ -2560,53 +2607,53 @@ msgstr "電子郵件設置"
#: src/components/modals/ServerInfoModal.tsx:120
#: src/components/nav/Alerts.tsx:143
msgid "Email settings not configured."
-msgstr ""
+msgstr "尚未設定電子郵件設定。"
#: src/components/nav/Alerts.tsx:57
msgid "Alerts"
-msgstr ""
+msgstr "警報"
#: src/components/nav/Alerts.tsx:97
msgid "No issues detected"
-msgstr ""
+msgstr "未偵測到任何問題"
#: src/components/nav/Alerts.tsx:122
msgid "The server is running in debug mode."
-msgstr ""
+msgstr "伺服器正在以除錯模式執行。"
#: src/components/nav/Alerts.tsx:129
msgid "The background worker process is not running."
-msgstr ""
+msgstr "背景工作執行緒程序未執行。"
#: src/components/nav/Alerts.tsx:134
msgid "Server Restart"
-msgstr ""
+msgstr "重新啟動伺服器"
#: src/components/nav/Alerts.tsx:136
msgid "The server requires a restart to apply changes."
-msgstr ""
+msgstr "伺服器需要重新啟動以套用變更。"
#: src/components/nav/Alerts.tsx:141
msgid "Email settings"
-msgstr ""
+msgstr "電子郵件設定"
#: src/components/nav/Alerts.tsx:148
msgid "Database Migrations"
-msgstr ""
+msgstr "資料庫遷移"
#: src/components/nav/Alerts.tsx:150
msgid "There are pending database migrations."
-msgstr ""
+msgstr "有待處理的資料庫遷移。"
#: src/components/nav/Alerts.tsx:165
msgid "Learn more about {code}"
-msgstr ""
+msgstr "進一步了解 {code}"
#: src/components/nav/Header.tsx:209
#: src/components/nav/NavigationDrawer.tsx:134
#: src/components/nav/NotificationDrawer.tsx:181
-#: src/pages/Index/Settings/SystemSettings.tsx:124
-#: src/pages/Index/Settings/UserSettings.tsx:107
+#: src/pages/Index/Settings/SystemSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:109
#: src/pages/Notifications.tsx:45
#: src/pages/Notifications.tsx:130
msgid "Notifications"
@@ -2617,16 +2664,16 @@ msgstr "通知"
#~ msgstr "Administrator Mode"
#: src/components/nav/Header.tsx:231
-msgid "Admin Mode"
-msgstr ""
+msgid "Superuser Mode"
+msgstr "超級使用者模式"
#: src/components/nav/Header.tsx:231
-msgid "Superuser Mode"
-msgstr ""
+msgid "Admin Mode"
+msgstr "管理員模式"
#: src/components/nav/Header.tsx:237
msgid "The current user has elevated privileges and should not be used for regular usage."
-msgstr ""
+msgstr "目前使用者具有提升的權限,不應做為一般使用。"
#: src/components/nav/Layout.tsx:144
msgid "Nothing found..."
@@ -2653,10 +2700,10 @@ msgstr "設置"
#: src/components/nav/NavigationDrawer.tsx:140
#: src/components/nav/SettingsHeader.tsx:40
#: src/defaults/actions.tsx:86
-#: src/pages/Index/Settings/UserSettings.tsx:142
-#: src/pages/Index/Settings/UserSettings.tsx:146
+#: src/pages/Index/Settings/UserSettings.tsx:144
+#: src/pages/Index/Settings/UserSettings.tsx:148
msgid "User Settings"
-msgstr ""
+msgstr "使用者設定"
#: src/components/nav/MainMenu.tsx:61
#: src/pages/Index/Settings/UserSettings.tsx:145
@@ -2671,8 +2718,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:155
-#: src/pages/Index/Settings/SystemSettings.tsx:368
-#: src/pages/Index/Settings/SystemSettings.tsx:373
+#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:377
msgid "System Settings"
msgstr "系統設置"
@@ -2684,8 +2731,8 @@ msgstr "系統設置"
#: src/components/nav/NavigationDrawer.tsx:153
#: src/components/nav/SettingsHeader.tsx:42
#: src/defaults/actions.tsx:164
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:293
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:298
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:294
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
msgid "Admin Center"
msgstr "管理中心"
@@ -2722,24 +2769,26 @@ msgstr "登出"
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:42
#: src/forms/StockForms.tsx:803
-#: src/pages/Index/Settings/SystemSettings.tsx:233
-#: src/pages/part/PartDetail.tsx:770
-#: src/pages/stock/LocationDetail.tsx:427
-#: src/pages/stock/LocationDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:643
+#: src/pages/Index/Settings/SystemSettings.tsx:241
+#: src/pages/part/PartDetail.tsx:644
+#: src/pages/stock/LocationDetail.tsx:424
+#: src/pages/stock/LocationDetail.tsx:454
+#: src/pages/stock/StockDetail.tsx:644
#: src/tables/stock/StockItemTable.tsx:75
msgid "Stock"
msgstr "庫存"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:48
-#: src/pages/build/BuildDetail.tsx:775
+#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/build/BuildDetail.tsx:793
#: src/pages/build/BuildIndex.tsx:101
msgid "Manufacturing"
-msgstr ""
+msgstr "製造"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:54
+#: src/pages/Index/Settings/SystemSettings.tsx:309
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:268
#: src/pages/company/SupplierDetail.tsx:9
@@ -2751,6 +2800,7 @@ msgstr "採購中"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:60
+#: src/pages/Index/Settings/SystemSettings.tsx:326
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:569
#: src/pages/sales/SalesIndex.tsx:169
@@ -2769,7 +2819,7 @@ msgstr "關於"
#: src/components/nav/NavigationTree.tsx:212
msgid "Error loading navigation tree."
-msgstr ""
+msgstr "載入導覽樹狀結構時發生錯誤。"
#: src/components/nav/NotificationDrawer.tsx:183
#: src/pages/Notifications.tsx:74
@@ -2786,19 +2836,19 @@ msgstr "您沒有未讀通知"
#: src/components/nav/NotificationDrawer.tsx:238
msgid "Error loading notifications."
-msgstr ""
+msgstr "載入通知時發生錯誤。"
#: src/components/nav/SearchDrawer.tsx:111
msgid "No Overview Available"
-msgstr ""
+msgstr "無可用總覽"
#: src/components/nav/SearchDrawer.tsx:112
msgid "No overview available for this model type"
-msgstr ""
+msgstr "此模型類型沒有可用的總覽"
#: src/components/nav/SearchDrawer.tsx:130
msgid "View all results"
-msgstr ""
+msgstr "檢視所有結果"
#: src/components/nav/SearchDrawer.tsx:145
msgid "results"
@@ -2806,11 +2856,11 @@ msgstr "結果"
#: src/components/nav/SearchDrawer.tsx:149
msgid "Remove search group"
-msgstr ""
+msgstr "移除搜尋群組"
#: src/components/nav/SearchDrawer.tsx:304
#: src/pages/company/ManufacturerPartDetail.tsx:179
-#: src/pages/part/PartDetail.tsx:828
+#: src/pages/part/PartDetail.tsx:719
#: src/pages/part/PartSupplierDetail.tsx:15
#: src/pages/purchasing/PurchasingIndex.tsx:100
msgid "Suppliers"
@@ -2837,7 +2887,7 @@ msgstr "輸入搜索文本"
#: src/components/nav/SearchDrawer.tsx:504
msgid "Refresh search results"
-msgstr ""
+msgstr "重新整理搜尋結果"
#: src/components/nav/SearchDrawer.tsx:515
#: src/components/nav/SearchDrawer.tsx:522
@@ -2854,7 +2904,7 @@ msgstr "正則表達式搜索"
#: src/components/nav/SearchDrawer.tsx:543
msgid "Notes search"
-msgstr ""
+msgstr "備註搜尋"
#: src/components/nav/SearchDrawer.tsx:591
msgid "An error occurred during search query"
@@ -2879,30 +2929,34 @@ msgstr "附件"
msgid "Notes"
msgstr "備註"
-#: src/components/panels/PanelGroup.tsx:159
+#: src/components/panels/PanelGroup.tsx:174
msgid "Plugin Provided"
-msgstr ""
+msgstr "外掛程式提供"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:195
+msgid "You have unsaved changes, are you sure you want to navigate away from this panel?"
+msgstr "您有未儲存的變更,確定要離開此面板嗎?"
+
+#: src/components/panels/PanelGroup.tsx:329
msgid "Collapse panels"
-msgstr ""
+msgstr "摺疊面板"
-#: src/components/panels/PanelGroup.tsx:293
+#: src/components/panels/PanelGroup.tsx:329
msgid "Expand panels"
-msgstr ""
+msgstr "展開面板"
#: src/components/plugins/LocateItemButton.tsx:68
#: src/components/plugins/LocateItemButton.tsx:88
msgid "Locate Item"
-msgstr ""
+msgstr "尋找項目"
#: src/components/plugins/LocateItemButton.tsx:70
msgid "Item location requested"
-msgstr ""
+msgstr "已要求項目位置"
#: src/components/plugins/PluginDrawer.tsx:47
msgid "Plugin Inactive"
-msgstr ""
+msgstr "外掛程式未啟用"
#: src/components/plugins/PluginDrawer.tsx:50
msgid "Plugin is not active"
@@ -2910,22 +2964,22 @@ msgstr "插件未激活"
#: src/components/plugins/PluginDrawer.tsx:59
msgid "Plugin Information"
-msgstr ""
+msgstr "外掛程式資訊"
#: src/components/plugins/PluginDrawer.tsx:73
#: src/forms/selectionListFields.tsx:102
-#: src/pages/build/BuildDetail.tsx:269
+#: src/pages/build/BuildDetail.tsx:287
#: src/pages/company/CompanyDetail.tsx:94
#: src/pages/company/ManufacturerPartDetail.tsx:92
#: src/pages/company/ManufacturerPartDetail.tsx:119
#: src/pages/company/SupplierPartDetail.tsx:146
#: src/pages/part/CategoryDetail.tsx:111
-#: src/pages/part/PartDetail.tsx:435
+#: src/pages/part/PartDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:163
#: src/pages/sales/ReturnOrderDetail.tsx:130
#: src/pages/sales/SalesOrderDetail.tsx:120
#: src/pages/stock/LocationDetail.tsx:111
-#: src/tables/ColumnRenderers.tsx:459
+#: src/tables/ColumnRenderers.tsx:456
#: src/tables/build/BuildAllocatedStockTable.tsx:91
#: src/tables/machine/MachineTypeTable.tsx:159
#: src/tables/machine/MachineTypeTable.tsx:255
@@ -2940,7 +2994,7 @@ msgstr "作者"
#: src/components/plugins/PluginDrawer.tsx:83
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:41
#: src/pages/part/pricing/SaleHistoryPanel.tsx:38
-#: src/tables/ColumnRenderers.tsx:677
+#: src/tables/ColumnRenderers.tsx:674
#: src/tables/part/PartTestResultTable.tsx:222
msgid "Date"
msgstr "日期"
@@ -2950,7 +3004,7 @@ msgstr "日期"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:68
#: src/pages/core/UserDetail.tsx:81
#: src/pages/core/UserDetail.tsx:209
-#: src/pages/part/PartDetail.tsx:592
+#: src/pages/part/PartDetail.tsx:465
#: src/tables/bom/UsedInTable.tsx:95
#: src/tables/company/CompanyTable.tsx:66
#: src/tables/company/CompanyTable.tsx:101
@@ -2997,8 +3051,7 @@ msgstr "軟件包"
#: src/components/plugins/PluginDrawer.tsx:141
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:55
-#: src/pages/Index/Settings/SystemSettings.tsx:351
-#: src/pages/Index/Settings/UserSettings.tsx:129
+#: src/pages/Index/Settings/UserSettings.tsx:131
msgid "Plugin Settings"
msgstr "插件設置"
@@ -3045,15 +3098,15 @@ msgstr "加載插件預覽出錯"
#: src/components/plugins/RemoteComponent.tsx:111
msgid "Invalid source or function name"
-msgstr ""
+msgstr "無效的來源或函數名稱"
#: src/components/plugins/RemoteComponent.tsx:143
msgid "Error Loading Content"
-msgstr ""
+msgstr "載入內容時發生錯誤"
#: src/components/plugins/RemoteComponent.tsx:147
msgid "Error occurred while loading plugin content"
-msgstr ""
+msgstr "載入外掛程式內容時發生錯誤"
#: src/components/render/Instance.tsx:238
#~ msgid "Unknown model: {model}"
@@ -3061,7 +3114,7 @@ msgstr ""
#: src/components/render/Instance.tsx:259
msgid "Unknown model: {model_name}"
-msgstr ""
+msgstr "未知的模型:{model_name}"
#: src/components/render/ModelType.tsx:234
#~ msgid "Purchase Order Line Item"
@@ -3090,8 +3143,8 @@ msgstr "配送"
#: src/pages/company/CompanyDetail.tsx:330
#: src/pages/company/SupplierPartDetail.tsx:379
#: src/pages/core/UserDetail.tsx:211
-#: src/pages/part/PartDetail.tsx:1036
-#: src/tables/ColumnRenderers.tsx:614
+#: src/pages/part/PartDetail.tsx:935
+#: src/tables/ColumnRenderers.tsx:611
msgid "Inactive"
msgstr "未激活"
@@ -3102,7 +3155,7 @@ msgid "Virtual"
msgstr "虛擬"
#: src/components/render/Part.tsx:34
-#: src/tables/bom/BomTable.tsx:301
+#: src/tables/bom/BomTable.tsx:324
#: src/tables/part/PartTable.tsx:153
msgid "No stock"
msgstr "無庫存"
@@ -3111,8 +3164,8 @@ msgstr "無庫存"
#: src/components/wizards/OrderPartsWizard.tsx:135
#: src/pages/company/SupplierPartDetail.tsx:198
#: src/pages/company/SupplierPartDetail.tsx:400
-#: src/pages/part/PartDetail.tsx:1018
-#: src/tables/bom/BomTable.tsx:443
+#: src/pages/part/PartDetail.tsx:917
+#: src/tables/bom/BomTable.tsx:467
#: src/tables/build/BuildLineTable.tsx:228
#: src/tables/part/PartTable.tsx:109
msgid "On Order"
@@ -3120,9 +3173,9 @@ msgstr "訂購中"
#: src/components/render/Part.tsx:55
#: src/components/wizards/OrderPartsWizard.tsx:141
-#: src/pages/part/PartDetail.tsx:564
-#: src/pages/part/PartDetail.tsx:1024
-#: src/pages/stock/StockDetail.tsx:927
+#: src/pages/part/PartDetail.tsx:437
+#: src/pages/part/PartDetail.tsx:923
+#: src/pages/stock/StockDetail.tsx:949
#: src/tables/part/PartTestResultTable.tsx:306
#: src/tables/stock/StockItemTable.tsx:213
msgid "In Production"
@@ -3135,9 +3188,9 @@ msgstr "詳情"
#: src/components/render/Part.tsx:112
#: src/components/wizards/ImportPartWizard.tsx:807
-#: src/pages/part/PartDetail.tsx:464
-#: src/tables/ColumnRenderers.tsx:414
-#: src/tables/ColumnRenderers.tsx:423
+#: src/pages/part/PartDetail.tsx:337
+#: src/tables/ColumnRenderers.tsx:411
+#: src/tables/ColumnRenderers.tsx:420
#: src/tables/notifications/NotificationTable.tsx:32
#: src/tables/part/PartCategoryTemplateTable.tsx:78
msgid "Category"
@@ -3146,8 +3199,8 @@ msgstr "類別"
#: src/components/render/Stock.tsx:36
#: src/components/render/Stock.tsx:114
#: src/components/render/Stock.tsx:132
-#: src/forms/BuildForms.tsx:835
-#: src/forms/PurchaseOrderForms.tsx:681
+#: src/forms/BuildForms.tsx:828
+#: src/forms/PurchaseOrderForms.tsx:692
#: src/forms/StockForms.tsx:801
#: src/forms/StockForms.tsx:848
#: src/forms/StockForms.tsx:901
@@ -3159,39 +3212,41 @@ msgstr "類別"
#: src/forms/StockForms.tsx:1188
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
-#: src/pages/stock/StockDetail.tsx:298
-#: src/tables/ColumnRenderers.tsx:366
-#: src/tables/ColumnRenderers.tsx:375
+#: src/pages/stock/StockDetail.tsx:299
+#: src/tables/ColumnRenderers.tsx:363
+#: src/tables/ColumnRenderers.tsx:372
#: src/tables/Filter.tsx:460
#: src/tables/stock/StockTrackingTable.tsx:130
msgid "Location"
msgstr "位置"
#: src/components/render/Stock.tsx:99
-#: src/pages/stock/StockDetail.tsx:198
-#: src/pages/stock/StockDetail.tsx:932
+#: src/pages/stock/StockDetail.tsx:199
+#: src/pages/stock/StockDetail.tsx:954
#: src/tables/build/BuildOutputTable.tsx:109
#: src/tables/sales/SalesOrderAllocationTable.tsx:139
msgid "Serial Number"
msgstr "序列號"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:377
-#: src/forms/BuildForms.tsx:267
-#: src/forms/BuildForms.tsx:673
-#: src/forms/BuildForms.tsx:837
-#: src/forms/PurchaseOrderForms.tsx:890
+#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/forms/BuildForms.tsx:260
+#: src/forms/BuildForms.tsx:666
+#: src/forms/BuildForms.tsx:830
+#: src/forms/PurchaseOrderForms.tsx:901
#: src/forms/ReturnOrderForms.tsx:245
-#: src/forms/SalesOrderForms.tsx:432
+#: src/forms/SalesOrderForms.tsx:437
#: src/forms/StockForms.tsx:850
#: src/pages/part/PartStockHistoryDetail.tsx:61
#: src/pages/part/PartStockHistoryDetail.tsx:241
#: src/pages/part/PartStockHistoryDetail.tsx:265
+#: src/pages/part/bom/BomCompare.tsx:33
+#: src/pages/part/bom/BomCompare.tsx:204
#: src/pages/part/pricing/BomPricingPanel.tsx:106
#: src/pages/part/pricing/PriceBreakPanel.tsx:89
#: src/pages/part/pricing/PriceBreakPanel.tsx:172
-#: src/pages/stock/StockDetail.tsx:258
-#: src/pages/stock/StockDetail.tsx:938
+#: src/pages/stock/StockDetail.tsx:259
+#: src/pages/stock/StockDetail.tsx:960
#: src/tables/build/BuildLineTable.tsx:86
#: src/tables/part/PartPurchaseOrdersTable.tsx:94
#: src/tables/part/PartTestResultTable.tsx:277
@@ -3203,9 +3258,9 @@ msgid "Quantity"
msgstr "數量"
#: src/components/render/Stock.tsx:117
-#: src/forms/BuildForms.tsx:367
-#: src/forms/BuildForms.tsx:444
-#: src/forms/BuildForms.tsx:513
+#: src/forms/BuildForms.tsx:360
+#: src/forms/BuildForms.tsx:437
+#: src/forms/BuildForms.tsx:506
#: src/forms/StockForms.tsx:802
#: src/forms/StockForms.tsx:849
#: src/forms/StockForms.tsx:902
@@ -3225,15 +3280,15 @@ msgstr "批次"
#: src/components/settings/ConfigValueList.tsx:36
msgid "Setting"
-msgstr ""
+msgstr "設定"
#: src/components/settings/ConfigValueList.tsx:39
msgid "Source"
-msgstr ""
+msgstr "來源"
#: src/components/settings/QuickAction.tsx:47
msgid "Act"
-msgstr ""
+msgstr "動作"
#: src/components/settings/QuickAction.tsx:73
#: src/components/settings/QuickAction.tsx:113
@@ -3251,59 +3306,59 @@ msgstr "添加狀態"
#: src/components/settings/QuickAction.tsx:85
msgid "Open an Issue"
-msgstr ""
+msgstr "開啟問題"
#: src/components/settings/QuickAction.tsx:86
msgid "Report a bug or request a feature on GitHub"
-msgstr ""
+msgstr "在 GitHub 上回報錯誤或提出功能要求"
#: src/components/settings/QuickAction.tsx:88
msgid "Open Issue"
-msgstr ""
+msgstr "開啟問題 (Issue)"
#: src/components/settings/QuickAction.tsx:97
msgid "Add New Group"
-msgstr ""
+msgstr "新增群組"
#: src/components/settings/QuickAction.tsx:98
msgid "Create a new group to manage your users"
-msgstr ""
+msgstr "建立一個新群組來管理您的使用者"
#: src/components/settings/QuickAction.tsx:100
msgid "New Group"
-msgstr ""
+msgstr "新增群組"
#: src/components/settings/QuickAction.tsx:105
msgid "Add New User"
-msgstr ""
+msgstr "新增使用者"
#: src/components/settings/QuickAction.tsx:106
msgid "Create a new user to manage your groups"
-msgstr ""
+msgstr "建立一個新使用者來管理您的群組"
#: src/components/settings/QuickAction.tsx:108
msgid "New User"
-msgstr ""
+msgstr "新增使用者"
#: src/components/settings/QuickAction.tsx:114
msgid "Create a new project code to organize your items"
-msgstr ""
+msgstr "建立一個新的專案代碼來組織您的項目"
#: src/components/settings/QuickAction.tsx:116
msgid "Add Code"
-msgstr ""
+msgstr "新增代碼"
#: src/components/settings/QuickAction.tsx:121
msgid "Add Custom State"
-msgstr ""
+msgstr "新增自訂狀態"
#: src/components/settings/QuickAction.tsx:122
msgid "Create a new custom state for your workflow"
-msgstr ""
+msgstr "為您的工作流程建立一個新的自訂狀態"
#: src/components/settings/SettingItem.tsx:33
msgid "Do you want to proceed to change this setting?"
-msgstr ""
+msgstr "您要繼續變更此設定嗎?"
#: src/components/settings/SettingItem.tsx:47
#: src/components/settings/SettingItem.tsx:100
@@ -3312,7 +3367,7 @@ msgstr ""
#: src/components/settings/SettingItem.tsx:221
msgid "This setting requires confirmation"
-msgstr ""
+msgstr "此設定需要確認"
#: src/components/settings/SettingList.tsx:74
msgid "Edit Setting"
@@ -3320,7 +3375,7 @@ msgstr "編輯設置"
#: src/components/settings/SettingList.tsx:87
msgid "Setting {key} updated successfully"
-msgstr ""
+msgstr "設定 {key} 已成功更新"
#: src/components/settings/SettingList.tsx:120
msgid "Setting updated"
@@ -3337,15 +3392,15 @@ msgstr "編輯設置時出錯"
#: src/components/settings/SettingList.tsx:146
msgid "Error loading settings"
-msgstr ""
+msgstr "載入設定時發生錯誤"
#: src/components/settings/SettingList.tsx:157
msgid "No Settings"
-msgstr ""
+msgstr "無設定"
#: src/components/settings/SettingList.tsx:158
msgid "There are no configurable settings available"
-msgstr ""
+msgstr "沒有可用的可配置設定"
#: src/components/settings/SettingList.tsx:197
msgid "No settings specified"
@@ -3709,15 +3764,15 @@ msgstr "未指定設置"
#: src/components/wizards/ImportPartWizard.tsx:105
msgid "Exact Match"
-msgstr ""
+msgstr "完全比對"
#: src/components/wizards/ImportPartWizard.tsx:112
msgid "Current part"
-msgstr ""
+msgstr "目前零件"
#: src/components/wizards/ImportPartWizard.tsx:118
msgid "Already Imported"
-msgstr ""
+msgstr "已匯入"
#: src/components/wizards/ImportPartWizard.tsx:205
#: src/pages/company/CompanyDetail.tsx:137
@@ -3742,107 +3797,107 @@ msgstr "正在加載..."
#: src/components/wizards/ImportPartWizard.tsx:223
msgid "Error fetching suppliers"
-msgstr ""
+msgstr "擷取供應商時發生錯誤"
#: src/components/wizards/ImportPartWizard.tsx:224
msgid "Select supplier"
-msgstr ""
+msgstr "選擇供應商"
#. placeholder {0}: searchResults.length
#: src/components/wizards/ImportPartWizard.tsx:246
msgid "Found {0} results"
-msgstr ""
+msgstr "找到 {0} 個結果"
#: src/components/wizards/ImportPartWizard.tsx:259
msgid "Import this part"
-msgstr ""
+msgstr "匯入此零件"
#: src/components/wizards/ImportPartWizard.tsx:313
msgid "Are you sure you want to import this part into the selected category now?"
-msgstr ""
+msgstr "您確定現在要將此零件匯入選定的類別中嗎?"
#: src/components/wizards/ImportPartWizard.tsx:326
msgid "Import Now"
-msgstr ""
+msgstr "立即匯入"
#: src/components/wizards/ImportPartWizard.tsx:372
msgid "Select and edit the parameters you want to add to this part."
-msgstr ""
+msgstr "選擇並編輯您要新增至此零件的參數。"
#: src/components/wizards/ImportPartWizard.tsx:379
msgid "Default category parameters"
-msgstr ""
+msgstr "預設類別參數"
#: src/components/wizards/ImportPartWizard.tsx:391
msgid "Other parameters"
-msgstr ""
+msgstr "其他參數"
#: src/components/wizards/ImportPartWizard.tsx:446
msgid "Add a new parameter"
-msgstr ""
+msgstr "新增參數"
#: src/components/wizards/ImportPartWizard.tsx:468
msgid "Skip"
-msgstr ""
+msgstr "略過"
#: src/components/wizards/ImportPartWizard.tsx:476
msgid "Create Parameters"
-msgstr ""
+msgstr "建立參數"
#: src/components/wizards/ImportPartWizard.tsx:493
msgid "Create initial stock for the imported part."
-msgstr ""
+msgstr "為匯入的零件建立初始庫存。"
#: src/components/wizards/ImportPartWizard.tsx:511
msgid "Next"
-msgstr ""
+msgstr "下一步"
#: src/components/wizards/ImportPartWizard.tsx:540
-#: src/pages/part/PartDetail.tsx:1058
+#: src/pages/part/PartDetail.tsx:957
#: src/tables/part/PartTable.tsx:411
msgid "Edit Part"
msgstr "編輯零件"
#: src/components/wizards/ImportPartWizard.tsx:567
msgid "Part imported successfully!"
-msgstr ""
+msgstr "零件已成功匯入!"
#: src/components/wizards/ImportPartWizard.tsx:576
msgid "Failed to import part: "
-msgstr ""
+msgstr "匯入零件失敗:"
#: src/components/wizards/ImportPartWizard.tsx:641
msgid "Are you sure, you want to import the supplier and manufacturer part into this part?"
-msgstr ""
+msgstr "您確定要將供應商和製造商零件匯入到此零件嗎?"
#: src/components/wizards/ImportPartWizard.tsx:655
msgid "Import"
-msgstr ""
+msgstr "匯入"
#: src/components/wizards/ImportPartWizard.tsx:692
msgid "Parameters created successfully!"
-msgstr ""
+msgstr "參數已成功建立!"
#: src/components/wizards/ImportPartWizard.tsx:720
msgid "Failed to create parameters, please fix the errors and try again"
-msgstr ""
+msgstr "無法建立參數,請修正錯誤後重試"
#. placeholder {0}: supplierPart?.supplier
#: src/components/wizards/ImportPartWizard.tsx:740
msgid "Part imported successfully from supplier {0}."
-msgstr ""
+msgstr "已成功從供應商 {0} 匯入零件。"
#: src/components/wizards/ImportPartWizard.tsx:753
msgid "Open Part"
-msgstr ""
+msgstr "開啟零件"
#: src/components/wizards/ImportPartWizard.tsx:760
msgid "Open Supplier Part"
-msgstr ""
+msgstr "開啟供應商零件"
#: src/components/wizards/ImportPartWizard.tsx:767
msgid "Open Manufacturer Part"
-msgstr ""
+msgstr "開啟製造商零件"
#: src/components/wizards/ImportPartWizard.tsx:797
#: src/tables/part/PartTable.tsx:499
@@ -3851,35 +3906,35 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:803
msgid "Import Supplier Part"
-msgstr ""
+msgstr "匯入供應商零件"
#: src/components/wizards/ImportPartWizard.tsx:805
msgid "Search Supplier Part"
-msgstr ""
+msgstr "搜尋供應商零件"
#: src/components/wizards/ImportPartWizard.tsx:807
msgid "Confirm import"
-msgstr ""
+msgstr "確認匯入"
#: src/components/wizards/ImportPartWizard.tsx:809
msgid "Done"
-msgstr ""
+msgstr "完成"
#: src/components/wizards/OrderPartsWizard.tsx:75
msgid "Error fetching part requirements"
-msgstr ""
+msgstr "擷取零件需求時發生錯誤"
#: src/components/wizards/OrderPartsWizard.tsx:113
msgid "Requirements"
-msgstr ""
+msgstr "需求"
#: src/components/wizards/OrderPartsWizard.tsx:117
msgid "Build Requirements"
-msgstr ""
+msgstr "生產需求"
#: src/components/wizards/OrderPartsWizard.tsx:123
msgid "Sales Requirements"
-msgstr ""
+msgstr "銷售需求"
#: src/components/wizards/OrderPartsWizard.tsx:129
#: src/forms/StockForms.tsx:903
@@ -3891,8 +3946,8 @@ msgstr ""
#: src/forms/StockForms.tsx:1190
#: src/pages/company/SupplierPartDetail.tsx:191
#: src/pages/company/SupplierPartDetail.tsx:384
-#: src/pages/part/PartDetail.tsx:511
-#: src/pages/part/PartDetail.tsx:981
+#: src/pages/part/PartDetail.tsx:384
+#: src/pages/part/PartDetail.tsx:880
#: src/tables/Filter.tsx:134
#: src/tables/purchasing/SupplierPartTable.tsx:269
msgid "In Stock"
@@ -3901,101 +3956,101 @@ msgstr "入庫"
#: src/components/wizards/OrderPartsWizard.tsx:146
#: src/tables/build/BuildLineTable.tsx:406
msgid "Required Quantity"
-msgstr ""
-
-#: src/components/wizards/OrderPartsWizard.tsx:203
-msgid "New Purchase Order"
-msgstr ""
+msgstr "所需數量"
#: src/components/wizards/OrderPartsWizard.tsx:205
-msgid "Purchase order created"
-msgstr ""
+msgid "New Purchase Order"
+msgstr "新增採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:217
-msgid "New Supplier Part"
-msgstr ""
+#: src/components/wizards/OrderPartsWizard.tsx:207
+msgid "Purchase order created"
+msgstr "採購訂單已建立"
#: src/components/wizards/OrderPartsWizard.tsx:219
+msgid "New Supplier Part"
+msgstr "新增供應商零件"
+
+#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:213
#: src/tables/purchasing/SupplierPartTable.tsx:302
msgid "Supplier part created"
msgstr "供應商零件已更新"
-#: src/components/wizards/OrderPartsWizard.tsx:247
+#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
-msgstr ""
+msgstr "新增至採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:259
+#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
-msgstr ""
+msgstr "零件已新增至採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:303
+#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
-msgstr ""
-
-#: src/components/wizards/OrderPartsWizard.tsx:323
-msgid "Copy supplier part number"
-msgstr ""
+msgstr "選擇供應商零件"
#: src/components/wizards/OrderPartsWizard.tsx:326
+msgid "Copy supplier part number"
+msgstr "複製供應商零件號碼"
+
+#: src/components/wizards/OrderPartsWizard.tsx:329
msgid "New supplier part"
-msgstr ""
+msgstr "新增供應商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:350
+#: src/components/wizards/OrderPartsWizard.tsx:353
msgid "Select purchase order"
-msgstr ""
+msgstr "選擇採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:364
+#: src/components/wizards/OrderPartsWizard.tsx:367
msgid "New purchase order"
-msgstr ""
+msgstr "新增採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:420
+#: src/components/wizards/OrderPartsWizard.tsx:423
msgid "Add to selected purchase order"
-msgstr ""
+msgstr "新增至選定的採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:432
-#: src/components/wizards/OrderPartsWizard.tsx:545
+#: src/components/wizards/OrderPartsWizard.tsx:440
+#: src/components/wizards/OrderPartsWizard.tsx:578
msgid "No parts selected"
-msgstr ""
+msgstr "未選擇任何零件"
-#: src/components/wizards/OrderPartsWizard.tsx:433
+#: src/components/wizards/OrderPartsWizard.tsx:441
msgid "No purchaseable parts selected"
-msgstr ""
+msgstr "未選擇可採購的零件"
-#: src/components/wizards/OrderPartsWizard.tsx:469
+#: src/components/wizards/OrderPartsWizard.tsx:477
msgid "Parts Added"
-msgstr ""
+msgstr "已新增零件"
-#: src/components/wizards/OrderPartsWizard.tsx:470
+#: src/components/wizards/OrderPartsWizard.tsx:478
msgid "All selected parts added to a purchase order"
-msgstr ""
+msgstr "所有選定的零件已新增至採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:546
+#: src/components/wizards/OrderPartsWizard.tsx:579
msgid "You must select at least one part to order"
-msgstr ""
+msgstr "您必須至少選擇一個零件進行訂購"
-#: src/components/wizards/OrderPartsWizard.tsx:557
+#: src/components/wizards/OrderPartsWizard.tsx:590
msgid "Supplier part is required"
-msgstr ""
+msgstr "供應商零件為必填項目"
-#: src/components/wizards/OrderPartsWizard.tsx:561
+#: src/components/wizards/OrderPartsWizard.tsx:594
msgid "Quantity is required"
-msgstr ""
+msgstr "數量為必填項目"
-#: src/components/wizards/OrderPartsWizard.tsx:574
+#: src/components/wizards/OrderPartsWizard.tsx:607
msgid "Invalid part selection"
-msgstr ""
+msgstr "無效的零件選擇"
-#: src/components/wizards/OrderPartsWizard.tsx:576
+#: src/components/wizards/OrderPartsWizard.tsx:609
msgid "Please correct the errors in the selected parts"
-msgstr ""
+msgstr "請修正選定零件中的錯誤"
-#: src/components/wizards/OrderPartsWizard.tsx:587
+#: src/components/wizards/OrderPartsWizard.tsx:620
#: src/tables/build/BuildLineTable.tsx:844
#: src/tables/part/PartTable.tsx:525
#: src/tables/sales/SalesOrderLineItemTable.tsx:368
msgid "Order Parts"
-msgstr ""
+msgstr "訂購零件"
#: src/contexts/LanguageContext.tsx:22
#~ msgid "Arabic"
@@ -4173,7 +4228,7 @@ msgstr "服務器信息"
#: src/defaults/actions.tsx:66
#: src/defaults/links.tsx:169
msgid "About this InvenTree instance"
-msgstr ""
+msgstr "關於此 InvenTree 實例"
#: src/defaults/actions.tsx:72
#: src/defaults/links.tsx:153
@@ -4195,39 +4250,39 @@ msgstr "打開主導航菜單"
#: src/defaults/actions.tsx:87
msgid "Go to your user settings"
-msgstr ""
+msgstr "前往您的使用者設定"
#: src/defaults/actions.tsx:96
msgid "Import Data"
-msgstr ""
+msgstr "匯入資料"
#: src/defaults/actions.tsx:97
msgid "Import data from a file"
-msgstr ""
+msgstr "從檔案匯入資料"
#: src/defaults/actions.tsx:107
msgid "Go to Purchase Orders"
-msgstr ""
+msgstr "前往採購訂單"
#: src/defaults/actions.tsx:117
msgid "Go to Sales Orders"
-msgstr ""
+msgstr "前往銷售訂單"
#: src/defaults/actions.tsx:128
msgid "Go to Return Orders"
-msgstr ""
+msgstr "前往退貨訂單"
#: src/defaults/actions.tsx:138
msgid "Scan a barcode or QR code"
-msgstr ""
+msgstr "掃描條碼或 QR Code"
#: src/defaults/actions.tsx:147
msgid "Go to Build Orders"
-msgstr ""
+msgstr "前往生產訂單"
#: src/defaults/actions.tsx:156
msgid "Go to System Settings"
-msgstr ""
+msgstr "前往系統設定"
#: src/defaults/actions.tsx:165
msgid "Go to the Admin Center"
@@ -4235,7 +4290,7 @@ msgstr "轉到管理中心"
#: src/defaults/actions.tsx:174
msgid "Manage InvenTree plugins"
-msgstr ""
+msgstr "管理 InvenTree 外掛程式"
#: src/defaults/dashboardItems.tsx:29
#~ msgid "Latest Parts"
@@ -4279,15 +4334,15 @@ msgstr ""
#: src/defaults/defaultHostList.tsx:10
msgid "Local Server"
-msgstr ""
+msgstr "本機伺服器"
#: src/defaults/defaultHostList.tsx:12
msgid "InvenTree Demo"
-msgstr ""
+msgstr "InvenTree 示範"
#: src/defaults/defaultHostList.tsx:14
msgid "Current Server"
-msgstr ""
+msgstr "目前伺服器"
#: src/defaults/links.tsx:17
#~ msgid "GitHub"
@@ -4337,11 +4392,11 @@ msgstr "常見問題"
#: src/defaults/links.tsx:114
msgid "GitHub Repository"
-msgstr ""
+msgstr "GitHub 儲存庫"
#: src/defaults/links.tsx:117
msgid "InvenTree source code on GitHub"
-msgstr ""
+msgstr "GitHub 上的 InvenTree 原始碼"
#: src/defaults/links.tsx:117
#~ msgid "Licenses for packages used by InvenTree"
@@ -4358,11 +4413,11 @@ msgstr "系統信息"
#: src/defaults/links.tsx:176
msgid "Licenses for dependencies of the InvenTree software"
-msgstr ""
+msgstr "InvenTree 軟體相依套件的授權"
#: src/defaults/links.tsx:187
msgid "About the InvenTree Project"
-msgstr ""
+msgstr "關於 InvenTree 專案"
#: src/defaults/menuItems.tsx:7
#~ msgid "Open sourcea"
@@ -4480,21 +4535,21 @@ msgstr ""
#~ msgid "Are you sure you want to delete this attachment?"
#~ msgstr "Are you sure you want to delete this attachment?"
-#: src/forms/BomForms.tsx:114
+#: src/forms/BomForms.tsx:120
msgid "Substitute Part"
-msgstr ""
+msgstr "替代零件"
-#: src/forms/BomForms.tsx:131
+#: src/forms/BomForms.tsx:137
msgid "Edit BOM Substitutes"
-msgstr ""
+msgstr "編輯 BOM 替代品"
-#: src/forms/BomForms.tsx:138
+#: src/forms/BomForms.tsx:144
msgid "Add Substitute"
-msgstr ""
+msgstr "新增替代品"
-#: src/forms/BomForms.tsx:139
+#: src/forms/BomForms.tsx:145
msgid "Substitute added"
-msgstr ""
+msgstr "已新增替代品"
#: src/forms/BuildForms.tsx:112
#: src/forms/BuildForms.tsx:217
@@ -4506,33 +4561,33 @@ msgstr ""
#~ msgid "Remove output"
#~ msgstr "Remove output"
-#: src/forms/BuildForms.tsx:365
-#: src/forms/BuildForms.tsx:442
-#: src/forms/BuildForms.tsx:724
+#: src/forms/BuildForms.tsx:358
+#: src/forms/BuildForms.tsx:435
+#: src/forms/BuildForms.tsx:717
#: src/tables/build/BuildAllocatedStockTable.tsx:147
#: src/tables/build/BuildOutputTable.tsx:632
#: src/tables/part/PartTestResultTable.tsx:280
msgid "Build Output"
msgstr "生產產出"
-#: src/forms/BuildForms.tsx:366
+#: src/forms/BuildForms.tsx:359
msgid "Quantity to Complete"
-msgstr ""
+msgstr "要完成的數量"
-#: src/forms/BuildForms.tsx:368
-#: src/forms/BuildForms.tsx:445
-#: src/forms/BuildForms.tsx:514
-#: src/forms/PurchaseOrderForms.tsx:806
+#: src/forms/BuildForms.tsx:361
+#: src/forms/BuildForms.tsx:438
+#: src/forms/BuildForms.tsx:507
+#: src/forms/PurchaseOrderForms.tsx:817
#: src/forms/ReturnOrderForms.tsx:199
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/StockForms.tsx:721
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
-#: src/pages/build/BuildDetail.tsx:241
+#: src/pages/build/BuildDetail.tsx:259
#: src/pages/core/UserDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:169
#: src/pages/sales/ReturnOrderDetail.tsx:136
#: src/pages/sales/SalesOrderDetail.tsx:126
-#: src/pages/stock/StockDetail.tsx:170
+#: src/pages/stock/StockDetail.tsx:171
#: src/tables/Filter.tsx:334
#: src/tables/build/BuildOutputTable.tsx:442
#: src/tables/machine/MachineListTable.tsx:387
@@ -4548,11 +4603,11 @@ msgstr ""
msgid "Status"
msgstr "狀態"
-#: src/forms/BuildForms.tsx:392
+#: src/forms/BuildForms.tsx:385
msgid "Complete Build Outputs"
msgstr "完成生產輸出"
-#: src/forms/BuildForms.tsx:395
+#: src/forms/BuildForms.tsx:388
msgid "Build outputs have been completed"
msgstr "生產已完成"
@@ -4560,64 +4615,64 @@ msgstr "生產已完成"
#~ msgid "Selected build outputs will be deleted"
#~ msgstr "Selected build outputs will be deleted"
-#: src/forms/BuildForms.tsx:443
+#: src/forms/BuildForms.tsx:436
msgid "Quantity to Scrap"
-msgstr ""
+msgstr "要報廢的數量"
-#: src/forms/BuildForms.tsx:463
-#: src/forms/BuildForms.tsx:465
+#: src/forms/BuildForms.tsx:456
+#: src/forms/BuildForms.tsx:458
msgid "Scrap Build Outputs"
msgstr "報廢生產輸出"
-#: src/forms/BuildForms.tsx:468
+#: src/forms/BuildForms.tsx:461
msgid "Selected build outputs will be completed, but marked as scrapped"
-msgstr ""
+msgstr "選定的生產產出將被完成,但標記為已報廢"
-#: src/forms/BuildForms.tsx:470
+#: src/forms/BuildForms.tsx:463
msgid "Allocated stock items will be consumed"
-msgstr ""
+msgstr "已分配的庫存項目將被消耗"
+
+#: src/forms/BuildForms.tsx:469
+msgid "Build outputs have been scrapped"
+msgstr "生產已完成"
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
#~ msgstr "Remove line"
-#: src/forms/BuildForms.tsx:476
-msgid "Build outputs have been scrapped"
-msgstr "生產已完成"
-
-#: src/forms/BuildForms.tsx:524
-#: src/forms/BuildForms.tsx:526
+#: src/forms/BuildForms.tsx:517
+#: src/forms/BuildForms.tsx:519
msgid "Cancel Build Outputs"
msgstr "取消生產輸出"
-#: src/forms/BuildForms.tsx:528
+#: src/forms/BuildForms.tsx:521
msgid "Selected build outputs will be removed"
-msgstr ""
+msgstr "選定的生產產出將被移除"
+
+#: src/forms/BuildForms.tsx:523
+msgid "Allocated stock items will be returned to stock"
+msgstr "已分配的庫存項目將被退回庫存"
#: src/forms/BuildForms.tsx:530
-msgid "Allocated stock items will be returned to stock"
-msgstr ""
-
-#: src/forms/BuildForms.tsx:537
msgid "Build outputs have been cancelled"
msgstr "生產已完成"
-#: src/forms/BuildForms.tsx:670
-#: src/pages/build/BuildDetail.tsx:226
+#: src/forms/BuildForms.tsx:663
+#: src/pages/build/BuildDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:84
#: src/pages/company/SupplierPartDetail.tsx:97
-#: src/pages/part/PartDetail.tsx:428
-#: src/pages/stock/StockDetail.tsx:153
+#: src/pages/part/PartDetail.tsx:301
+#: src/pages/stock/StockDetail.tsx:154
#: src/tables/ColumnRenderers.tsx:116
#: src/tables/part/RelatedPartTable.tsx:73
msgid "IPN"
msgstr "內部零件編碼 IPN"
-#: src/forms/BuildForms.tsx:671
-#: src/forms/BuildForms.tsx:836
-#: src/forms/BuildForms.tsx:937
-#: src/forms/SalesOrderForms.tsx:430
-#: src/pages/part/PartDetail.tsx:1006
+#: src/forms/BuildForms.tsx:664
+#: src/forms/BuildForms.tsx:829
+#: src/forms/BuildForms.tsx:930
+#: src/forms/SalesOrderForms.tsx:435
+#: src/pages/part/PartDetail.tsx:905
#: src/tables/build/BuildAllocatedStockTable.tsx:129
#: src/tables/build/BuildLineTable.tsx:188
#: src/tables/sales/SalesOrderLineItemTable.tsx:340
@@ -4625,20 +4680,20 @@ msgstr "內部零件編碼 IPN"
msgid "Allocated"
msgstr "已分配"
-#: src/forms/BuildForms.tsx:706
-#: src/forms/SalesOrderForms.tsx:419
-#: src/pages/build/BuildDetail.tsx:109
-#: src/pages/build/BuildDetail.tsx:345
+#: src/forms/BuildForms.tsx:699
+#: src/forms/SalesOrderForms.tsx:424
+#: src/pages/build/BuildDetail.tsx:127
+#: src/pages/build/BuildDetail.tsx:363
msgid "Source Location"
msgstr "來源地點"
-#: src/forms/BuildForms.tsx:707
-#: src/forms/SalesOrderForms.tsx:420
+#: src/forms/BuildForms.tsx:700
+#: src/forms/SalesOrderForms.tsx:425
msgid "Select the source location for the stock allocation"
msgstr "選擇分配庫存的源位置"
-#: src/forms/BuildForms.tsx:739
-#: src/forms/SalesOrderForms.tsx:461
+#: src/forms/BuildForms.tsx:732
+#: src/forms/SalesOrderForms.tsx:466
#: src/tables/build/BuildLineTable.tsx:587
#: src/tables/build/BuildLineTable.tsx:760
#: src/tables/build/BuildLineTable.tsx:859
@@ -4648,8 +4703,8 @@ msgstr "選擇分配庫存的源位置"
msgid "Allocate Stock"
msgstr "分配庫存"
-#: src/forms/BuildForms.tsx:742
-#: src/forms/SalesOrderForms.tsx:466
+#: src/forms/BuildForms.tsx:735
+#: src/forms/SalesOrderForms.tsx:471
msgid "Stock items allocated"
msgstr "分配的庫存項目"
@@ -4658,38 +4713,38 @@ msgstr "分配的庫存項目"
#~ msgid "Stock items consumed"
#~ msgstr "Stock items consumed"
-#: src/forms/BuildForms.tsx:856
-#: src/forms/BuildForms.tsx:957
+#: src/forms/BuildForms.tsx:849
+#: src/forms/BuildForms.tsx:950
#: src/tables/build/BuildAllocatedStockTable.tsx:261
#: src/tables/build/BuildAllocatedStockTable.tsx:297
#: src/tables/build/BuildLineTable.tsx:770
#: src/tables/build/BuildLineTable.tsx:893
msgid "Consume Stock"
-msgstr ""
+msgstr "消耗庫存"
#: src/forms/BuildForms.tsx:856
#: src/forms/BuildForms.tsx:957
#~ msgid "Stock items scheduled to be consumed"
#~ msgstr "Stock items scheduled to be consumed"
-#: src/forms/BuildForms.tsx:893
+#: src/forms/BuildForms.tsx:886
#: src/tables/build/BuildLineTable.tsx:516
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
-msgstr ""
+msgstr "完全消耗"
-#: src/forms/BuildForms.tsx:938
+#: src/forms/BuildForms.tsx:931
#: src/tables/build/BuildLineTable.tsx:193
#: src/tables/stock/StockItemTable.tsx:221
msgid "Consumed"
-msgstr ""
+msgstr "已消耗"
-#: src/forms/CommonForms.tsx:93
-#: src/forms/PurchaseOrderForms.tsx:173
+#: src/forms/CommonForms.tsx:94
+#: src/forms/PurchaseOrderForms.tsx:179
#: src/forms/ReturnOrderForms.tsx:140
-#: src/forms/SalesOrderForms.tsx:191
+#: src/forms/SalesOrderForms.tsx:196
msgid "Select project code for this line item"
-msgstr ""
+msgstr "選擇此明細項目的專案代碼"
#: src/forms/CompanyForms.tsx:150
#~ msgid "Company updated"
@@ -4698,7 +4753,7 @@ msgstr ""
#: src/forms/PartForms.tsx:101
#: src/forms/PartForms.tsx:230
#: src/pages/part/CategoryDetail.tsx:127
-#: src/pages/part/PartDetail.tsx:645
+#: src/pages/part/PartDetail.tsx:518
#: src/tables/part/PartCategoryTable.tsx:96
#: src/tables/part/PartTable.tsx:322
msgid "Subscribed"
@@ -4706,7 +4761,7 @@ msgstr "已訂閲"
#: src/forms/PartForms.tsx:102
msgid "Subscribe to notifications for this part"
-msgstr ""
+msgstr "訂閱此零件的通知"
#: src/forms/PartForms.tsx:108
#~ msgid "Part created"
@@ -4722,7 +4777,7 @@ msgstr "上級零件類別"
#: src/forms/PartForms.tsx:231
msgid "Subscribe to notifications for this category"
-msgstr ""
+msgstr "訂閱此類別的通知"
#: src/forms/PurchaseOrderForms.tsx:421
#~ msgid "Assign Batch Code{0}"
@@ -4737,74 +4792,74 @@ msgstr ""
#~ msgid "Remove item from list"
#~ msgstr "Remove item from list"
-#: src/forms/PurchaseOrderForms.tsx:454
+#: src/forms/PurchaseOrderForms.tsx:465
msgid "Choose Location"
msgstr "選擇位置"
-#: src/forms/PurchaseOrderForms.tsx:462
+#: src/forms/PurchaseOrderForms.tsx:473
msgid "Item Destination selected"
msgstr "已選擇項目目的地"
-#: src/forms/PurchaseOrderForms.tsx:472
+#: src/forms/PurchaseOrderForms.tsx:483
msgid "Part category default location selected"
msgstr "已選擇零件類別默認位置"
-#: src/forms/PurchaseOrderForms.tsx:482
+#: src/forms/PurchaseOrderForms.tsx:493
msgid "Received stock location selected"
msgstr "已選擇接收庫存位置"
-#: src/forms/PurchaseOrderForms.tsx:490
+#: src/forms/PurchaseOrderForms.tsx:501
msgid "Default location selected"
msgstr "已選擇默認位置"
-#: src/forms/PurchaseOrderForms.tsx:537
-#: src/pages/part/PartDetail.tsx:640
-#: src/pages/part/PartDetail.tsx:1042
-#: src/tables/bom/BomTable.tsx:144
-#: src/tables/bom/BomTable.tsx:433
+#: src/forms/PurchaseOrderForms.tsx:548
+#: src/pages/part/PartDetail.tsx:513
+#: src/pages/part/PartDetail.tsx:941
+#: src/tables/bom/BomTable.tsx:167
+#: src/tables/bom/BomTable.tsx:457
msgid "Virtual Part"
msgstr "虛擬零件"
-#: src/forms/PurchaseOrderForms.tsx:538
+#: src/forms/PurchaseOrderForms.tsx:549
msgid "This part is virtual, no physical stock will be received."
-msgstr ""
+msgstr "此零件是虛擬的,將不會收到任何實體庫存。"
#: src/forms/PurchaseOrderForms.tsx:566
#~ msgid "Serial numbers"
#~ msgstr "Serial numbers"
-#: src/forms/PurchaseOrderForms.tsx:573
-msgid "Set Location"
-msgstr "設置位置"
-
-#: src/forms/PurchaseOrderForms.tsx:582
-msgid "Assign Batch Code"
-msgstr ""
-
#: src/forms/PurchaseOrderForms.tsx:582
#~ msgid "Store at line item destination"
#~ msgstr "Store at line item destination"
-#: src/forms/PurchaseOrderForms.tsx:592
+#: src/forms/PurchaseOrderForms.tsx:584
+msgid "Set Location"
+msgstr "設置位置"
+
+#: src/forms/PurchaseOrderForms.tsx:593
+msgid "Assign Batch Code"
+msgstr "分配批次代碼"
+
+#: src/forms/PurchaseOrderForms.tsx:603
msgid "Assign Serial Numbers"
-msgstr ""
+msgstr "分配序號"
-#: src/forms/PurchaseOrderForms.tsx:604
+#: src/forms/PurchaseOrderForms.tsx:615
msgid "Set Expiry Date"
-msgstr ""
+msgstr "設定到期日"
-#: src/forms/PurchaseOrderForms.tsx:613
+#: src/forms/PurchaseOrderForms.tsx:624
#: src/forms/StockForms.tsx:702
msgid "Adjust Packaging"
msgstr "調整封包"
-#: src/forms/PurchaseOrderForms.tsx:622
+#: src/forms/PurchaseOrderForms.tsx:633
#: src/forms/StockForms.tsx:693
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "更改狀態"
-#: src/forms/PurchaseOrderForms.tsx:629
+#: src/forms/PurchaseOrderForms.tsx:640
msgid "Add Note"
msgstr "添加備註"
@@ -4812,22 +4867,22 @@ msgstr "添加備註"
#~ msgid "Receive line items"
#~ msgstr "Receive line items"
-#: src/forms/PurchaseOrderForms.tsx:696
+#: src/forms/PurchaseOrderForms.tsx:707
msgid "Store at default location"
msgstr "存儲在默認位置"
-#: src/forms/PurchaseOrderForms.tsx:711
+#: src/forms/PurchaseOrderForms.tsx:722
msgid "Store at line item destination "
-msgstr ""
+msgstr "儲存在明細項目的目的地"
-#: src/forms/PurchaseOrderForms.tsx:723
+#: src/forms/PurchaseOrderForms.tsx:734
msgid "Store with already received stock"
msgstr "存儲已收到的庫存"
-#: src/forms/PurchaseOrderForms.tsx:747
-#: src/pages/build/BuildDetail.tsx:359
-#: src/pages/stock/StockDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:954
+#: src/forms/PurchaseOrderForms.tsx:758
+#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/stock/StockDetail.tsx:281
+#: src/pages/stock/StockDetail.tsx:976
#: src/tables/Filter.tsx:125
#: src/tables/build/BuildAllocatedStockTable.tsx:116
#: src/tables/build/BuildOutputTable.tsx:114
@@ -4837,51 +4892,51 @@ msgstr "存儲已收到的庫存"
msgid "Batch Code"
msgstr "批號"
-#: src/forms/PurchaseOrderForms.tsx:748
+#: src/forms/PurchaseOrderForms.tsx:759
msgid "Enter batch code for received items"
-msgstr ""
+msgstr "輸入收貨項目的批次代碼"
-#: src/forms/PurchaseOrderForms.tsx:761
+#: src/forms/PurchaseOrderForms.tsx:772
#: src/forms/StockForms.tsx:224
msgid "Serial Numbers"
msgstr "序列號"
-#: src/forms/PurchaseOrderForms.tsx:762
+#: src/forms/PurchaseOrderForms.tsx:773
msgid "Enter serial numbers for received items"
-msgstr ""
+msgstr "輸入收貨項目的序號"
-#: src/forms/PurchaseOrderForms.tsx:779
-#: src/pages/stock/StockDetail.tsx:382
+#: src/forms/PurchaseOrderForms.tsx:790
+#: src/pages/stock/StockDetail.tsx:383
#: src/tables/stock/StockItemTable.tsx:148
msgid "Expiry Date"
msgstr "有效期至"
-#: src/forms/PurchaseOrderForms.tsx:780
+#: src/forms/PurchaseOrderForms.tsx:791
msgid "Enter an expiry date for received items"
-msgstr ""
+msgstr "輸入收貨項目的到期日"
-#: src/forms/PurchaseOrderForms.tsx:792
+#: src/forms/PurchaseOrderForms.tsx:803
#: src/forms/StockForms.tsx:737
#: src/pages/company/SupplierPartDetail.tsx:173
#: src/pages/company/SupplierPartDetail.tsx:237
-#: src/pages/stock/StockDetail.tsx:419
+#: src/pages/stock/StockDetail.tsx:420
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223
msgid "Packaging"
msgstr "包裝"
-#: src/forms/PurchaseOrderForms.tsx:816
+#: src/forms/PurchaseOrderForms.tsx:827
#: src/pages/company/SupplierPartDetail.tsx:121
-#: src/tables/ColumnRenderers.tsx:517
+#: src/tables/ColumnRenderers.tsx:514
msgid "Note"
msgstr "備註"
-#: src/forms/PurchaseOrderForms.tsx:888
+#: src/forms/PurchaseOrderForms.tsx:899
#: src/pages/company/SupplierPartDetail.tsx:139
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:49
msgid "SKU"
msgstr "庫存單位 (SKU)"
-#: src/forms/PurchaseOrderForms.tsx:889
+#: src/forms/PurchaseOrderForms.tsx:900
#: src/tables/part/PartPurchaseOrdersTable.tsx:127
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:209
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281
@@ -4889,13 +4944,13 @@ msgstr "庫存單位 (SKU)"
msgid "Received"
msgstr "已接收"
-#: src/forms/PurchaseOrderForms.tsx:906
+#: src/forms/PurchaseOrderForms.tsx:917
msgid "Receive Line Items"
msgstr "接收行項目"
-#: src/forms/PurchaseOrderForms.tsx:912
+#: src/forms/PurchaseOrderForms.tsx:923
msgid "Items received"
-msgstr ""
+msgstr "已收到項目"
#: src/forms/ReturnOrderForms.tsx:259
msgid "Receive Items"
@@ -4906,54 +4961,54 @@ msgid "Item received into stock"
msgstr "已收到庫存物品"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
-#: src/forms/SalesOrderForms.tsx:183
+#: src/forms/SalesOrderForms.tsx:188
msgid "Price based on part and quantity differs{0}"
-msgstr ""
+msgstr "根據零件和數量的價格不同{0}"
-#: src/forms/SalesOrderForms.tsx:214
-#: src/forms/SalesOrderForms.tsx:216
+#: src/forms/SalesOrderForms.tsx:219
+#: src/forms/SalesOrderForms.tsx:221
#: src/tables/sales/SalesOrderShipmentTable.tsx:210
msgid "Check Shipment"
-msgstr ""
+msgstr "檢查發貨"
-#: src/forms/SalesOrderForms.tsx:217
+#: src/forms/SalesOrderForms.tsx:222
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
-msgstr ""
+msgstr "將發貨標記為已檢查表示您已驗證此發貨中包含的所有項目均正確無誤"
-#: src/forms/SalesOrderForms.tsx:227
+#: src/forms/SalesOrderForms.tsx:232
msgid "Shipment marked as checked"
-msgstr ""
+msgstr "發貨已標記為已檢查"
-#: src/forms/SalesOrderForms.tsx:242
-#: src/forms/SalesOrderForms.tsx:244
+#: src/forms/SalesOrderForms.tsx:247
+#: src/forms/SalesOrderForms.tsx:249
#: src/tables/sales/SalesOrderShipmentTable.tsx:223
msgid "Uncheck Shipment"
-msgstr ""
+msgstr "取消勾選發貨"
-#: src/forms/SalesOrderForms.tsx:245
+#: src/forms/SalesOrderForms.tsx:250
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
-msgstr ""
+msgstr "將發貨標記為未檢查表示發貨需要進一步驗證"
-#: src/forms/SalesOrderForms.tsx:255
+#: src/forms/SalesOrderForms.tsx:260
msgid "Shipment marked as unchecked"
-msgstr ""
+msgstr "發貨已標記為未檢查"
-#: src/forms/SalesOrderForms.tsx:273
+#: src/forms/SalesOrderForms.tsx:278
msgid "Completing shipment"
-msgstr ""
+msgstr "完成發貨"
-#: src/forms/SalesOrderForms.tsx:274
+#: src/forms/SalesOrderForms.tsx:279
msgid "Shipment completed successfully"
-msgstr ""
+msgstr "發貨已順利完成"
-#: src/forms/SalesOrderForms.tsx:281
+#: src/forms/SalesOrderForms.tsx:286
#: src/tables/sales/SalesOrderShipmentTable.tsx:233
msgid "Complete Shipment"
msgstr "完成配送"
-#: src/forms/SalesOrderForms.tsx:527
+#: src/forms/SalesOrderForms.tsx:532
msgid "Leave blank to use the order address"
-msgstr ""
+msgstr "留空以使用訂單地址"
#: src/forms/StockForms.tsx:110
#~ msgid "Create Stock Item"
@@ -4980,7 +5035,7 @@ msgid "Stock Status"
msgstr "庫存狀態"
#: src/forms/StockForms.tsx:324
-#: src/pages/stock/StockDetail.tsx:687
+#: src/pages/stock/StockDetail.tsx:708
#: src/tables/stock/StockItemTable.tsx:406
#: src/tables/stock/StockItemTable.tsx:455
msgid "Add Stock Item"
@@ -4992,7 +5047,7 @@ msgstr "選擇要安裝的零件"
#: src/forms/StockForms.tsx:495
msgid "Confirm Stock Transfer"
-msgstr ""
+msgstr "確認庫存轉移"
#: src/forms/StockForms.tsx:681
msgid "Move to default location"
@@ -5007,7 +5062,7 @@ msgid "Return"
msgstr "退貨"
#: src/forms/StockForms.tsx:988
-#: src/pages/Index/Scan.tsx:182
+#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "總計"
@@ -5018,11 +5073,11 @@ msgstr "添加庫存"
#: src/forms/StockForms.tsx:1296
msgid "Stock added"
-msgstr ""
+msgstr "庫存已新增"
#: src/forms/StockForms.tsx:1299
msgid "Increase the quantity of the selected stock items by a given amount."
-msgstr ""
+msgstr "增加選定庫存項目的數量。"
#: src/forms/StockForms.tsx:1310
#: src/hooks/UseStockAdjustActions.tsx:122
@@ -5031,11 +5086,11 @@ msgstr "移除庫存"
#: src/forms/StockForms.tsx:1311
msgid "Stock removed"
-msgstr ""
+msgstr "庫存已移除"
#: src/forms/StockForms.tsx:1314
msgid "Decrease the quantity of the selected stock items by a given amount."
-msgstr ""
+msgstr "減少選定庫存項目的數量。"
#: src/forms/StockForms.tsx:1325
#: src/hooks/UseStockAdjustActions.tsx:132
@@ -5044,24 +5099,24 @@ msgstr "轉移庫存"
#: src/forms/StockForms.tsx:1326
msgid "Stock transferred"
-msgstr ""
+msgstr "庫存已轉移"
#: src/forms/StockForms.tsx:1329
msgid "Transfer selected items to the specified location."
-msgstr ""
+msgstr "將選定項目轉移到指定位置。"
#: src/forms/StockForms.tsx:1340
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
-msgstr ""
+msgstr "退回庫存"
#: src/forms/StockForms.tsx:1341
msgid "Stock returned"
-msgstr ""
+msgstr "庫存已退回"
#: src/forms/StockForms.tsx:1344
msgid "Return selected items into stock, to the specified location."
-msgstr ""
+msgstr "將選定項目退回庫存,至指定位置。"
#: src/forms/StockForms.tsx:1355
#: src/hooks/UseStockAdjustActions.tsx:102
@@ -5070,11 +5125,11 @@ msgstr "庫存數量"
#: src/forms/StockForms.tsx:1356
msgid "Stock counted"
-msgstr ""
+msgstr "庫存已盤點"
#: src/forms/StockForms.tsx:1359
msgid "Count the selected stock items, and adjust the quantity accordingly."
-msgstr ""
+msgstr "盤點選定的庫存項目,並相應地調整數量。"
#: src/forms/StockForms.tsx:1370
msgid "Change Stock Status"
@@ -5082,20 +5137,20 @@ msgstr "更改庫存狀態"
#: src/forms/StockForms.tsx:1371
msgid "Stock status changed"
-msgstr ""
+msgstr "庫存狀態已變更"
#: src/forms/StockForms.tsx:1374
msgid "Change the status of the selected stock items."
-msgstr ""
+msgstr "變更選定庫存項目的狀態。"
#: src/forms/StockForms.tsx:1397
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
-msgstr ""
+msgstr "變更批次代碼"
#: src/forms/StockForms.tsx:1400
msgid "Change batch code for the selected stock items"
-msgstr ""
+msgstr "變更選定庫存項目的批次代碼"
#: src/forms/StockForms.tsx:1417
#: src/hooks/UseStockAdjustActions.tsx:142
@@ -5104,31 +5159,31 @@ msgstr "合併庫存"
#: src/forms/StockForms.tsx:1418
msgid "Stock merged"
-msgstr ""
+msgstr "庫存已合併"
#: src/forms/StockForms.tsx:1420
msgid "Merge Stock Items"
-msgstr ""
+msgstr "合併庫存項目"
#: src/forms/StockForms.tsx:1422
msgid "Merge operation cannot be reversed"
-msgstr ""
+msgstr "合併操作無法還原"
#: src/forms/StockForms.tsx:1423
msgid "Tracking information may be lost when merging items"
-msgstr ""
+msgstr "合併項目時可能會遺失追蹤資訊"
#: src/forms/StockForms.tsx:1424
msgid "Supplier information may be lost when merging items"
-msgstr ""
+msgstr "合併項目時可能會遺失供應商資訊"
#: src/forms/StockForms.tsx:1442
msgid "Assign Stock to Customer"
-msgstr ""
+msgstr "將庫存分配給客戶"
#: src/forms/StockForms.tsx:1443
msgid "Stock assigned to customer"
-msgstr ""
+msgstr "庫存已分配給客戶"
#: src/forms/StockForms.tsx:1453
msgid "Delete Stock Items"
@@ -5136,11 +5191,11 @@ msgstr "刪除庫存項"
#: src/forms/StockForms.tsx:1454
msgid "Stock deleted"
-msgstr ""
+msgstr "庫存已刪除"
#: src/forms/StockForms.tsx:1457
msgid "This operation will permanently delete the selected stock items."
-msgstr ""
+msgstr "此操作將永久刪除選定的庫存項目。"
#: src/forms/StockForms.tsx:1466
msgid "Parent stock location"
@@ -5148,27 +5203,27 @@ msgstr "上級庫存地點"
#: src/forms/StockForms.tsx:1597
msgid "Find Serial Number"
-msgstr ""
+msgstr "尋找序號"
#: src/forms/StockForms.tsx:1608
msgid "No matching items"
-msgstr ""
+msgstr "沒有符合的項目"
#: src/forms/StockForms.tsx:1614
msgid "Multiple matching items"
-msgstr ""
+msgstr "多個符合的項目"
#: src/forms/StockForms.tsx:1623
msgid "Invalid response from server"
-msgstr ""
+msgstr "伺服器回應無效"
#: src/forms/selectionListFields.tsx:95
msgid "Entries"
-msgstr ""
+msgstr "項目"
#: src/forms/selectionListFields.tsx:96
msgid "List of entries to choose from"
-msgstr ""
+msgstr "可供選擇的項目清單"
#: src/forms/selectionListFields.tsx:100
#: src/pages/part/PartStockHistoryDetail.tsx:64
@@ -5182,7 +5237,7 @@ msgstr "值"
#: src/forms/selectionListFields.tsx:101
msgid "Label"
-msgstr ""
+msgstr "標籤"
#: src/functions/api.tsx:33
msgid "Bad request"
@@ -5202,11 +5257,11 @@ msgstr "未找到"
#: src/functions/api.tsx:45
msgid "Method not allowed"
-msgstr ""
+msgstr "不允許的方法"
#: src/functions/api.tsx:48
msgid "Internal server error"
-msgstr ""
+msgstr "內部伺服器錯誤"
#: src/functions/auth.tsx:34
#~ msgid "Error fetching token from server."
@@ -5229,13 +5284,13 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:216
+#: src/functions/auth.tsx:220
msgid "Logged Out"
msgstr "已登出"
#: src/functions/auth.tsx:125
msgid "There was a conflicting session for this browser, which has been logged out."
-msgstr ""
+msgstr "此瀏覽器存在衝突的工作階段,已登出。"
#: src/functions/auth.tsx:142
#~ msgid "Found an existing login - using it to log you in."
@@ -5243,7 +5298,7 @@ msgstr ""
#: src/functions/auth.tsx:143
msgid "No response from server."
-msgstr ""
+msgstr "伺服器沒有回應。"
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
@@ -5251,89 +5306,89 @@ msgstr ""
#: src/functions/auth.tsx:186
msgid "MFA Login successful"
-msgstr ""
+msgstr "MFA 登入成功"
#: src/functions/auth.tsx:187
msgid "MFA details were automatically provided in the browser"
-msgstr ""
+msgstr "MFA 詳情已在瀏覽器中自動提供"
-#: src/functions/auth.tsx:217
+#: src/functions/auth.tsx:221
msgid "Successfully logged out"
msgstr "已成功登出"
-#: src/functions/auth.tsx:284
+#: src/functions/auth.tsx:288
msgid "Language changed"
-msgstr ""
+msgstr "語言已變更"
-#: src/functions/auth.tsx:285
+#: src/functions/auth.tsx:289
msgid "Your active language has been changed to the one set in your profile"
-msgstr ""
+msgstr "您的使用語言已變更為您個人資料中設定的語言"
-#: src/functions/auth.tsx:306
+#: src/functions/auth.tsx:310
msgid "Theme changed"
-msgstr ""
+msgstr "佈景主題已變更"
-#: src/functions/auth.tsx:307
+#: src/functions/auth.tsx:311
msgid "Your active theme has been changed to the one set in your profile"
-msgstr ""
+msgstr "您的使用佈景主題已變更為您個人資料中設定的佈景主題"
-#: src/functions/auth.tsx:342
+#: src/functions/auth.tsx:346
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:349
-#: src/functions/auth.tsx:613
+#: src/functions/auth.tsx:353
+#: src/functions/auth.tsx:617
msgid "Reset failed"
msgstr "重置失敗"
-#: src/functions/auth.tsx:376
+#: src/functions/auth.tsx:380
msgid "Already logged in"
-msgstr ""
+msgstr "已經登入"
-#: src/functions/auth.tsx:377
+#: src/functions/auth.tsx:381
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
-msgstr ""
+msgstr "此瀏覽器在伺服器上存在衝突的工作階段。請先登出該工作階段。"
-#: src/functions/auth.tsx:433
+#: src/functions/auth.tsx:437
msgid "Logged In"
msgstr "已登錄"
-#: src/functions/auth.tsx:434
+#: src/functions/auth.tsx:438
msgid "Successfully logged in"
msgstr "已成功登入"
-#: src/functions/auth.tsx:568
+#: src/functions/auth.tsx:572
msgid "Failed to set up MFA"
-msgstr ""
+msgstr "設定 MFA 失敗"
-#: src/functions/auth.tsx:587
+#: src/functions/auth.tsx:591
msgid "MFA Setup successful"
-msgstr ""
+msgstr "MFA 設定成功"
-#: src/functions/auth.tsx:588
+#: src/functions/auth.tsx:592
msgid "MFA via TOTP has been set up successfully; you will need to login again."
-msgstr ""
+msgstr "已成功設定透過 TOTP 進行的 MFA;您將需要重新登入。"
-#: src/functions/auth.tsx:603
+#: src/functions/auth.tsx:607
msgid "Password set"
msgstr "密碼已設置"
-#: src/functions/auth.tsx:604
-#: src/functions/auth.tsx:713
+#: src/functions/auth.tsx:608
+#: src/functions/auth.tsx:717
msgid "The password was set successfully. You can now login with your new password"
msgstr "密碼設置成功。您現在可以使用新密碼登錄"
-#: src/functions/auth.tsx:678
+#: src/functions/auth.tsx:682
msgid "Password could not be changed"
-msgstr ""
+msgstr "密碼無法變更"
-#: src/functions/auth.tsx:696
+#: src/functions/auth.tsx:700
msgid "The two password fields didn’t match"
-msgstr ""
+msgstr "兩個密碼欄位不相符"
-#: src/functions/auth.tsx:712
+#: src/functions/auth.tsx:716
msgid "Password Changed"
-msgstr ""
+msgstr "密碼已變更"
#: src/functions/forms.tsx:50
#~ msgid "Form method not provided"
@@ -5351,49 +5406,21 @@ msgstr ""
#~ msgid "method parameter not supplied"
#~ msgstr "method parameter not supplied"
-#: src/functions/notifications.tsx:13
-msgid "Not implemented"
-msgstr "尚未實現"
-
-#: src/functions/notifications.tsx:14
-msgid "This feature is not yet implemented"
-msgstr "此功能尚未實現"
-
#: src/functions/notifications.tsx:24
#~ msgid "Permission denied"
#~ msgstr "Permission denied"
-#: src/functions/notifications.tsx:26
-msgid "You do not have permission to perform this action"
-msgstr "您無權執行此操作。"
-
-#: src/functions/notifications.tsx:37
-msgid "Invalid Return Code"
-msgstr "無效返回碼"
-
-#: src/functions/notifications.tsx:38
-msgid "Server returned status {returnCode}"
-msgstr "服務器返回狀態 {returnCode}"
-
-#: src/functions/notifications.tsx:48
-msgid "Timeout"
-msgstr "超時"
-
-#: src/functions/notifications.tsx:49
-msgid "The request timed out"
-msgstr "請求已超時"
-
#: src/hooks/UseDataExport.tsx:34
msgid "Exporting Data"
-msgstr ""
+msgstr "正在匯出資料"
#: src/hooks/UseDataExport.tsx:111
msgid "Export Data"
-msgstr ""
+msgstr "匯出資料"
#: src/hooks/UseDataExport.tsx:114
msgid "Export"
-msgstr ""
+msgstr "匯出"
#: src/hooks/UseForm.tsx:102
msgid "Item Created"
@@ -5405,11 +5432,11 @@ msgstr "項目已更新"
#: src/hooks/UseForm.tsx:143
msgid "Items Updated"
-msgstr ""
+msgstr "項目已更新"
#: src/hooks/UseForm.tsx:145
msgid "Update multiple items"
-msgstr ""
+msgstr "更新多個項目"
#: src/hooks/UseForm.tsx:175
msgid "Item Deleted"
@@ -5425,93 +5452,93 @@ msgstr "確實要刪除此項目嗎?"
#: src/hooks/UseStockAdjustActions.tsx:104
msgid "Count selected stock items"
-msgstr ""
+msgstr "盤點選定的庫存項目"
#: src/hooks/UseStockAdjustActions.tsx:114
msgid "Add to selected stock items"
-msgstr ""
+msgstr "新增至選定的庫存項目"
#: src/hooks/UseStockAdjustActions.tsx:124
msgid "Remove from selected stock items"
-msgstr ""
+msgstr "從選定的庫存項目中移除"
#: src/hooks/UseStockAdjustActions.tsx:134
msgid "Transfer selected stock items"
-msgstr ""
+msgstr "轉移選定的庫存項目"
#: src/hooks/UseStockAdjustActions.tsx:144
msgid "Merge selected stock items"
-msgstr ""
+msgstr "合併選定的庫存項目"
#: src/hooks/UseStockAdjustActions.tsx:154
msgid "Change status of selected stock items"
-msgstr ""
+msgstr "變更選定庫存項目的狀態"
#: src/hooks/UseStockAdjustActions.tsx:164
msgid "Change batch code of selected stock items"
-msgstr ""
+msgstr "變更選定庫存項目的批次代碼"
#: src/hooks/UseStockAdjustActions.tsx:172
msgid "Assign Stock"
-msgstr ""
+msgstr "分配庫存"
#: src/hooks/UseStockAdjustActions.tsx:174
msgid "Assign selected stock items to a customer"
-msgstr ""
+msgstr "將選定的庫存項目分配給客戶"
#: src/hooks/UseStockAdjustActions.tsx:184
msgid "Return selected items into stock"
-msgstr ""
+msgstr "將選定的項目退回庫存"
#: src/hooks/UseStockAdjustActions.tsx:192
msgid "Delete Stock"
-msgstr ""
+msgstr "刪除庫存"
#: src/hooks/UseStockAdjustActions.tsx:194
msgid "Delete selected stock items"
-msgstr ""
+msgstr "刪除選定的庫存項目"
#: src/hooks/UseStockAdjustActions.tsx:219
-#: src/pages/part/PartDetail.tsx:1150
+#: src/pages/part/PartDetail.tsx:1049
msgid "Stock Actions"
msgstr "庫存操作"
#: src/pages/Auth/ChangePassword.tsx:32
#: src/pages/Auth/Reset.tsx:14
msgid "Reset Password"
-msgstr ""
+msgstr "重設密碼"
#: src/pages/Auth/ChangePassword.tsx:46
msgid "Current Password"
-msgstr ""
+msgstr "目前密碼"
#: src/pages/Auth/ChangePassword.tsx:47
msgid "Enter your current password"
-msgstr ""
+msgstr "輸入您目前的密碼"
#: src/pages/Auth/ChangePassword.tsx:53
msgid "New Password"
-msgstr ""
+msgstr "新密碼"
#: src/pages/Auth/ChangePassword.tsx:54
msgid "Enter your new password"
-msgstr ""
+msgstr "輸入您的新密碼"
#: src/pages/Auth/ChangePassword.tsx:60
msgid "Confirm New Password"
-msgstr ""
+msgstr "確認新密碼"
#: src/pages/Auth/ChangePassword.tsx:61
msgid "Confirm your new password"
-msgstr ""
+msgstr "確認您的新密碼"
#: src/pages/Auth/ChangePassword.tsx:80
msgid "Confirm"
-msgstr ""
+msgstr "確認"
#: src/pages/Auth/Layout.tsx:59
msgid "Log off"
-msgstr ""
+msgstr "登出"
#: src/pages/Auth/LoggedIn.tsx:19
msgid "Checking if you are already logged in"
@@ -5535,7 +5562,7 @@ msgstr "登錄"
#: src/pages/Auth/Login.tsx:113
msgid "Logging you in"
-msgstr ""
+msgstr "正在為您登入"
#: src/pages/Auth/Login.tsx:120
msgid "Don't have an account?"
@@ -5557,36 +5584,36 @@ msgstr "沒有帳户?"
#: src/pages/Auth/MFA.tsx:29
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:86
msgid "Multi-Factor Authentication"
-msgstr ""
+msgstr "多重驗證"
#: src/pages/Auth/MFA.tsx:33
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:219
msgid "TOTP Code"
-msgstr ""
+msgstr "TOTP 代碼"
#: src/pages/Auth/MFA.tsx:35
msgid "Enter one of your codes: {mfa_types}"
-msgstr ""
+msgstr "輸入您的一組代碼:{mfa_types}"
#: src/pages/Auth/MFA.tsx:42
msgid "Remember this device"
-msgstr ""
+msgstr "記住此裝置"
#: src/pages/Auth/MFA.tsx:44
msgid "If enabled, you will not be asked for MFA on this device for 30 days."
-msgstr ""
+msgstr "若啟用,您在 30 天內將不會在此裝置上被要求進行 MFA。"
#: src/pages/Auth/MFA.tsx:53
msgid "Log in"
-msgstr ""
+msgstr "登入"
#: src/pages/Auth/MFASetup.tsx:23
msgid "MFA Setup Required"
-msgstr ""
+msgstr "需要設定 MFA"
#: src/pages/Auth/MFASetup.tsx:34
msgid "Add TOTP"
-msgstr ""
+msgstr "新增 TOTP"
#: src/pages/Auth/Register.tsx:23
msgid "Go back to login"
@@ -5600,11 +5627,11 @@ msgstr "返回登錄界面"
#: src/pages/Auth/ResetPassword.tsx:22
#: src/pages/Auth/VerifyEmail.tsx:19
msgid "Key invalid"
-msgstr ""
+msgstr "密鑰無效"
#: src/pages/Auth/ResetPassword.tsx:23
msgid "You need to provide a valid key to set a new password. Check your inbox for a reset link."
-msgstr ""
+msgstr "您需要提供有效的密鑰來設定新密碼。請檢查您的收件匣以獲取重設連結。"
#: src/pages/Auth/ResetPassword.tsx:30
#~ msgid "Token invalid"
@@ -5620,11 +5647,11 @@ msgstr "設置新密碼"
#: src/pages/Auth/ResetPassword.tsx:35
msgid "The desired new password"
-msgstr ""
+msgstr "期望的新密碼"
#: src/pages/Auth/ResetPassword.tsx:44
msgid "Send Password"
-msgstr ""
+msgstr "傳送密碼"
#: src/pages/Auth/Set-Password.tsx:49
#~ msgid "No token provided"
@@ -5636,15 +5663,15 @@ msgstr ""
#: src/pages/Auth/VerifyEmail.tsx:20
msgid "You need to provide a valid key."
-msgstr ""
+msgstr "您需要提供有效的密鑰。"
#: src/pages/Auth/VerifyEmail.tsx:28
msgid "Verify Email"
-msgstr ""
+msgstr "驗證電子郵件"
#: src/pages/Auth/VerifyEmail.tsx:30
msgid "Verify"
-msgstr ""
+msgstr "驗證"
#. placeholder {0}: error.statusText
#: src/pages/ErrorPage.tsx:16
@@ -5811,75 +5838,75 @@ msgstr "發生意外錯誤。"
#~ msgid "Design <0/>"
#~ msgstr "Design <0/>"
-#: src/pages/Index/Scan.tsx:65
+#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
-msgstr ""
+msgstr "項目已掃描"
-#: src/pages/Index/Scan.tsx:82
+#: src/pages/Index/Scan.tsx:80
msgid "API Error"
-msgstr ""
+msgstr "API 錯誤"
-#: src/pages/Index/Scan.tsx:83
+#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
-msgstr ""
+msgstr "無法獲取實例資料"
-#: src/pages/Index/Scan.tsx:130
+#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
-msgstr ""
+msgstr "掃描錯誤"
-#: src/pages/Index/Scan.tsx:162
+#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
msgstr "所選元素未知"
-#: src/pages/Index/Scan.tsx:169
+#: src/pages/Index/Scan.tsx:167
msgid "Multiple object types selected"
msgstr "選擇多個對象類型"
+#: src/pages/Index/Scan.tsx:175
+msgid "Actions ... "
+msgstr "操作..."
+
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
#~ msgstr "Actions ..."
-#: src/pages/Index/Scan.tsx:177
-msgid "Actions ... "
-msgstr ""
-
-#: src/pages/Index/Scan.tsx:194
-#: src/pages/Index/Scan.tsx:198
+#: src/pages/Index/Scan.tsx:192
+#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
-msgstr ""
+msgstr "條碼掃描"
-#: src/pages/Index/Scan.tsx:207
+#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
-msgstr ""
+msgstr "條碼輸入"
-#: src/pages/Index/Scan.tsx:214
+#: src/pages/Index/Scan.tsx:212
msgid "Action"
msgstr "操作"
-#: src/pages/Index/Scan.tsx:217
+#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
-msgstr ""
+msgstr "未選擇項目"
+
+#: src/pages/Index/Scan.tsx:216
+msgid "Scan and select items to perform actions"
+msgstr "掃描並選擇項目以執行操作"
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
#~ msgstr "Manual input"
-#: src/pages/Index/Scan.tsx:218
-msgid "Scan and select items to perform actions"
-msgstr ""
-
#: src/pages/Index/Scan.tsx:218
#~ msgid "Image Barcode"
#~ msgstr "Image Barcode"
#. placeholder {0}: selection.length
-#: src/pages/Index/Scan.tsx:223
+#: src/pages/Index/Scan.tsx:221
msgid "{0} items selected"
msgstr "已選擇 {0} 項"
-#: src/pages/Index/Scan.tsx:235
+#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
-msgstr ""
+msgstr "已掃描的項目"
#: src/pages/Index/Scan.tsx:276
#~ msgid "Actions for {0}"
@@ -5981,7 +6008,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:33
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:113
msgid "Edit Account Information"
-msgstr ""
+msgstr "編輯帳號資訊"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:34
#~ msgid "User details updated"
@@ -5989,7 +6016,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:37
msgid "Account details updated"
-msgstr ""
+msgstr "帳號詳情已更新"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:46
#~ msgid "User Actions"
@@ -6002,7 +6029,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:136
msgid "Edit Profile Information"
-msgstr ""
+msgstr "編輯個人資料資訊"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55
#~ msgid "Last name"
@@ -6018,7 +6045,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:59
msgid "Profile details updated"
-msgstr ""
+msgstr "個人資料詳情已更新"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:61
#~ msgid "Last name: {0}"
@@ -6055,108 +6082,108 @@ msgstr "顯示名稱"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:86
#: src/pages/core/UserDetail.tsx:127
msgid "Position"
-msgstr ""
+msgstr "職位"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:90
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:967
msgid "Type"
-msgstr ""
+msgstr "類型"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:91
#: src/pages/core/UserDetail.tsx:143
msgid "Organisation"
-msgstr ""
+msgstr "組織"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:92
msgid "Primary Group"
-msgstr ""
+msgstr "主要群組"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:104
msgid "Account Details"
-msgstr ""
+msgstr "帳號詳情"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:107
msgid "Account Actions"
-msgstr ""
+msgstr "帳號操作"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:111
msgid "Edit Account"
-msgstr ""
+msgstr "編輯帳號"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:117
#: src/tables/settings/UserTable.tsx:323
msgid "Change Password"
-msgstr ""
+msgstr "變更密碼"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:119
msgid "Change User Password"
-msgstr ""
+msgstr "變更使用者密碼"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:131
msgid "Profile Details"
-msgstr ""
+msgstr "個人資料詳情"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:134
msgid "Edit Profile"
-msgstr ""
+msgstr "編輯個人資料"
#. placeholder {0}: item.label
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:153
msgid "{0}"
-msgstr ""
+msgstr "{0}"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:105
msgid "Reauthentication Succeeded"
-msgstr ""
+msgstr "重新驗證成功"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:106
msgid "You have been reauthenticated successfully."
-msgstr ""
+msgstr "您已成功重新驗證。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:114
msgid "Error during reauthentication"
-msgstr ""
+msgstr "重新驗證期間發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:117
msgid "Reauthentication Failed"
-msgstr ""
+msgstr "重新驗證失敗"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:118
msgid "Failed to reauthenticate"
-msgstr ""
+msgstr "無法重新驗證"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:133
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:173
msgid "Reauthenticate"
-msgstr ""
+msgstr "重新驗證"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:135
msgid "Reauthentiction is required to continue."
-msgstr ""
+msgstr "需要重新驗證才能繼續。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:197
msgid "Enter your password"
-msgstr ""
+msgstr "輸入您的密碼"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:221
msgid "Enter one of your TOTP codes"
-msgstr ""
+msgstr "輸入您的 TOTP 代碼之一"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:273
msgid "WebAuthn Credential Removed"
-msgstr ""
+msgstr "已移除 WebAuthn 憑證"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:274
msgid "WebAuthn credential removed successfully."
-msgstr ""
+msgstr "WebAuthn 憑證已成功移除。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:283
msgid "Error removing WebAuthn credential"
-msgstr ""
+msgstr "移除 WebAuthn 憑證時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:304
msgid "Remove WebAuthn Credential"
-msgstr ""
+msgstr "移除 WebAuthn 憑證"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:312
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:403
@@ -6164,175 +6191,175 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:674
#: src/tables/sales/SalesOrderAllocationTable.tsx:219
msgid "Confirm Removal"
-msgstr ""
+msgstr "確認移除"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:314
msgid "Confirm removal of webauth credential"
-msgstr ""
+msgstr "確認移除 WebAuthn 憑證"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:366
msgid "TOTP Removed"
-msgstr ""
+msgstr "TOTP 已移除"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:367
msgid "TOTP token removed successfully."
-msgstr ""
+msgstr "TOTP 權杖已成功移除。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:377
msgid "Error removing TOTP token"
-msgstr ""
+msgstr "移除 TOTP 權杖時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:396
msgid "Remove TOTP Token"
-msgstr ""
+msgstr "移除 TOTP 權杖"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:405
msgid "Confirm removal of TOTP code"
-msgstr ""
+msgstr "確認移除 TOTP 代碼"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:465
msgid "TOTP Already Registered"
-msgstr ""
+msgstr "TOTP 已註冊"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:466
msgid "A TOTP token is already registered for this account."
-msgstr ""
+msgstr "此帳號已經註冊了一個 TOTP 權杖。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:481
msgid "Error Fetching TOTP Registration"
-msgstr ""
+msgstr "獲取 TOTP 註冊資料時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:482
msgid "An unexpected error occurred while fetching TOTP registration data."
-msgstr ""
+msgstr "獲取 TOTP 註冊資料時發生意外的錯誤。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:524
msgid "TOTP Registered"
-msgstr ""
+msgstr "TOTP 已註冊"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:525
msgid "TOTP token registered successfully."
-msgstr ""
+msgstr "TOTP 權杖已成功註冊。"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:534
msgid "Error registering TOTP token"
-msgstr ""
+msgstr "註冊 TOTP 權杖時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:553
msgid "Register TOTP Token"
-msgstr ""
+msgstr "註冊 TOTP 權杖"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:598
msgid "Error fetching recovery codes"
-msgstr ""
+msgstr "獲取備用代碼時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:634
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:650
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:866
msgid "Recovery Codes"
-msgstr ""
+msgstr "備用代碼"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:652
msgid "The following one time recovery codes are available for use"
-msgstr ""
+msgstr "以下一次性備用代碼可供使用"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:669
msgid "Copy recovery codes to clipboard"
-msgstr ""
+msgstr "將備用代碼複製到剪貼簿"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:679
msgid "No Unused Codes"
-msgstr ""
+msgstr "沒有未使用的代碼"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:681
msgid "There are no available recovery codes"
-msgstr ""
+msgstr "沒有可用的備用代碼"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:782
msgid "WebAuthn Registered"
-msgstr ""
+msgstr "WebAuthn 已註冊"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:783
msgid "WebAuthn credential registered successfully"
-msgstr ""
+msgstr "WebAuthn 憑證已成功註冊"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:792
msgid "Error registering WebAuthn credential"
-msgstr ""
+msgstr "註冊 WebAuthn 憑證時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:795
msgid "WebAuthn Registration Failed"
-msgstr ""
+msgstr "WebAuthn 註冊失敗"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:796
msgid "Failed to register WebAuthn credential"
-msgstr ""
+msgstr "無法註冊 WebAuthn 憑證"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:819
msgid "Error fetching WebAuthn registration"
-msgstr ""
+msgstr "獲取 WebAuthn 註冊資料時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:859
msgid "TOTP"
-msgstr ""
+msgstr "TOTP"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:860
msgid "Time-based One-Time Password"
-msgstr ""
+msgstr "基於時間的一次性密碼 (TOTP)"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:867
msgid "One-Time pre-generated recovery codes"
-msgstr ""
+msgstr "一次性預先生成的備用代碼"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:873
msgid "WebAuthn"
-msgstr ""
+msgstr "WebAuthn"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:874
msgid "Web Authentication (WebAuthn) is a web standard for secure authentication"
-msgstr ""
+msgstr "Web 驗證 (WebAuthn) 是一種用於安全驗證的 Web 標準"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:970
msgid "Last used at"
-msgstr ""
+msgstr "最後使用於"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:973
msgid "Created at"
-msgstr ""
+msgstr "建立於"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:984
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:204
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:362
msgid "Not Configured"
-msgstr ""
+msgstr "尚未設定"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:988
msgid "No multi-factor tokens configured for this account"
-msgstr ""
+msgstr "此帳號未設定多重驗證權杖"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:993
msgid "Register Authentication Method"
-msgstr ""
+msgstr "註冊驗證方法"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:1009
msgid "No MFA Methods Available"
-msgstr ""
+msgstr "沒有可用的 MFA 方法"
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:1013
msgid "There are no MFA methods available for configuration"
-msgstr ""
+msgstr "沒有可供設定的 MFA 方法"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:27
msgid "Secret"
-msgstr ""
+msgstr "密鑰"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:40
msgid "One-Time Password"
-msgstr ""
+msgstr "一次性密碼"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:41
msgid "Enter the TOTP code to ensure it registered correctly"
-msgstr ""
+msgstr "輸入 TOTP 代碼以確保其註冊正確"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55
#~ msgid "Single Sign On Accounts"
@@ -6340,11 +6367,11 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60
msgid "Email Addresses"
-msgstr ""
+msgstr "電子郵件地址"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:68
msgid "Single Sign On"
-msgstr ""
+msgstr "單一登入 (SSO)"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69
#~ msgid "Multifactor"
@@ -6360,7 +6387,7 @@ msgstr "未啓用"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:79
msgid "Single Sign On is not enabled for this server "
-msgstr ""
+msgstr "此伺服器未啟用單一登入"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83
#~ msgid "Multifactor authentication is not configured for your account"
@@ -6368,11 +6395,11 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:94
msgid "Access Tokens"
-msgstr ""
+msgstr "存取權杖"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:108
msgid "Session Information"
-msgstr ""
+msgstr "工作階段資訊"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:146
#: src/tables/general/BarcodeScanTable.tsx:60
@@ -6384,15 +6411,15 @@ msgstr "時間戳"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:147
msgid "Method"
-msgstr ""
+msgstr "方法"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:190
msgid "Error while updating email"
-msgstr ""
+msgstr "更新電子郵件時發生錯誤"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:207
msgid "Currently no email addresses are registered."
-msgstr ""
+msgstr "目前沒有註冊任何電子郵件地址。"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:215
msgid "The following email addresses are associated with your account:"
@@ -6445,7 +6472,7 @@ msgstr "郵箱地址"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:290
msgid "Error while adding email"
-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"
@@ -6457,15 +6484,15 @@ msgstr "添加電子郵件"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:365
msgid "There are no providers connected to this account."
-msgstr ""
+msgstr "此帳號沒有連結任何提供者。"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:374
msgid "You can sign in to your account using any of the following providers"
-msgstr ""
+msgstr "您可以使用以下任何提供者登入您的帳號"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:387
msgid "Remove Provider Link"
-msgstr ""
+msgstr "移除提供者連結"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:556
#~ msgid "Unused Codes"
@@ -6593,7 +6620,7 @@ msgstr "點"
#~ msgstr "Advanced Amininistrative Options for InvenTree"
#: src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx:28
-#: src/tables/ColumnRenderers.tsx:753
+#: src/tables/ColumnRenderers.tsx:750
msgid "Currency"
msgstr "貨幣"
@@ -6623,7 +6650,7 @@ msgstr "基準貨幣"
#: src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx:13
msgid "Email Messages"
-msgstr ""
+msgstr "電子郵件訊息"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:22
#~ msgid "Active Alerts"
@@ -6635,65 +6662,65 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:36
msgid "System Status"
-msgstr ""
+msgstr "系統狀態"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:47
msgid "Admin Center Information"
-msgstr ""
+msgstr "管理中心資訊"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:53
msgid "The home panel (and the whole Admin Center) is a new feature starting with the new UI and was previously (before 1.0) not available."
-msgstr ""
+msgstr "主面板 (以及整個管理中心) 是從新 UI 開始的一項新功能,在此之前 (1.0 版之前) 不可用。"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:60
msgid "The admin center provides a centralized location for all administration functionality and is meant to replace all interaction with the (django) backend admin interface."
-msgstr ""
+msgstr "管理中心為所有管理功能提供一個集中的位置,旨在取代與 (django) 後端管理介面的所有互動。"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:67
msgid "Please open feature requests (after checking the tracker) for any existing backend admin functionality you are missing in this UI. The backend admin interface should be used carefully and seldom."
-msgstr ""
+msgstr "如果您在此 UI 中遺失任何現有的後端管理功能,請在檢查追蹤器後開啟功能請求。應謹慎且較少地使用後端管理介面。"
#: src/pages/Index/Settings/AdminCenter/HomePanel.tsx:85
msgid "Quick Actions"
-msgstr ""
+msgstr "快速動作"
#: src/pages/Index/Settings/AdminCenter/Index.tsx:107
#~ msgid "User Management"
#~ msgstr "User Management"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:115
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:116
msgid "Home"
-msgstr ""
+msgstr "首頁"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:122
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:123
msgid "Users / Access"
-msgstr ""
+msgstr "使用者 / 存取"
#: src/pages/Index/Settings/AdminCenter/Index.tsx:127
#~ msgid "Templates"
#~ msgstr "Templates"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:136
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:137
msgid "Data Import"
msgstr "數據導入"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:142
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:143
msgid "Data Export"
-msgstr ""
+msgstr "資料匯出"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:148
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:149
msgid "Barcode Scans"
msgstr "掃描條碼"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:154
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:155
msgid "Background Tasks"
msgstr "後台任務"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:160
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:161
msgid "Error Reports"
msgstr "錯誤報告"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:166
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:167
msgid "Currencies"
msgstr "幣種"
@@ -6701,11 +6728,11 @@ msgstr "幣種"
#~ msgid "Location types"
#~ msgstr "Location types"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:183
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:184
msgid "Custom States"
msgstr "自定狀態"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:189
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:190
#: src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx:57
msgid "Custom Units"
msgstr "自定義單位"
@@ -6715,12 +6742,12 @@ msgstr "自定義單位"
#~ msgid "Part Parameters"
#~ msgstr "Part Parameters"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:202
-#: src/pages/part/CategoryDetail.tsx:329
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:203
+#: src/pages/part/CategoryDetail.tsx:326
msgid "Category Parameters"
msgstr "類別參數"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:221
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:222
msgid "Location Types"
msgstr "位置類型"
@@ -6728,35 +6755,35 @@ msgstr "位置類型"
#~ msgid "Add a new user"
#~ msgstr "Add a new user"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:235
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:236
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:52
#: src/tables/machine/MachineTypeTable.tsx:323
msgid "Machines"
msgstr "設備"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:247
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:248
msgid "Operations"
-msgstr ""
+msgstr "操作"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:259
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:260
msgid "Data Management"
-msgstr ""
+msgstr "資料管理"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:270
-#: src/pages/Index/Settings/SystemSettings.tsx:178
-#: src/pages/Index/Settings/UserSettings.tsx:119
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:271
+#: src/pages/Index/Settings/SystemSettings.tsx:177
+#: src/pages/Index/Settings/UserSettings.tsx:121
msgid "Reporting"
msgstr "報告"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:275
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:276
msgid "PLM"
-msgstr ""
+msgstr "PLM"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:285
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:286
msgid "Extend / Integrate"
-msgstr ""
+msgstr "延伸 / 整合"
-#: src/pages/Index/Settings/AdminCenter/Index.tsx:299
+#: src/pages/Index/Settings/AdminCenter/Index.tsx:300
msgid "Advanced Options"
msgstr "高級選項"
@@ -6774,7 +6801,7 @@ msgstr "高級選項"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:60
msgid "Machine Drivers"
-msgstr ""
+msgstr "機器驅動程式"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62
#~ msgid "There are no machine registry errors."
@@ -6782,27 +6809,27 @@ msgstr ""
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:68
msgid "Machine Types"
-msgstr ""
+msgstr "機器類型"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:76
msgid "Machine Errors"
-msgstr ""
+msgstr "機器錯誤"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89
msgid "Registry Registry Errors"
-msgstr ""
+msgstr "登錄檔登錄錯誤"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:92
msgid "There are machine registry errors"
-msgstr ""
+msgstr "發生機器登錄錯誤"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:98
msgid "Machine Registry Errors"
-msgstr ""
+msgstr "機器登錄錯誤"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:101
msgid "There are no machine registry errors"
-msgstr ""
+msgstr "沒有機器登錄錯誤"
#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:122
#: src/tables/machine/MachineListTable.tsx:502
@@ -6844,7 +6871,7 @@ msgstr "橫屏模式"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:25
msgid "Merge"
-msgstr ""
+msgstr "合併"
#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:31
msgid "Attach to Model"
@@ -6860,7 +6887,7 @@ msgstr "附加到模型"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:32
msgid "Background worker running"
-msgstr ""
+msgstr "背景工作執行緒執行中"
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35
#~ msgid "Background Worker Not Running"
@@ -6935,7 +6962,7 @@ msgstr "所有單位"
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:31
msgid "Tokens"
-msgstr ""
+msgstr "權杖"
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32
#~ msgid "Select settings relevant for user lifecycle. More available in"
@@ -6947,13 +6974,17 @@ msgstr ""
#: src/pages/Index/Settings/PluginSettingsGroup.tsx:99
msgid "The settings below are specific to each available plugin"
-msgstr ""
+msgstr "以下設定特定於每個可用的外掛程式"
-#: src/pages/Index/Settings/SystemSettings.tsx:80
+#: src/pages/Index/Settings/SystemSettings.tsx:78
msgid "Authentication"
+msgstr "驗證"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:93
+msgid "Single Sign-On (SSO) Settings"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:106
+#: src/pages/Index/Settings/SystemSettings.tsx:111
msgid "Barcodes"
msgstr "條碼"
@@ -6965,30 +6996,38 @@ msgstr "條碼"
#~ msgid "This panel is a placeholder."
#~ msgstr "This panel is a placeholder."
-#: src/pages/Index/Settings/SystemSettings.tsx:130
-#: src/pages/Index/Settings/UserSettings.tsx:113
+#: src/pages/Index/Settings/SystemSettings.tsx:135
+#: src/pages/Index/Settings/UserSettings.tsx:115
msgid "The settings below are specific to each available notification method"
-msgstr ""
+msgstr "以下設定特定於每個可用的通知方法"
#: src/pages/Index/Settings/SystemSettings.tsx:135
#~ msgid "Exchange Rates"
#~ msgstr "Exchange Rates"
-#: src/pages/Index/Settings/SystemSettings.tsx:136
+#: src/pages/Index/Settings/SystemSettings.tsx:141
msgid "Pricing"
msgstr "定價"
#: src/pages/Index/Settings/SystemSettings.tsx:172
-msgid "Labels"
-msgstr "標籤"
+#~ msgid "Labels"
+#~ msgstr "Labels"
-#: src/pages/Index/Settings/SystemSettings.tsx:262
-msgid "Part Stocktake"
+#: src/pages/Index/Settings/SystemSettings.tsx:219
+msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:273
+#: src/pages/Index/Settings/SystemSettings.tsx:259
+msgid "Stock Expiry"
+msgstr ""
+
+#: src/pages/Index/Settings/SystemSettings.tsx:268
+msgid "Part Stocktake"
+msgstr "零件盤點"
+
+#: src/pages/Index/Settings/SystemSettings.tsx:278
#: src/pages/part/PartStockHistoryDetail.tsx:296
-#: src/pages/stock/StockDetail.tsx:532
+#: src/pages/stock/StockDetail.tsx:533
msgid "Stock Tracking"
msgstr "庫存跟蹤"
@@ -6996,15 +7035,15 @@ msgstr "庫存跟蹤"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/UserSettings.tsx:41
+#: src/pages/Index/Settings/UserSettings.tsx:42
msgid "Account"
msgstr "賬户"
-#: src/pages/Index/Settings/UserSettings.tsx:47
+#: src/pages/Index/Settings/UserSettings.tsx:48
msgid "Security"
msgstr "安全"
-#: src/pages/Index/Settings/UserSettings.tsx:53
+#: src/pages/Index/Settings/UserSettings.tsx:54
msgid "Display Options"
msgstr "顯示選項"
@@ -7040,22 +7079,34 @@ msgstr "標記為未讀"
#~ msgid "Delete notifications"
#~ msgstr "Delete notifications"
-#: src/pages/build/BuildDetail.tsx:70
+#: src/pages/build/BuildDetail.tsx:71
msgid "No Required Items"
-msgstr ""
-
-#: src/pages/build/BuildDetail.tsx:72
-msgid "This build order does not have any required items."
-msgstr ""
+msgstr "沒有需要的項目"
#: src/pages/build/BuildDetail.tsx:73
+msgid "This build order does not have any required items."
+msgstr "此生產訂單沒有任何所需的項目。"
+
+#: src/pages/build/BuildDetail.tsx:74
msgid "The assembled part may not have a Bill of Materials (BOM) defined, or the BOM is empty."
-msgstr ""
+msgstr "組裝零件可能未定義材料清單 (BOM),或 BOM 為空。"
#: src/pages/build/BuildDetail.tsx:80
#~ msgid "Build Status"
#~ msgstr "Build Status"
+#: src/pages/build/BuildDetail.tsx:121
+#: src/pages/part/PartDetail.tsx:690
+#: src/pages/part/bom/BomActions.tsx:115
+#: src/pages/part/bom/BomActions.tsx:120
+msgid "BOM Not Validated"
+msgstr "BOM 未驗證"
+
+#: src/pages/build/BuildDetail.tsx:123
+#: src/pages/part/PartDetail.tsx:692
+msgid "The Bill of Materials for this assembly has not been validated."
+msgstr ""
+
#: src/pages/build/BuildDetail.tsx:185
#: src/pages/part/PartDetail.tsx:269
#: src/pages/stock/StockDetail.tsx:150
@@ -7088,25 +7139,25 @@ msgstr ""
#~ msgid "Delete build order"
#~ msgstr "Delete build order"
-#: src/pages/build/BuildDetail.tsx:234
-#: src/pages/part/PartDetail.tsx:457
-#: src/pages/stock/StockDetail.tsx:161
+#: src/pages/build/BuildDetail.tsx:252
+#: src/pages/part/PartDetail.tsx:330
+#: src/pages/stock/StockDetail.tsx:162
#: src/tables/bom/UsedInTable.tsx:49
#: src/tables/build/BuildOrderTable.tsx:87
#: src/tables/stock/StockItemTable.tsx:66
msgid "Revision"
msgstr "版本"
-#: src/pages/build/BuildDetail.tsx:247
+#: src/pages/build/BuildDetail.tsx:265
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:132
-#: src/pages/stock/StockDetail.tsx:176
+#: src/pages/stock/StockDetail.tsx:177
msgid "Custom Status"
-msgstr ""
+msgstr "自訂狀態"
-#: src/pages/build/BuildDetail.tsx:256
-#: src/pages/build/BuildDetail.tsx:750
+#: src/pages/build/BuildDetail.tsx:274
+#: src/pages/build/BuildDetail.tsx:768
#: src/pages/build/BuildIndex.tsx:34
#: src/pages/stock/LocationDetail.tsx:149
#: src/tables/build/BuildOrderTable.tsx:127
@@ -7115,273 +7166,274 @@ msgstr ""
msgid "External"
msgstr "外部"
-#: src/pages/build/BuildDetail.tsx:263
+#: src/pages/build/BuildDetail.tsx:281
+#: src/pages/part/bom/BomCompare.tsx:34
#: src/pages/purchasing/PurchaseOrderDetail.tsx:142
#: src/pages/sales/ReturnOrderDetail.tsx:109
#: src/pages/sales/SalesOrderDetail.tsx:99
-#: src/tables/ColumnRenderers.tsx:505
+#: src/tables/ColumnRenderers.tsx:502
#: src/tables/build/BuildAllocatedStockTable.tsx:110
#: src/tables/build/BuildLineTable.tsx:354
msgid "Reference"
msgstr "參考"
-#: src/pages/build/BuildDetail.tsx:277
+#: src/pages/build/BuildDetail.tsx:295
msgid "Parent Build"
msgstr "上級生產"
-#: src/pages/build/BuildDetail.tsx:288
+#: src/pages/build/BuildDetail.tsx:306
msgid "Build Quantity"
msgstr "生產數量"
-#: src/pages/build/BuildDetail.tsx:294
-#: src/pages/part/PartDetail.tsx:575
-#: src/tables/bom/BomTable.tsx:359
-#: src/tables/bom/BomTable.tsx:401
+#: src/pages/build/BuildDetail.tsx:312
+#: src/pages/part/PartDetail.tsx:448
+#: src/tables/bom/BomTable.tsx:382
+#: src/tables/bom/BomTable.tsx:425
msgid "Can Build"
msgstr "可以創建"
-#: src/pages/build/BuildDetail.tsx:303
-#: src/pages/build/BuildDetail.tsx:494
+#: src/pages/build/BuildDetail.tsx:321
+#: src/pages/build/BuildDetail.tsx:512
msgid "Completed Outputs"
msgstr "已出產"
-#: src/pages/build/BuildDetail.tsx:320
+#: src/pages/build/BuildDetail.tsx:338
#: src/tables/Filter.tsx:441
#: src/tables/build/BuildOrderTable.tsx:147
msgid "Issued By"
msgstr "發佈人"
-#: src/pages/build/BuildDetail.tsx:328
-#: src/pages/part/PartDetail.tsx:668
+#: src/pages/build/BuildDetail.tsx:346
+#: src/pages/part/PartDetail.tsx:541
#: src/pages/purchasing/PurchaseOrderDetail.tsx:262
#: src/pages/sales/ReturnOrderDetail.tsx:240
#: src/pages/sales/SalesOrderDetail.tsx:233
-#: src/tables/ColumnRenderers.tsx:668
+#: src/tables/ColumnRenderers.tsx:665
#: src/tables/Filter.tsx:379
msgid "Responsible"
msgstr "責任人"
-#: src/pages/build/BuildDetail.tsx:346
-msgid "Any location"
-msgstr "任意地點"
-
#: src/pages/build/BuildDetail.tsx:347
#: src/pages/part/PartDetail.tsx:727
#~ msgid "Test Statistics"
#~ msgstr "Test Statistics"
-#: src/pages/build/BuildDetail.tsx:353
-msgid "Destination Location"
-msgstr "目標地點"
+#: src/pages/build/BuildDetail.tsx:364
+msgid "Any location"
+msgstr "任意地點"
#: src/pages/build/BuildDetail.tsx:368
#~ msgid "Reporting Actions"
#~ msgstr "Reporting Actions"
-#: src/pages/build/BuildDetail.tsx:369
-#: src/tables/settings/ApiTokenTable.tsx:98
-#: src/tables/settings/PendingTasksTable.tsx:41
-msgid "Created"
-msgstr "已創建"
+#: src/pages/build/BuildDetail.tsx:371
+msgid "Destination Location"
+msgstr "目標地點"
#: src/pages/build/BuildDetail.tsx:374
#~ msgid "Print build report"
#~ msgstr "Print build report"
-#: src/pages/build/BuildDetail.tsx:377
+#: src/pages/build/BuildDetail.tsx:387
+#: src/tables/settings/ApiTokenTable.tsx:98
+#: src/tables/settings/PendingTasksTable.tsx:41
+msgid "Created"
+msgstr "已創建"
+
+#: src/pages/build/BuildDetail.tsx:395
#: src/pages/purchasing/PurchaseOrderDetail.tsx:287
#: src/pages/sales/ReturnOrderDetail.tsx:266
#: src/pages/sales/SalesOrderDetail.tsx:258
-#: src/tables/ColumnRenderers.tsx:691
+#: src/tables/ColumnRenderers.tsx:688
msgid "Start Date"
-msgstr ""
+msgstr "開始日期"
-#: src/pages/build/BuildDetail.tsx:385
+#: src/pages/build/BuildDetail.tsx:403
#: src/pages/purchasing/PurchaseOrderDetail.tsx:295
#: src/pages/sales/ReturnOrderDetail.tsx:274
#: src/pages/sales/SalesOrderDetail.tsx:266
-#: src/tables/ColumnRenderers.tsx:699
+#: src/tables/ColumnRenderers.tsx:696
#: src/tables/part/PartPurchaseOrdersTable.tsx:101
#: src/tables/sales/ReturnOrderLineItemTable.tsx:153
#: src/tables/sales/SalesOrderLineItemTable.tsx:130
msgid "Target Date"
msgstr "預計日期"
-#: src/pages/build/BuildDetail.tsx:393
+#: src/pages/build/BuildDetail.tsx:411
#: src/tables/build/BuildOrderTable.tsx:97
#: src/tables/sales/SalesOrderLineItemTable.tsx:345
msgid "Completed"
msgstr "已完成"
-#: src/pages/build/BuildDetail.tsx:429
+#: src/pages/build/BuildDetail.tsx:447
msgid "Build Details"
msgstr "生產詳情"
-#: src/pages/build/BuildDetail.tsx:435
+#: src/pages/build/BuildDetail.tsx:453
msgid "Required Parts"
-msgstr ""
+msgstr "所需零件"
-#: src/pages/build/BuildDetail.tsx:447
+#: src/pages/build/BuildDetail.tsx:465
#: src/pages/sales/SalesOrderDetail.tsx:417
#: src/pages/sales/SalesOrderShipmentDetail.tsx:258
#: src/tables/part/PartSalesAllocationsTable.tsx:71
msgid "Allocated Stock"
msgstr "已分配的庫存"
-#: src/pages/build/BuildDetail.tsx:463
+#: src/pages/build/BuildDetail.tsx:481
msgid "Consumed Stock"
msgstr "已消耗庫存"
-#: src/pages/build/BuildDetail.tsx:481
+#: src/pages/build/BuildDetail.tsx:499
msgid "Incomplete Outputs"
msgstr "未出產"
-#: src/pages/build/BuildDetail.tsx:509
+#: src/pages/build/BuildDetail.tsx:527
msgid "External Orders"
-msgstr ""
+msgstr "外部訂單"
-#: src/pages/build/BuildDetail.tsx:523
+#: src/pages/build/BuildDetail.tsx:541
msgid "Child Build Orders"
msgstr "子生產訂單"
-#: src/pages/build/BuildDetail.tsx:534
-#: src/pages/part/PartDetail.tsx:903
-#: src/pages/stock/StockDetail.tsx:587
+#: src/pages/build/BuildDetail.tsx:552
+#: src/pages/part/PartDetail.tsx:794
+#: src/pages/stock/StockDetail.tsx:588
#: src/tables/build/BuildOutputTable.tsx:704
#: src/tables/stock/StockItemTestResultTable.tsx:173
msgid "Test Results"
msgstr "測試結果"
-#: src/pages/build/BuildDetail.tsx:577
+#: src/pages/build/BuildDetail.tsx:595
msgid "Edit Build Order"
msgstr "編輯生產訂單"
-#: src/pages/build/BuildDetail.tsx:599
+#: src/pages/build/BuildDetail.tsx:617
#: src/tables/build/BuildOrderTable.tsx:212
#: src/tables/build/BuildOrderTable.tsx:229
msgid "Add Build Order"
msgstr "添加生產訂單"
-#: src/pages/build/BuildDetail.tsx:609
+#: src/pages/build/BuildDetail.tsx:627
msgid "Cancel Build Order"
msgstr "取消生產訂單"
-#: src/pages/build/BuildDetail.tsx:611
+#: src/pages/build/BuildDetail.tsx:629
#: src/pages/purchasing/PurchaseOrderDetail.tsx:431
#: src/pages/sales/ReturnOrderDetail.tsx:442
#: src/pages/sales/SalesOrderDetail.tsx:469
msgid "Order cancelled"
msgstr "訂單已取消"
-#: src/pages/build/BuildDetail.tsx:612
+#: src/pages/build/BuildDetail.tsx:630
#: src/pages/purchasing/PurchaseOrderDetail.tsx:430
#: src/pages/sales/ReturnOrderDetail.tsx:441
#: src/pages/sales/SalesOrderDetail.tsx:468
msgid "Cancel this order"
msgstr "取消此訂單"
-#: src/pages/build/BuildDetail.tsx:621
+#: src/pages/build/BuildDetail.tsx:639
msgid "Hold Build Order"
msgstr "掛起生產訂單"
-#: src/pages/build/BuildDetail.tsx:623
+#: src/pages/build/BuildDetail.tsx:641
#: src/pages/purchasing/PurchaseOrderDetail.tsx:438
#: src/pages/sales/ReturnOrderDetail.tsx:449
#: src/pages/sales/SalesOrderDetail.tsx:476
msgid "Place this order on hold"
msgstr "將此訂單掛起"
-#: src/pages/build/BuildDetail.tsx:624
+#: src/pages/build/BuildDetail.tsx:642
#: src/pages/purchasing/PurchaseOrderDetail.tsx:439
#: src/pages/sales/ReturnOrderDetail.tsx:450
#: src/pages/sales/SalesOrderDetail.tsx:477
msgid "Order placed on hold"
msgstr "掛起訂單"
-#: src/pages/build/BuildDetail.tsx:629
+#: src/pages/build/BuildDetail.tsx:647
msgid "Issue Build Order"
msgstr "發出生產訂單"
-#: src/pages/build/BuildDetail.tsx:631
+#: src/pages/build/BuildDetail.tsx:649
#: src/pages/purchasing/PurchaseOrderDetail.tsx:422
#: src/pages/sales/ReturnOrderDetail.tsx:433
#: src/pages/sales/SalesOrderDetail.tsx:460
msgid "Issue this order"
msgstr "發出這個訂單"
-#: src/pages/build/BuildDetail.tsx:632
+#: src/pages/build/BuildDetail.tsx:650
#: src/pages/purchasing/PurchaseOrderDetail.tsx:423
#: src/pages/sales/ReturnOrderDetail.tsx:434
#: src/pages/sales/SalesOrderDetail.tsx:461
msgid "Order issued"
msgstr "訂單發起"
-#: src/pages/build/BuildDetail.tsx:651
+#: src/pages/build/BuildDetail.tsx:669
msgid "Complete Build Order"
msgstr "完成生產訂單"
-#: src/pages/build/BuildDetail.tsx:657
+#: src/pages/build/BuildDetail.tsx:675
#: src/pages/purchasing/PurchaseOrderDetail.tsx:451
#: src/pages/sales/ReturnOrderDetail.tsx:457
#: src/pages/sales/SalesOrderDetail.tsx:495
msgid "Mark this order as complete"
msgstr "標記該訂單為已完成"
-#: src/pages/build/BuildDetail.tsx:660
+#: src/pages/build/BuildDetail.tsx:678
#: src/pages/purchasing/PurchaseOrderDetail.tsx:445
#: src/pages/sales/ReturnOrderDetail.tsx:458
#: src/pages/sales/SalesOrderDetail.tsx:496
msgid "Order completed"
msgstr "訂單已完成"
-#: src/pages/build/BuildDetail.tsx:687
+#: src/pages/build/BuildDetail.tsx:705
#: src/pages/purchasing/PurchaseOrderDetail.tsx:474
#: src/pages/sales/ReturnOrderDetail.tsx:485
#: src/pages/sales/SalesOrderDetail.tsx:531
msgid "Issue Order"
msgstr "發佈訂單"
-#: src/pages/build/BuildDetail.tsx:694
+#: src/pages/build/BuildDetail.tsx:712
#: src/pages/purchasing/PurchaseOrderDetail.tsx:481
#: src/pages/sales/ReturnOrderDetail.tsx:492
#: src/pages/sales/SalesOrderDetail.tsx:545
msgid "Complete Order"
msgstr "完成訂單"
-#: src/pages/build/BuildDetail.tsx:713
+#: src/pages/build/BuildDetail.tsx:731
msgid "Build Order Actions"
msgstr "生產訂單操作"
-#: src/pages/build/BuildDetail.tsx:718
+#: src/pages/build/BuildDetail.tsx:736
#: src/pages/purchasing/PurchaseOrderDetail.tsx:504
#: src/pages/sales/ReturnOrderDetail.tsx:515
#: src/pages/sales/SalesOrderDetail.tsx:569
msgid "Edit order"
msgstr "編輯訂單"
-#: src/pages/build/BuildDetail.tsx:722
+#: src/pages/build/BuildDetail.tsx:740
#: src/pages/purchasing/PurchaseOrderDetail.tsx:512
#: src/pages/sales/ReturnOrderDetail.tsx:521
#: src/pages/sales/SalesOrderDetail.tsx:574
msgid "Duplicate order"
msgstr "複製訂單"
-#: src/pages/build/BuildDetail.tsx:726
+#: src/pages/build/BuildDetail.tsx:744
#: src/pages/purchasing/PurchaseOrderDetail.tsx:515
#: src/pages/sales/ReturnOrderDetail.tsx:526
#: src/pages/sales/SalesOrderDetail.tsx:577
msgid "Hold order"
msgstr "掛起訂單"
-#: src/pages/build/BuildDetail.tsx:731
+#: src/pages/build/BuildDetail.tsx:749
#: src/pages/purchasing/PurchaseOrderDetail.tsx:520
#: src/pages/sales/ReturnOrderDetail.tsx:531
#: src/pages/sales/SalesOrderDetail.tsx:582
msgid "Cancel order"
msgstr "取消訂單"
-#: src/pages/build/BuildDetail.tsx:769
-#: src/pages/stock/StockDetail.tsx:344
+#: src/pages/build/BuildDetail.tsx:787
+#: src/pages/stock/StockDetail.tsx:345
#: src/tables/build/BuildAllocatedStockTable.tsx:85
#: src/tables/part/PartBuildAllocationsTable.tsx:45
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153
@@ -7396,14 +7448,14 @@ msgstr "生產訂單"
#: src/pages/build/BuildIndex.tsx:35
#: src/tables/build/BuildOrderTable.tsx:189
msgid "Show external build orders"
-msgstr ""
+msgstr "顯示外部生產訂單"
#: src/pages/build/BuildIndex.tsx:39
#~ msgid "New Build Order"
#~ msgstr "New Build Order"
#: src/pages/build/BuildIndex.tsx:74
-#: src/pages/part/CategoryDetail.tsx:292
+#: src/pages/part/CategoryDetail.tsx:289
#: src/pages/purchasing/PurchasingIndex.tsx:74
#: src/pages/purchasing/PurchasingIndex.tsx:107
#: src/pages/purchasing/PurchasingIndex.tsx:136
@@ -7412,19 +7464,19 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:61
#: src/pages/sales/SalesIndex.tsx:107
#: src/pages/sales/SalesIndex.tsx:140
-#: src/pages/stock/LocationDetail.tsx:193
+#: src/pages/stock/LocationDetail.tsx:190
msgid "Table View"
-msgstr ""
+msgstr "表格檢視"
#: src/pages/build/BuildIndex.tsx:80
#: src/pages/purchasing/PurchasingIndex.tsx:80
#: src/pages/sales/SalesIndex.tsx:67
#: src/pages/sales/SalesIndex.tsx:113
msgid "Calendar View"
-msgstr ""
+msgstr "行事曆檢視"
#: src/pages/build/BuildIndex.tsx:86
-#: src/pages/part/CategoryDetail.tsx:306
+#: src/pages/part/CategoryDetail.tsx:303
#: src/pages/purchasing/PurchasingIndex.tsx:92
#: src/pages/purchasing/PurchasingIndex.tsx:119
#: src/pages/purchasing/PurchasingIndex.tsx:142
@@ -7433,9 +7485,9 @@ msgstr ""
#: src/pages/sales/SalesIndex.tsx:79
#: src/pages/sales/SalesIndex.tsx:125
#: src/pages/sales/SalesIndex.tsx:152
-#: src/pages/stock/LocationDetail.tsx:199
+#: src/pages/stock/LocationDetail.tsx:196
msgid "Parametric View"
-msgstr ""
+msgstr "參數檢視"
#: src/pages/company/CompanyDetail.tsx:108
msgid "Phone Number"
@@ -7447,7 +7499,7 @@ msgstr "電子郵件地址"
#: src/pages/company/CompanyDetail.tsx:122
msgid "Tax ID"
-msgstr ""
+msgstr "統一編號 / 稅籍編號"
#: src/pages/company/CompanyDetail.tsx:132
msgid "Default Currency"
@@ -7470,7 +7522,7 @@ msgstr "製造商"
#: src/pages/sales/ReturnOrderDetail.tsx:124
#: src/pages/sales/SalesOrderDetail.tsx:114
#: src/pages/sales/SalesOrderShipmentDetail.tsx:110
-#: src/pages/stock/StockDetail.tsx:370
+#: src/pages/stock/StockDetail.tsx:371
#: src/tables/company/CompanyTable.tsx:116
#: src/tables/sales/ReturnOrderParametricTable.tsx:32
#: src/tables/sales/ReturnOrderTable.tsx:125
@@ -7487,7 +7539,7 @@ msgstr "客户"
#: src/pages/company/CompanyDetail.tsx:182
msgid "Company Details"
-msgstr ""
+msgstr "公司詳情"
#: src/pages/company/CompanyDetail.tsx:188
msgid "Supplied Parts"
@@ -7534,7 +7586,7 @@ msgstr "外部鏈接"
#: src/pages/company/ManufacturerPartDetail.tsx:147
#: src/pages/company/SupplierPartDetail.tsx:233
-#: src/pages/part/PartDetail.tsx:764
+#: src/pages/part/PartDetail.tsx:638
msgid "Part Details"
msgstr "零件詳情"
@@ -7633,43 +7685,43 @@ msgid "Add Supplier Part"
msgstr "添加供應商零件"
#: src/pages/company/SupplierPartDetail.tsx:394
-#: src/pages/part/PartDetail.tsx:1000
+#: src/pages/part/PartDetail.tsx:899
msgid "No Stock"
msgstr "無庫存"
-#: src/pages/core/CoreIndex.tsx:46
+#: src/pages/core/CoreIndex.tsx:47
#: src/pages/core/GroupDetail.tsx:81
#: src/pages/core/UserDetail.tsx:224
msgid "System Overview"
-msgstr ""
+msgstr "系統總覽"
#: src/pages/core/GroupDetail.tsx:45
msgid "Group Name"
-msgstr ""
+msgstr "群組名稱"
#: src/pages/core/GroupDetail.tsx:52
#: src/pages/core/GroupDetail.tsx:67
#: src/tables/settings/GroupTable.tsx:85
msgid "Group Details"
-msgstr ""
+msgstr "群組詳情"
#: src/pages/core/GroupDetail.tsx:55
#: src/tables/settings/GroupTable.tsx:112
msgid "Group Roles"
-msgstr ""
+msgstr "群組角色"
#: src/pages/core/UserDetail.tsx:175
-#: src/tables/ColumnRenderers.tsx:622
+#: src/tables/ColumnRenderers.tsx:619
msgid "User Information"
-msgstr ""
+msgstr "使用者資訊"
#: src/pages/core/UserDetail.tsx:176
msgid "User Permissions"
-msgstr ""
+msgstr "使用者權限"
#: src/pages/core/UserDetail.tsx:178
msgid "User Profile"
-msgstr ""
+msgstr "使用者個人資料"
#: src/pages/core/UserDetail.tsx:188
#: src/tables/settings/UserTable.tsx:164
@@ -7678,7 +7730,7 @@ msgstr "用户詳情"
#: src/pages/core/UserDetail.tsx:206
msgid "Normal user"
-msgstr ""
+msgstr "一般使用者"
#: src/pages/core/UserDetail.tsx:206
#~ msgid "Basic user"
@@ -7696,7 +7748,7 @@ msgid "Parent Category"
msgstr "上級類別"
#: src/pages/part/CategoryDetail.tsx:142
-#: src/pages/part/CategoryDetail.tsx:279
+#: src/pages/part/CategoryDetail.tsx:276
msgid "Subcategories"
msgstr "子類別"
@@ -7716,117 +7768,70 @@ msgid "Default location"
msgstr "默認位置"
#: src/pages/part/CategoryDetail.tsx:173
-msgid "Top level part category"
-msgstr "最高級零件類別"
+#~ msgid "Top level part category"
+#~ msgstr "Top level part category"
-#: src/pages/part/CategoryDetail.tsx:183
-#: src/pages/part/CategoryDetail.tsx:251
+#: src/pages/part/CategoryDetail.tsx:179
+#: src/pages/part/CategoryDetail.tsx:247
#: src/tables/part/PartCategoryTable.tsx:125
msgid "Edit Part Category"
msgstr "編輯零件類別"
-#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/part/CategoryDetail.tsx:188
msgid "Move items to parent category"
-msgstr ""
+msgstr "將項目移至父類別"
-#: src/pages/part/CategoryDetail.tsx:196
-#: src/pages/stock/LocationDetail.tsx:262
+#: src/pages/part/CategoryDetail.tsx:192
+#: src/pages/stock/LocationDetail.tsx:259
msgid "Delete items"
msgstr "刪除項"
-#: src/pages/part/CategoryDetail.tsx:204
-#: src/pages/part/CategoryDetail.tsx:256
+#: src/pages/part/CategoryDetail.tsx:200
+#: src/pages/part/CategoryDetail.tsx:252
msgid "Delete Part Category"
msgstr "刪除零件類別"
-#: src/pages/part/CategoryDetail.tsx:207
+#: src/pages/part/CategoryDetail.tsx:203
msgid "Parts Action"
msgstr "零件操作"
-#: src/pages/part/CategoryDetail.tsx:208
+#: src/pages/part/CategoryDetail.tsx:204
msgid "Action for parts in this category"
msgstr "對此類別中零件的操作"
-#: src/pages/part/CategoryDetail.tsx:214
+#: src/pages/part/CategoryDetail.tsx:210
msgid "Child Categories Action"
msgstr "子類別操作"
-#: src/pages/part/CategoryDetail.tsx:215
+#: src/pages/part/CategoryDetail.tsx:211
msgid "Action for child categories in this category"
msgstr "對此類別中零件的操作"
-#: src/pages/part/CategoryDetail.tsx:247
+#: src/pages/part/CategoryDetail.tsx:243
#: src/tables/part/PartCategoryTable.tsx:146
msgid "Category Actions"
msgstr "類別操作"
-#: src/pages/part/CategoryDetail.tsx:273
+#: src/pages/part/CategoryDetail.tsx:269
msgid "Category Details"
msgstr "類別詳情"
#: src/pages/part/PartAllocationPanel.tsx:21
-#: src/pages/stock/StockDetail.tsx:555
+#: src/pages/stock/StockDetail.tsx:556
#: src/tables/part/PartTable.tsx:122
msgid "Build Order Allocations"
msgstr "分配生產訂單"
#: src/pages/part/PartAllocationPanel.tsx:31
-#: src/pages/stock/StockDetail.tsx:570
+#: src/pages/stock/StockDetail.tsx:571
#: src/tables/part/PartTable.tsx:130
msgid "Sales Order Allocations"
msgstr "分配銷售訂單"
-#: src/pages/part/PartDetail.tsx:177
-msgid "Validating BOM"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:178
-msgid "BOM validated"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:187
#~ msgid "Bill of materials scheduled for validation"
#~ msgstr "Bill of materials scheduled for validation"
-#: src/pages/part/PartDetail.tsx:193
-#: src/pages/part/PartDetail.tsx:196
-#: src/pages/part/PartDetail.tsx:245
-msgid "Validate BOM"
-msgstr "驗證物料清單"
-
-#: src/pages/part/PartDetail.tsx:197
-msgid "Do you want to validate the bill of materials for this assembly?"
-msgstr "您想要驗證此裝配的材料清單嗎?"
-
-#: src/pages/part/PartDetail.tsx:223
-msgid "BOM Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:224
-msgid "The Bill of Materials for this part has been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:228
-#: src/pages/part/PartDetail.tsx:233
-msgid "BOM Not Validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:229
-msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:234
-msgid "The Bill of Materials for this part has not yet been validated"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:265
-msgid "Validated On"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:270
-msgid "Validated By"
-msgstr ""
-
#: src/pages/part/PartDetail.tsx:286
#~ msgid "Variant Stock"
#~ msgstr "Variant Stock"
@@ -7835,6 +7840,14 @@ msgstr ""
#~ msgid "Edit part"
#~ msgstr "Edit part"
+#: src/pages/part/PartDetail.tsx:314
+msgid "Variant of"
+msgstr "變體於"
+
+#: src/pages/part/PartDetail.tsx:322
+msgid "Revision of"
+msgstr "修訂"
+
#: src/pages/part/PartDetail.tsx:322
#~ msgid "Duplicate part"
#~ msgstr "Duplicate part"
@@ -7843,190 +7856,192 @@ msgstr ""
#~ msgid "Delete part"
#~ msgstr "Delete part"
-#: src/pages/part/PartDetail.tsx:441
-msgid "Variant of"
-msgstr "變體於"
-
-#: src/pages/part/PartDetail.tsx:449
-msgid "Revision of"
-msgstr "修訂"
-
-#: src/pages/part/PartDetail.tsx:470
-#: src/tables/ColumnRenderers.tsx:390
-#: src/tables/ColumnRenderers.tsx:399
+#: src/pages/part/PartDetail.tsx:343
+#: src/tables/ColumnRenderers.tsx:387
+#: src/tables/ColumnRenderers.tsx:396
msgid "Default Location"
msgstr "默認位置"
-#: src/pages/part/PartDetail.tsx:477
+#: src/pages/part/PartDetail.tsx:350
msgid "Category Default Location"
msgstr "類別默認位置"
-#: src/pages/part/PartDetail.tsx:484
+#: src/pages/part/PartDetail.tsx:357
msgid "Units"
msgstr "單位"
-#: src/pages/part/PartDetail.tsx:491
+#: src/pages/part/PartDetail.tsx:364
#: src/tables/settings/PendingTasksTable.tsx:51
msgid "Keywords"
msgstr "關鍵詞"
-#: src/pages/part/PartDetail.tsx:510
-#~ msgid "Stocktake By"
-#~ msgstr "Stocktake By"
-
-#: src/pages/part/PartDetail.tsx:519
-#: src/tables/bom/BomTable.tsx:438
+#: src/pages/part/PartDetail.tsx:392
+#: src/tables/bom/BomTable.tsx:462
#: src/tables/build/BuildLineTable.tsx:311
#: src/tables/part/PartTable.tsx:316
#: src/tables/sales/SalesOrderLineItemTable.tsx:134
msgid "Available Stock"
msgstr "可用庫存"
-#: src/pages/part/PartDetail.tsx:525
-#: src/tables/bom/BomTable.tsx:335
+#: src/pages/part/PartDetail.tsx:398
+#: src/tables/bom/BomTable.tsx:358
#: src/tables/build/BuildLineTable.tsx:273
#: src/tables/sales/SalesOrderLineItemTable.tsx:176
msgid "On order"
msgstr "訂購中"
-#: src/pages/part/PartDetail.tsx:532
+#: src/pages/part/PartDetail.tsx:405
msgid "Required for Orders"
msgstr "生產訂單所需的"
-#: src/pages/part/PartDetail.tsx:543
+#: src/pages/part/PartDetail.tsx:416
msgid "Allocated to Build Orders"
msgstr "分配生產訂單"
-#: src/pages/part/PartDetail.tsx:555
+#: src/pages/part/PartDetail.tsx:428
msgid "Allocated to Sales Orders"
msgstr "分配銷售訂單"
-#: src/pages/part/PartDetail.tsx:582
+#: src/pages/part/PartDetail.tsx:455
msgid "Minimum Stock"
msgstr "最低庫存"
-#: src/pages/part/PartDetail.tsx:597
+#: src/pages/part/PartDetail.tsx:470
#: src/tables/part/ParametricPartTable.tsx:24
#: src/tables/part/PartTable.tsx:204
msgid "Locked"
msgstr "已鎖定"
-#: src/pages/part/PartDetail.tsx:603
+#: src/pages/part/PartDetail.tsx:476
msgid "Template Part"
msgstr "模板零件"
-#: src/pages/part/PartDetail.tsx:608
-#: src/tables/bom/BomTable.tsx:428
+#: src/pages/part/PartDetail.tsx:481
+#: src/tables/bom/BomTable.tsx:452
msgid "Assembled Part"
msgstr "組裝零件"
-#: src/pages/part/PartDetail.tsx:613
+#: src/pages/part/PartDetail.tsx:486
msgid "Component Part"
msgstr "組件零件"
-#: src/pages/part/PartDetail.tsx:613
-#~ msgid "Scheduling"
-#~ msgstr "Scheduling"
-
-#: src/pages/part/PartDetail.tsx:618
-#: src/tables/bom/BomTable.tsx:413
+#: src/pages/part/PartDetail.tsx:491
+#: src/tables/bom/BomTable.tsx:437
msgid "Testable Part"
msgstr "可測試零件"
-#: src/pages/part/PartDetail.tsx:624
-#: src/tables/bom/BomTable.tsx:418
+#: src/pages/part/PartDetail.tsx:497
+#: src/tables/bom/BomTable.tsx:442
msgid "Trackable Part"
msgstr "可追溯零件"
-#: src/pages/part/PartDetail.tsx:629
+#: src/pages/part/PartDetail.tsx:502
msgid "Purchaseable Part"
msgstr "可購買零件"
-#: src/pages/part/PartDetail.tsx:635
+#: src/pages/part/PartDetail.tsx:508
msgid "Saleable Part"
msgstr "可銷售零件"
-#: src/pages/part/PartDetail.tsx:655
+#: src/pages/part/PartDetail.tsx:510
+#~ msgid "Stocktake By"
+#~ msgstr "Stocktake By"
+
+#: src/pages/part/PartDetail.tsx:528
#: src/pages/purchasing/PurchaseOrderDetail.tsx:272
#: src/pages/sales/ReturnOrderDetail.tsx:250
#: src/pages/sales/SalesOrderDetail.tsx:243
-#: src/tables/ColumnRenderers.tsx:707
+#: src/tables/ColumnRenderers.tsx:704
msgid "Creation Date"
msgstr "創建日期"
-#: src/pages/part/PartDetail.tsx:660
-#: src/tables/ColumnRenderers.tsx:639
+#: src/pages/part/PartDetail.tsx:533
+#: src/tables/ColumnRenderers.tsx:636
#: src/tables/Filter.tsx:433
msgid "Created By"
msgstr "創建人"
-#: src/pages/part/PartDetail.tsx:674
+#: src/pages/part/PartDetail.tsx:547
msgid "Default Expiry"
-msgstr ""
+msgstr "預設過期時間"
-#: src/pages/part/PartDetail.tsx:679
+#: src/pages/part/PartDetail.tsx:552
msgid "days"
-msgstr ""
+msgstr "天"
-#: src/pages/part/PartDetail.tsx:689
+#: src/pages/part/PartDetail.tsx:562
#: src/pages/part/pricing/BomPricingPanel.tsx:78
#: src/pages/part/pricing/VariantPricingPanel.tsx:95
#: src/tables/part/PartTable.tsx:180
msgid "Price Range"
msgstr "價格範圍"
+#: src/pages/part/PartDetail.tsx:572
+msgid "Latest Serial Number"
+msgstr "最新序號"
+
+#: src/pages/part/PartDetail.tsx:606
+msgid "Select Part Revision"
+msgstr "選擇零件版本"
+
+#: src/pages/part/PartDetail.tsx:613
+#~ msgid "Scheduling"
+#~ msgstr "Scheduling"
+
+#: src/pages/part/PartDetail.tsx:663
+msgid "Variants"
+msgstr "變體"
+
+#: src/pages/part/PartDetail.tsx:670
+#: src/pages/stock/StockDetail.tsx:543
+msgid "Allocations"
+msgstr "分配"
+
+#: src/pages/part/PartDetail.tsx:677
+msgid "Bill of Materials"
+msgstr "物料清單"
+
#: src/pages/part/PartDetail.tsx:698
#~ msgid "Default Supplier"
#~ msgstr "Default Supplier"
-#: src/pages/part/PartDetail.tsx:699
-msgid "Latest Serial Number"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:732
-msgid "Select Part Revision"
-msgstr "選擇零件版本"
-
-#: src/pages/part/PartDetail.tsx:789
-msgid "Variants"
-msgstr "變體"
-
-#: src/pages/part/PartDetail.tsx:796
-#: src/pages/stock/StockDetail.tsx:542
-msgid "Allocations"
-msgstr "分配"
-
-#: src/pages/part/PartDetail.tsx:803
-msgid "Bill of Materials"
-msgstr "物料清單"
-
-#: src/pages/part/PartDetail.tsx:815
+#: src/pages/part/PartDetail.tsx:706
msgid "Used In"
msgstr "用於"
-#: src/pages/part/PartDetail.tsx:822
+#: src/pages/part/PartDetail.tsx:713
msgid "Part Pricing"
msgstr "零件價格"
-#: src/pages/part/PartDetail.tsx:892
+#: src/pages/part/PartDetail.tsx:783
msgid "Test Templates"
msgstr "測試模板"
-#: src/pages/part/PartDetail.tsx:914
+#: src/pages/part/PartDetail.tsx:805
msgid "Related Parts"
msgstr "關聯零件"
-#: src/pages/part/PartDetail.tsx:926
+#: src/pages/part/PartDetail.tsx:817
#: src/tables/ColumnRenderers.tsx:73
-#: src/tables/bom/BomTable.tsx:657
+#: src/tables/bom/BomTable.tsx:704
#: src/tables/part/PartTestTemplateTable.tsx:258
msgid "Part is Locked"
msgstr "零件已鎖定"
-#: src/pages/part/PartDetail.tsx:931
+#: src/pages/part/PartDetail.tsx:822
msgid "Part parameters cannot be edited, as the part is locked"
msgstr "零件參數無法編輯,因為零件已鎖定"
+#: src/pages/part/PartDetail.tsx:911
+#: src/tables/part/PartTestTemplateTable.tsx:112
+#: src/tables/stock/StockItemTestResultTable.tsx:405
+msgid "Required"
+msgstr "必填"
+
+#: src/pages/part/PartDetail.tsx:929
+msgid "Deficit"
+msgstr "短缺"
+
#: src/pages/part/PartDetail.tsx:956
#~ msgid "Count part stock"
#~ msgstr "Count part stock"
@@ -8035,46 +8050,36 @@ msgstr "零件參數無法編輯,因為零件已鎖定"
#~ msgid "Transfer part stock"
#~ msgstr "Transfer part stock"
-#: src/pages/part/PartDetail.tsx:1012
-#: src/tables/part/PartTestTemplateTable.tsx:112
-#: src/tables/stock/StockItemTestResultTable.tsx:405
-msgid "Required"
-msgstr "必填"
-
-#: src/pages/part/PartDetail.tsx:1030
-msgid "Deficit"
-msgstr ""
-
-#: src/pages/part/PartDetail.tsx:1070
+#: src/pages/part/PartDetail.tsx:969
#: src/tables/part/PartTable.tsx:398
#: src/tables/part/PartTable.tsx:452
msgid "Add Part"
msgstr "添加零件"
-#: src/pages/part/PartDetail.tsx:1084
+#: src/pages/part/PartDetail.tsx:983
msgid "Delete Part"
msgstr "刪除零件"
-#: src/pages/part/PartDetail.tsx:1093
+#: src/pages/part/PartDetail.tsx:992
msgid "Deleting this part cannot be reversed"
msgstr "刪除此零件無法撤銷"
-#: src/pages/part/PartDetail.tsx:1156
-#: src/pages/stock/StockDetail.tsx:885
+#: src/pages/part/PartDetail.tsx:1055
+#: src/pages/stock/StockDetail.tsx:900
msgid "Order"
msgstr "訂單"
-#: src/pages/part/PartDetail.tsx:1157
-#: src/pages/stock/StockDetail.tsx:886
+#: src/pages/part/PartDetail.tsx:1056
+#: src/pages/stock/StockDetail.tsx:901
#: src/tables/build/BuildLineTable.tsx:790
msgid "Order Stock"
msgstr "訂單庫存"
-#: src/pages/part/PartDetail.tsx:1169
+#: src/pages/part/PartDetail.tsx:1068
msgid "Search by serial number"
-msgstr ""
+msgstr "依序號搜尋"
-#: src/pages/part/PartDetail.tsx:1177
+#: src/pages/part/PartDetail.tsx:1076
#: src/tables/part/PartTable.tsx:509
msgid "Part Actions"
msgstr "零件選項"
@@ -8164,22 +8169,22 @@ msgstr "刪除盤點條目"
#: src/pages/part/PartStockHistoryDetail.tsx:109
msgid "Stocktake report scheduled for generation"
-msgstr ""
+msgstr "盤點報告已排程產生"
#: src/pages/part/PartStockHistoryDetail.tsx:123
msgid "Stock Quantity"
-msgstr ""
+msgstr "庫存數量"
#: src/pages/part/PartStockHistoryDetail.tsx:129
#: src/pages/part/PartStockHistoryDetail.tsx:242
-#: src/pages/stock/StockDetail.tsx:402
+#: src/pages/stock/StockDetail.tsx:403
#: src/tables/stock/StockItemTable.tsx:125
msgid "Stock Value"
msgstr "庫存價值"
#: src/pages/part/PartStockHistoryDetail.tsx:201
msgid "Generate Stocktake Entry"
-msgstr ""
+msgstr "產生盤點項目"
#: src/pages/part/PartStockHistoryDetail.tsx:271
#: src/pages/part/pricing/PricingOverviewPanel.tsx:334
@@ -8193,7 +8198,7 @@ msgstr "最大值"
#: src/pages/part/PartStockHistoryDetail.tsx:304
msgid "Stocktake Entries"
-msgstr ""
+msgstr "盤點項目"
#: src/pages/part/PartStocktakeDetail.tsx:104
#: src/tables/settings/StocktakeReportTable.tsx:72
@@ -8205,10 +8210,152 @@ msgstr ""
#~ msgid "New Stocktake Report"
#~ msgstr "New Stocktake Report"
+#: src/pages/part/bom/BomActions.tsx:64
+msgid "Validating BOM"
+msgstr "正在驗證 BOM"
+
+#: src/pages/part/bom/BomActions.tsx:65
+msgid "BOM validated"
+msgstr "BOM 已驗證"
+
+#: src/pages/part/bom/BomActions.tsx:80
+#: src/pages/part/bom/BomActions.tsx:83
+#: src/pages/part/bom/BomActions.tsx:139
+msgid "Validate BOM"
+msgstr "驗證物料清單"
+
+#: src/pages/part/bom/BomActions.tsx:84
+msgid "Do you want to validate the bill of materials for this assembly?"
+msgstr "您想要驗證此裝配的材料清單嗎?"
+
+#: src/pages/part/bom/BomActions.tsx:110
+msgid "BOM Validated"
+msgstr "BOM 已驗證"
+
+#: src/pages/part/bom/BomActions.tsx:111
+msgid "The Bill of Materials for this part has been validated"
+msgstr "此零件的材料清單 (BOM) 已完成驗證"
+
+#: src/pages/part/bom/BomActions.tsx:116
+msgid "The Bill of Materials for this part has previously been checked, but requires revalidation"
+msgstr "此零件的材料清單 (BOM) 先前已檢查過,但需要重新驗證"
+
+#: src/pages/part/bom/BomActions.tsx:121
+msgid "The Bill of Materials for this part has not yet been validated"
+msgstr "此零件的材料清單 (BOM) 尚未進行驗證"
+
+#: src/pages/part/bom/BomActions.tsx:131
+#: src/pages/part/bom/BomCompare.tsx:363
+msgid "Compare Bill of Materials"
+msgstr ""
+
+#: src/pages/part/bom/BomActions.tsx:159
+msgid "Validated On"
+msgstr "驗證時間"
+
+#: src/pages/part/bom/BomActions.tsx:165
+msgid "Validated By"
+msgstr "驗證者"
+
+#: src/pages/part/bom/BomCompare.tsx:35
+#: src/tables/bom/BomTable.tsx:482
+msgid "Allow Variants"
+msgstr "允許變體"
+
+#: src/pages/part/bom/BomCompare.tsx:36
+#: src/tables/bom/BomTable.tsx:477
+#: src/tables/bom/UsedInTable.tsx:85
+msgid "Inherited"
+msgstr "繼承項"
+
+#: src/pages/part/bom/BomCompare.tsx:37
+#: src/tables/bom/BomTable.tsx:487
+#: src/tables/bom/UsedInTable.tsx:90
+#: src/tables/build/BuildLineTable.tsx:208
+msgid "Optional"
+msgstr "可選項"
+
+#: src/pages/part/bom/BomCompare.tsx:38
+#: src/tables/bom/BomTable.tsx:492
+#: src/tables/build/BuildLineTable.tsx:203
+msgid "Consumable"
+msgstr "消耗品"
+
+#: src/pages/part/bom/BomCompare.tsx:39
+#: src/tables/build/BuildLineTable.tsx:417
+msgid "Setup Quantity"
+msgstr "設定數量"
+
+#: src/pages/part/bom/BomCompare.tsx:40
+#: src/tables/build/BuildLineTable.tsx:426
+msgid "Attrition"
+msgstr "耗損率"
+
+#: src/pages/part/bom/BomCompare.tsx:41
+#: src/tables/build/BuildLineTable.tsx:434
+msgid "Rounding Multiple"
+msgstr "捨入倍數"
+
+#: src/pages/part/bom/BomCompare.tsx:181
+msgid "No changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:183
+msgid "Part removed from BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:184
+msgid "Part added to BOM"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:205
+msgid "Changes"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:371
+msgid "Primary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:375
+msgid "Primary assembly for comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:382
+msgid "Select assembly to compare"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:383
+msgid "Secondary Assembly"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:407
+msgid "Display Mode"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:409
+msgid "Select display mode for BOM comparison"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:413
+msgid "Show all Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:414
+msgid "Show different Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:415
+msgid "Show common Parts"
+msgstr ""
+
+#: src/pages/part/bom/BomCompare.tsx:423
+msgid "Select an assembly to view Bill of Materials comparison"
+msgstr ""
+
#: src/pages/part/pricing/BomPricingPanel.tsx:57
#: src/pages/part/pricing/BomPricingPanel.tsx:135
-#: src/tables/ColumnRenderers.tsx:767
-#: src/tables/bom/BomTable.tsx:276
+#: src/tables/ColumnRenderers.tsx:764
+#: src/tables/bom/BomTable.tsx:299
#: src/tables/general/ExtraLineItemTable.tsx:74
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:259
#: src/tables/purchasing/PurchaseOrderTable.tsx:155
@@ -8250,8 +8397,8 @@ msgstr "最高價格"
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:71
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:126
#: src/pages/part/pricing/SupplierPricingPanel.tsx:66
-#: src/pages/stock/StockDetail.tsx:390
-#: src/tables/bom/BomTable.tsx:266
+#: src/pages/stock/StockDetail.tsx:391
+#: src/tables/bom/BomTable.tsx:289
#: src/tables/general/ExtraLineItemTable.tsx:66
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255
#: src/tables/purchasing/SupplierPriceBreakTable.tsx:84
@@ -8336,7 +8483,7 @@ msgstr "採購價格"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:311
#: src/pages/sales/ReturnOrderDetail.tsx:289
#: src/pages/sales/SalesOrderDetail.tsx:280
-#: src/pages/stock/StockDetail.tsx:426
+#: src/pages/stock/StockDetail.tsx:427
#: src/tables/general/ParameterTable.tsx:101
#: src/tables/settings/TemplateTable.tsx:250
#: src/tables/stock/StockItemTable.tsx:154
@@ -8459,28 +8606,28 @@ msgstr "總成本"
#: src/pages/sales/ReturnOrderDetail.tsx:216
#: src/pages/sales/SalesOrderDetail.tsx:209
msgid "Contact Email"
-msgstr ""
+msgstr "聯絡電子郵件"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:246
#: src/pages/sales/ReturnOrderDetail.tsx:224
#: src/pages/sales/SalesOrderDetail.tsx:217
msgid "Contact Phone"
-msgstr ""
+msgstr "聯絡電話"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:279
#: src/pages/sales/ReturnOrderDetail.tsx:258
#: src/pages/sales/SalesOrderDetail.tsx:250
msgid "Issue Date"
-msgstr ""
+msgstr "發布日期"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:304
#: src/pages/sales/ReturnOrderDetail.tsx:282
#: src/pages/sales/SalesOrderDetail.tsx:273
-#: src/tables/ColumnRenderers.tsx:715
+#: src/tables/ColumnRenderers.tsx:712
#: src/tables/build/BuildOrderTable.tsx:141
#: src/tables/part/PartPurchaseOrdersTable.tsx:106
msgid "Completion Date"
-msgstr ""
+msgstr "完成日期"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:343
#: src/pages/sales/ReturnOrderDetail.tsx:321
@@ -8535,13 +8682,13 @@ msgstr "客户參考"
#: src/pages/sales/ReturnOrderDetail.tsx:196
msgid "Return Address"
-msgstr ""
+msgstr "退貨地址"
#: src/pages/sales/ReturnOrderDetail.tsx:202
#: src/pages/sales/SalesOrderDetail.tsx:195
#: src/pages/sales/SalesOrderShipmentDetail.tsx:178
msgid "Not specified"
-msgstr ""
+msgstr "未指定"
#: src/pages/sales/ReturnOrderDetail.tsx:349
#~ msgid "Order canceled"
@@ -8580,7 +8727,7 @@ msgstr "完成配送"
#: src/pages/sales/SalesOrderDetail.tsx:189
#: src/pages/sales/SalesOrderShipmentDetail.tsx:167
msgid "Shipping Address"
-msgstr ""
+msgstr "發貨地址"
#: src/pages/sales/SalesOrderDetail.tsx:326
msgid "Edit Sales Order"
@@ -8611,15 +8758,15 @@ msgstr "掛起銷售訂單"
#: src/pages/sales/SalesOrderDetail.tsx:482
msgid "Ship Sales Order"
-msgstr ""
+msgstr "運送銷售訂單"
#: src/pages/sales/SalesOrderDetail.tsx:484
msgid "Ship this order?"
-msgstr ""
+msgstr "是否運送此訂單?"
#: src/pages/sales/SalesOrderDetail.tsx:485
msgid "Order shipped"
-msgstr ""
+msgstr "訂單已發貨"
#: src/pages/sales/SalesOrderDetail.tsx:493
msgid "Complete Sales Order"
@@ -8636,26 +8783,26 @@ msgstr "配送參考"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:145
msgid "Tracking Number"
-msgstr ""
+msgstr "追蹤號碼"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:153
msgid "Invoice Number"
-msgstr ""
+msgstr "發票號碼"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:188
msgid "Allocated Items"
-msgstr ""
+msgstr "已分配項目"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:193
msgid "Checked By"
-msgstr ""
+msgstr "檢查者"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:199
msgid "Not checked"
-msgstr ""
+msgstr "未檢查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:205
-#: src/tables/ColumnRenderers.tsx:723
+#: src/tables/ColumnRenderers.tsx:720
#: src/tables/sales/SalesOrderAllocationTable.tsx:181
#: src/tables/sales/SalesOrderShipmentTable.tsx:184
msgid "Shipment Date"
@@ -8672,7 +8819,7 @@ msgstr "送達日期"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:252
msgid "Shipment Details"
-msgstr ""
+msgstr "發貨詳情"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:296
#: src/pages/sales/SalesOrderShipmentDetail.tsx:400
@@ -8684,7 +8831,7 @@ msgstr "編輯配送"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:419
#: src/tables/sales/SalesOrderShipmentTable.tsx:90
msgid "Cancel Shipment"
-msgstr ""
+msgstr "取消發貨"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:333
#: src/tables/part/PartPurchaseOrdersTable.tsx:122
@@ -8695,11 +8842,11 @@ msgstr "待定"
#: src/tables/sales/SalesOrderShipmentTable.tsx:163
#: src/tables/sales/SalesOrderShipmentTable.tsx:294
msgid "Checked"
-msgstr ""
+msgstr "已檢查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:345
msgid "Not Checked"
-msgstr ""
+msgstr "未檢查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:351
#: src/tables/sales/SalesOrderShipmentTable.tsx:170
@@ -8716,34 +8863,34 @@ msgstr "已送達"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:372
msgid "Send Shipment"
-msgstr ""
+msgstr "發送貨物"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:395
msgid "Shipment Actions"
-msgstr ""
+msgstr "發貨操作"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:404
msgid "Check"
-msgstr ""
+msgstr "檢查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:405
msgid "Mark shipment as checked"
-msgstr ""
+msgstr "將發貨標記為已檢查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:411
msgid "Uncheck"
-msgstr ""
+msgstr "取消檢查"
#: src/pages/sales/SalesOrderShipmentDetail.tsx:412
msgid "Mark shipment as unchecked"
-msgstr ""
+msgstr "將發貨標記為未檢查"
#: src/pages/stock/LocationDetail.tsx:119
msgid "Parent Location"
msgstr "上級地點"
#: src/pages/stock/LocationDetail.tsx:137
-#: src/pages/stock/LocationDetail.tsx:185
+#: src/pages/stock/LocationDetail.tsx:182
msgid "Sublocations"
msgstr "次級地點"
@@ -8753,14 +8900,14 @@ msgid "Location Type"
msgstr "位置類型"
#: src/pages/stock/LocationDetail.tsx:166
-msgid "Top level stock location"
-msgstr "最高級庫存位置"
+#~ msgid "Top level stock location"
+#~ msgstr "Top level stock location"
-#: src/pages/stock/LocationDetail.tsx:179
+#: src/pages/stock/LocationDetail.tsx:175
msgid "Location Details"
msgstr "位置詳細信息"
-#: src/pages/stock/LocationDetail.tsx:225
+#: src/pages/stock/LocationDetail.tsx:222
msgid "Default Parts"
msgstr "默認零件"
@@ -8768,86 +8915,86 @@ msgstr "默認零件"
#~ msgid "Child Locations Action"
#~ msgstr "Child Locations Action"
-#: src/pages/stock/LocationDetail.tsx:249
-#: src/pages/stock/LocationDetail.tsx:411
+#: src/pages/stock/LocationDetail.tsx:246
+#: src/pages/stock/LocationDetail.tsx:408
#: src/tables/stock/StockLocationTable.tsx:124
msgid "Edit Stock Location"
msgstr "編輯庫存地點"
-#: src/pages/stock/LocationDetail.tsx:258
+#: src/pages/stock/LocationDetail.tsx:255
msgid "Move items to parent location"
-msgstr ""
+msgstr "將項目移至父位置"
-#: src/pages/stock/LocationDetail.tsx:270
-#: src/pages/stock/LocationDetail.tsx:416
+#: src/pages/stock/LocationDetail.tsx:267
+#: src/pages/stock/LocationDetail.tsx:413
msgid "Delete Stock Location"
msgstr "刪除庫存地點"
-#: src/pages/stock/LocationDetail.tsx:273
+#: src/pages/stock/LocationDetail.tsx:270
msgid "Items Action"
msgstr "項目操作"
-#: src/pages/stock/LocationDetail.tsx:275
+#: src/pages/stock/LocationDetail.tsx:272
msgid "Action for stock items in this location"
msgstr "對此位置中的庫存物品執行的操作"
-#: src/pages/stock/LocationDetail.tsx:280
-#: src/pages/stock/LocationDetail.tsx:407
+#: src/pages/stock/LocationDetail.tsx:277
+#: src/pages/stock/LocationDetail.tsx:404
#: src/tables/stock/StockLocationTable.tsx:145
msgid "Location Actions"
msgstr "位置操作"
+#: src/pages/stock/LocationDetail.tsx:279
+msgid "Action for child locations in this location"
+msgstr "對此位置中的子位置執行的操作"
+
#: src/pages/stock/LocationDetail.tsx:280
#~ msgid "Locations Action"
#~ msgstr "Locations Action"
-#: src/pages/stock/LocationDetail.tsx:282
-msgid "Action for child locations in this location"
-msgstr "對此位置中的子位置執行的操作"
-
-#: src/pages/stock/LocationDetail.tsx:317
+#: src/pages/stock/LocationDetail.tsx:314
msgid "Scan Stock Item"
-msgstr ""
+msgstr "掃描庫存項目"
-#: src/pages/stock/LocationDetail.tsx:335
-#: src/pages/stock/StockDetail.tsx:814
+#: src/pages/stock/LocationDetail.tsx:332
+#: src/pages/stock/StockDetail.tsx:835
msgid "Scanned stock item into location"
-msgstr ""
+msgstr "掃描庫存項目至位置"
-#: src/pages/stock/LocationDetail.tsx:341
-#: src/pages/stock/StockDetail.tsx:820
+#: src/pages/stock/LocationDetail.tsx:338
+#: src/pages/stock/StockDetail.tsx:841
msgid "Error scanning stock item"
-msgstr ""
+msgstr "掃描庫存項目時發生錯誤"
-#: src/pages/stock/LocationDetail.tsx:348
+#: src/pages/stock/LocationDetail.tsx:345
msgid "Scan Stock Location"
-msgstr ""
+msgstr "掃描庫存位置"
-#: src/pages/stock/LocationDetail.tsx:360
+#: src/pages/stock/LocationDetail.tsx:357
msgid "Scanned stock location into location"
-msgstr ""
+msgstr "掃描庫存位置至位置"
-#: src/pages/stock/LocationDetail.tsx:366
+#: src/pages/stock/LocationDetail.tsx:363
msgid "Error scanning stock location"
-msgstr ""
+msgstr "掃描庫存位置時發生錯誤"
-#: src/pages/stock/LocationDetail.tsx:384
+#: src/pages/stock/LocationDetail.tsx:381
msgid "Scan in stock items"
-msgstr ""
+msgstr "掃描進庫存項目"
-#: src/pages/stock/LocationDetail.tsx:386
+#: src/pages/stock/LocationDetail.tsx:383
msgid "Scan item into this location"
-msgstr ""
+msgstr "掃描項目進入此位置"
-#: src/pages/stock/LocationDetail.tsx:390
+#: src/pages/stock/LocationDetail.tsx:387
msgid "Scan in container"
-msgstr ""
+msgstr "掃描進入容器"
-#: src/pages/stock/LocationDetail.tsx:392
+#: src/pages/stock/LocationDetail.tsx:389
msgid "Scan container into this location"
-msgstr ""
+msgstr "掃描容器進入此位置"
-#: src/pages/stock/StockDetail.tsx:147
+#: src/pages/stock/StockDetail.tsx:148
msgid "Base Part"
msgstr "基礎零件"
@@ -8867,43 +9014,43 @@ msgstr "基礎零件"
#~ msgid "Edit stock item"
#~ msgstr "Edit stock item"
-#: src/pages/stock/StockDetail.tsx:206
+#: src/pages/stock/StockDetail.tsx:207
msgid "Previous serial number"
-msgstr ""
+msgstr "上一個序號"
#: src/pages/stock/StockDetail.tsx:217
#~ msgid "Delete stock item"
#~ msgstr "Delete stock item"
-#: src/pages/stock/StockDetail.tsx:228
+#: src/pages/stock/StockDetail.tsx:229
msgid "Find serial number"
-msgstr ""
+msgstr "尋找序號"
-#: src/pages/stock/StockDetail.tsx:234
+#: src/pages/stock/StockDetail.tsx:235
msgid "Next serial number"
msgstr "下一個序列號"
-#: src/pages/stock/StockDetail.tsx:272
+#: src/pages/stock/StockDetail.tsx:273
msgid "Allocated to Orders"
msgstr "分配到訂單"
-#: src/pages/stock/StockDetail.tsx:305
+#: src/pages/stock/StockDetail.tsx:306
msgid "Installed In"
msgstr "安裝於"
-#: src/pages/stock/StockDetail.tsx:325
+#: src/pages/stock/StockDetail.tsx:326
msgid "Parent Item"
msgstr "上級項目"
-#: src/pages/stock/StockDetail.tsx:329
+#: src/pages/stock/StockDetail.tsx:330
msgid "Parent stock item"
msgstr "上級庫存項"
-#: src/pages/stock/StockDetail.tsx:335
+#: src/pages/stock/StockDetail.tsx:336
msgid "Consumed By"
msgstr "消耗者"
-#: src/pages/stock/StockDetail.tsx:432
+#: src/pages/stock/StockDetail.tsx:433
msgid "Last Stocktake"
msgstr "最近庫存盤點"
@@ -8911,7 +9058,7 @@ msgstr "最近庫存盤點"
#~ msgid "Duplicate stock item"
#~ msgstr "Duplicate stock item"
-#: src/pages/stock/StockDetail.tsx:526
+#: src/pages/stock/StockDetail.tsx:527
msgid "Stock Details"
msgstr "庫存詳情"
@@ -8919,15 +9066,15 @@ msgstr "庫存詳情"
#~ msgid "Test Data"
#~ msgstr "Test Data"
-#: src/pages/stock/StockDetail.tsx:601
+#: src/pages/stock/StockDetail.tsx:602
msgid "Installed Items"
msgstr "已安裝的項目"
-#: src/pages/stock/StockDetail.tsx:608
+#: src/pages/stock/StockDetail.tsx:609
msgid "Child Items"
msgstr "子項目"
-#: src/pages/stock/StockDetail.tsx:662
+#: src/pages/stock/StockDetail.tsx:663
msgid "Edit Stock Item"
msgstr "編輯庫存項"
@@ -8941,20 +9088,24 @@ msgstr "編輯庫存項"
#~ msgid "Remove stock"
#~ msgstr "Remove stock"
+#: src/pages/stock/StockDetail.tsx:683
+msgid "Convert Stock Item"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:698
#: src/tables/stock/StockItemTable.tsx:481
#~ msgid "Transfer stock"
#~ msgstr "Transfer stock"
-#: src/pages/stock/StockDetail.tsx:704
+#: src/pages/stock/StockDetail.tsx:725
msgid "Items Created"
-msgstr ""
+msgstr "項目已建立"
-#: src/pages/stock/StockDetail.tsx:705
+#: src/pages/stock/StockDetail.tsx:726
msgid "Created {n} stock items"
-msgstr ""
+msgstr "已建立 {n} 個庫存項目"
-#: src/pages/stock/StockDetail.tsx:722
+#: src/pages/stock/StockDetail.tsx:743
msgid "Delete Stock Item"
msgstr "刪除庫存項"
@@ -8966,44 +9117,44 @@ msgstr "刪除庫存項"
#~ 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:772
-msgid "Serialize Stock Item"
-msgstr "序列化庫存"
-
#: src/pages/stock/StockDetail.tsx:777
#~ msgid "Item returned to stock"
#~ msgstr "Item returned to stock"
-#: src/pages/stock/StockDetail.tsx:788
+#: src/pages/stock/StockDetail.tsx:793
+msgid "Serialize Stock Item"
+msgstr "序列化庫存"
+
+#: src/pages/stock/StockDetail.tsx:809
msgid "Stock item serialized"
msgstr "庫存項已創建"
-#: src/pages/stock/StockDetail.tsx:796
+#: src/pages/stock/StockDetail.tsx:817
msgid "Scan Into Location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:854
-msgid "Scan into location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:856
-msgid "Scan this item into a location"
-msgstr ""
-
-#: src/pages/stock/StockDetail.tsx:868
-msgid "Stock Operations"
-msgstr "庫存操作"
+msgstr "掃描進入位置"
#: src/pages/stock/StockDetail.tsx:868
#~ msgid "Count stock"
#~ msgstr "Count stock"
-#: src/pages/stock/StockDetail.tsx:873
+#: src/pages/stock/StockDetail.tsx:869
+msgid "Scan into location"
+msgstr "掃描進入位置"
+
+#: src/pages/stock/StockDetail.tsx:871
+msgid "Scan this item into a location"
+msgstr "掃描此項目進入一個位置"
+
+#: src/pages/stock/StockDetail.tsx:883
+msgid "Stock Operations"
+msgstr "庫存操作"
+
+#: src/pages/stock/StockDetail.tsx:888
#: src/tables/build/BuildOutputTable.tsx:571
msgid "Serialize"
msgstr "序列化"
-#: src/pages/stock/StockDetail.tsx:874
+#: src/pages/stock/StockDetail.tsx:889
msgid "Serialize stock"
msgstr "序列化庫存"
@@ -9011,14 +9162,22 @@ msgstr "序列化庫存"
#~ msgid "Return from customer"
#~ msgstr "Return from customer"
-#: src/pages/stock/StockDetail.tsx:899
-msgid "Stock Item Actions"
-msgstr "庫存項操作"
-
#: src/pages/stock/StockDetail.tsx:900
#~ msgid "Transfer"
#~ msgstr "Transfer"
+#: src/pages/stock/StockDetail.tsx:914
+msgid "Stock Item Actions"
+msgstr "庫存項操作"
+
+#: src/pages/stock/StockDetail.tsx:925
+msgid "Convert"
+msgstr ""
+
+#: src/pages/stock/StockDetail.tsx:926
+msgid "Convert this stock item to a different part"
+msgstr ""
+
#: src/pages/stock/StockDetail.tsx:950
#~ msgid "Assign to Customer"
#~ msgstr "Assign to Customer"
@@ -9027,24 +9186,24 @@ msgstr "庫存項操作"
#~ msgid "Assign to a customer"
#~ msgstr "Assign to a customer"
-#: src/pages/stock/StockDetail.tsx:969
+#: src/pages/stock/StockDetail.tsx:991
#: src/tables/stock/StockItemTable.tsx:258
msgid "Stale"
-msgstr ""
+msgstr "陳舊"
-#: src/pages/stock/StockDetail.tsx:975
+#: src/pages/stock/StockDetail.tsx:997
#: src/tables/stock/StockItemTable.tsx:252
msgid "Expired"
-msgstr ""
+msgstr "過期"
-#: src/pages/stock/StockDetail.tsx:981
+#: src/pages/stock/StockDetail.tsx:1003
msgid "Unavailable"
-msgstr ""
+msgstr "無法使用"
#: src/states/IconState.tsx:47
#: src/states/IconState.tsx:77
msgid "Error loading icon package from server"
-msgstr ""
+msgstr "從伺服器載入圖示套件時發生錯誤"
#: src/tables/ColumnRenderers.tsx:41
#~ msgid "Part is locked"
@@ -9056,7 +9215,7 @@ msgstr "零件未激活"
#: src/tables/ColumnRenderers.tsx:78
msgid "You are subscribed to notifications for this part"
-msgstr ""
+msgstr "您已訂閱此零件的通知"
#: src/tables/ColumnRenderers.tsx:93
#~ msgid "No location set"
@@ -9084,7 +9243,7 @@ msgstr "此庫存項已被生產訂單消耗"
#: src/tables/ColumnRenderers.tsx:197
msgid "This stock item is unavailable"
-msgstr ""
+msgstr "此庫存項目無法使用"
#: src/tables/ColumnRenderers.tsx:203
msgid "This stock item has expired"
@@ -9096,7 +9255,7 @@ msgstr "此庫存項是過期項"
#: src/tables/ColumnRenderers.tsx:219
msgid "This stock item is over-allocated"
-msgstr ""
+msgstr "此庫存項目已過度分配"
#: src/tables/ColumnRenderers.tsx:227
msgid "This stock item is fully allocated"
@@ -9116,26 +9275,21 @@ msgstr "無可用庫存"
msgid "This stock item has been depleted"
msgstr "庫存項已耗盡"
-#: src/tables/ColumnRenderers.tsx:283
-#: src/tables/bom/BomTable.tsx:352
+#: src/tables/ColumnRenderers.tsx:279
+#: src/tables/bom/BomTable.tsx:375
#: src/tables/part/PartTable.tsx:172
#: src/tables/sales/SalesOrderLineItemTable.tsx:185
msgid "Stock Information"
msgstr "庫存信息"
-#: src/tables/ColumnRenderers.tsx:545
+#: src/tables/ColumnRenderers.tsx:542
#: src/tables/build/BuildOutputTable.tsx:660
msgid "Allocated Lines"
msgstr "已分配的項目"
-#: src/tables/ColumnRenderers.tsx:774
+#: src/tables/ColumnRenderers.tsx:771
msgid "Line Item"
-msgstr ""
-
-#: src/tables/ColumnSelect.tsx:16
-#: src/tables/ColumnSelect.tsx:23
-msgid "Select Columns"
-msgstr "選擇列"
+msgstr "明細項目"
#: src/tables/DownloadAction.tsx:13
#~ msgid "Excel"
@@ -9179,7 +9333,7 @@ msgstr "顯示有批號的項目"
#: src/tables/Filter.tsx:126
msgid "Filter items by batch code"
-msgstr ""
+msgstr "依批次代碼過濾項目"
#: src/tables/Filter.tsx:135
msgid "Show items which are in stock"
@@ -9196,27 +9350,27 @@ msgstr "顯示帶有序列號的項目"
#: src/tables/Filter.tsx:150
#: src/tables/build/BuildAllocatedStockTable.tsx:134
msgid "Serial"
-msgstr ""
+msgstr "序號"
#: src/tables/Filter.tsx:151
msgid "Filter items by serial number"
-msgstr ""
+msgstr "依序號過濾項目"
#: src/tables/Filter.tsx:159
msgid "Serial Below"
-msgstr ""
+msgstr "序號低於"
#: src/tables/Filter.tsx:160
msgid "Show items with serial numbers less than or equal to a given value"
-msgstr ""
+msgstr "顯示序號小於或等於給定值的項目"
#: src/tables/Filter.tsx:168
msgid "Serial Above"
-msgstr ""
+msgstr "序號高於"
#: src/tables/Filter.tsx:169
msgid "Show items with serial numbers greater than or equal to a given value"
-msgstr ""
+msgstr "顯示序號大於或等於給定值的項目"
#: src/tables/Filter.tsx:178
msgid "Assigned to me"
@@ -9233,109 +9387,109 @@ msgstr "未完成"
#: src/tables/Filter.tsx:187
msgid "Show outstanding items"
-msgstr ""
+msgstr "顯示未完成的項目"
#: src/tables/Filter.tsx:195
msgid "Show overdue items"
-msgstr ""
+msgstr "顯示已逾期的項目"
#: src/tables/Filter.tsx:202
msgid "Minimum Date"
-msgstr ""
+msgstr "最小日期"
#: src/tables/Filter.tsx:203
msgid "Show items after this date"
-msgstr ""
+msgstr "顯示此日期之後的項目"
#: src/tables/Filter.tsx:211
msgid "Maximum Date"
-msgstr ""
+msgstr "最大日期"
#: src/tables/Filter.tsx:212
msgid "Show items before this date"
-msgstr ""
+msgstr "顯示此日期之前的項目"
#: src/tables/Filter.tsx:220
msgid "Created Before"
-msgstr ""
+msgstr "建立於...之前"
#: src/tables/Filter.tsx:221
msgid "Show items created before this date"
-msgstr ""
+msgstr "顯示在此日期之前建立的項目"
#: src/tables/Filter.tsx:229
msgid "Created After"
-msgstr ""
+msgstr "建立於...之後"
#: src/tables/Filter.tsx:230
msgid "Show items created after this date"
-msgstr ""
+msgstr "顯示在此日期之後建立的項目"
#: src/tables/Filter.tsx:238
msgid "Start Date Before"
-msgstr ""
+msgstr "開始日期在...之前"
#: src/tables/Filter.tsx:239
msgid "Show items with a start date before this date"
-msgstr ""
+msgstr "顯示開始日期在此日期之前的項目"
#: src/tables/Filter.tsx:247
msgid "Start Date After"
-msgstr ""
+msgstr "開始日期在...之後"
#: src/tables/Filter.tsx:248
msgid "Show items with a start date after this date"
-msgstr ""
+msgstr "顯示開始日期在此日期之後的項目"
#: src/tables/Filter.tsx:256
msgid "Target Date Before"
-msgstr ""
+msgstr "目標日期在...之前"
#: src/tables/Filter.tsx:257
msgid "Show items with a target date before this date"
-msgstr ""
+msgstr "顯示目標日期在此日期之前的項目"
#: src/tables/Filter.tsx:265
msgid "Target Date After"
-msgstr ""
+msgstr "目標日期在...之後"
#: src/tables/Filter.tsx:266
msgid "Show items with a target date after this date"
-msgstr ""
+msgstr "顯示目標日期在此日期之後的項目"
#: src/tables/Filter.tsx:274
msgid "Completed Before"
-msgstr ""
+msgstr "完成於...之前"
#: src/tables/Filter.tsx:275
msgid "Show items completed before this date"
-msgstr ""
+msgstr "顯示在此日期之前完成的項目"
#: src/tables/Filter.tsx:283
msgid "Completed After"
-msgstr ""
+msgstr "完成於...之後"
#: src/tables/Filter.tsx:284
msgid "Show items completed after this date"
-msgstr ""
+msgstr "顯示在此日期之後完成的項目"
#: src/tables/Filter.tsx:292
#: src/tables/stock/StockItemTable.tsx:284
msgid "Updated After"
-msgstr ""
+msgstr "更新於...之後"
#: src/tables/Filter.tsx:293
msgid "Show orders updated after this date"
-msgstr ""
+msgstr "顯示在此日期之後更新的訂單"
#: src/tables/Filter.tsx:301
#: src/tables/stock/StockItemTable.tsx:278
msgid "Updated Before"
-msgstr ""
+msgstr "更新於...之前"
#: src/tables/Filter.tsx:302
msgid "Show orders updated before this date"
-msgstr ""
+msgstr "顯示在此日期之前更新的訂單"
#: src/tables/Filter.tsx:314
msgid "Has Project Code"
@@ -9343,7 +9497,7 @@ msgstr "有項目編碼"
#: src/tables/Filter.tsx:315
msgid "Show orders with an assigned project code"
-msgstr ""
+msgstr "顯示已分配專案代碼的訂單"
#: src/tables/Filter.tsx:324
msgid "Include Variants"
@@ -9351,7 +9505,7 @@ msgstr "包含變體"
#: src/tables/Filter.tsx:325
msgid "Include results for part variants"
-msgstr ""
+msgstr "包含零件變體的結果"
#: src/tables/Filter.tsx:335
#: src/tables/part/PartPurchaseOrdersTable.tsx:133
@@ -9374,27 +9528,27 @@ msgstr "按用户篩選"
#: src/tables/Filter.tsx:408
msgid "Filter by manufacturer"
-msgstr ""
+msgstr "依製造商過濾"
#: src/tables/Filter.tsx:421
msgid "Filter by supplier"
-msgstr ""
+msgstr "依供應商過濾"
#: src/tables/Filter.tsx:434
msgid "Filter by user who created the order"
-msgstr ""
+msgstr "依建立訂單的使用者過濾"
#: src/tables/Filter.tsx:442
msgid "Filter by user who issued the order"
-msgstr ""
+msgstr "依發布訂單的使用者過濾"
#: src/tables/Filter.tsx:450
msgid "Filter by part category"
-msgstr ""
+msgstr "依零件類別過濾"
#: src/tables/Filter.tsx:461
msgid "Filter by stock location"
-msgstr ""
+msgstr "依庫存位置過濾"
#: src/tables/FilterSelectDrawer.tsx:97
msgid "Remove filter"
@@ -9408,11 +9562,11 @@ msgstr "選擇過濾器值"
#: src/tables/FilterSelectDrawer.tsx:157
msgid "Enter filter value"
-msgstr ""
+msgstr "輸入過濾值"
#: src/tables/FilterSelectDrawer.tsx:179
msgid "Select date value"
-msgstr ""
+msgstr "選擇日期值"
#: src/tables/FilterSelectDrawer.tsx:301
msgid "Select filter"
@@ -9423,7 +9577,7 @@ msgid "Filter"
msgstr "過濾器"
#: src/tables/FilterSelectDrawer.tsx:354
-#: src/tables/InvenTreeTableHeader.tsx:259
+#: src/tables/InvenTreeTableHeader.tsx:263
msgid "Table Filters"
msgstr "表格篩選"
@@ -9435,14 +9589,14 @@ msgstr "添加過濾條件"
msgid "Clear Filters"
msgstr "清除篩選"
-#: src/tables/InvenTreeTable.tsx:47
-#: src/tables/InvenTreeTable.tsx:522
+#: src/tables/InvenTreeTable.tsx:52
+#: src/tables/InvenTreeTable.tsx:526
msgid "No records found"
msgstr "沒有找到記錄"
-#: src/tables/InvenTreeTable.tsx:154
+#: src/tables/InvenTreeTable.tsx:162
msgid "Error loading table options"
-msgstr ""
+msgstr "載入表格選項時發生錯誤"
#: src/tables/InvenTreeTable.tsx:250
#~ msgid "Failed to load table options"
@@ -9468,7 +9622,7 @@ msgstr ""
#~ msgid "This action cannot be undone!"
#~ msgstr "This action cannot be undone!"
-#: src/tables/InvenTreeTable.tsx:567
+#: src/tables/InvenTreeTable.tsx:571
msgid "Server returned incorrect data type"
msgstr "服務器返回了錯誤的數據類型"
@@ -9477,9 +9631,9 @@ msgstr "服務器返回了錯誤的數據類型"
#~ msgid "Print actions"
#~ msgstr "Print actions"
-#: src/tables/InvenTreeTable.tsx:600
+#: src/tables/InvenTreeTable.tsx:604
msgid "Error loading table data"
-msgstr ""
+msgstr "載入表格資料時發生錯誤"
#: src/tables/InvenTreeTable.tsx:655
#: src/tables/InvenTreeTable.tsx:656
@@ -9494,51 +9648,51 @@ msgstr ""
#~ msgid "Clear custom query filters"
#~ msgstr "Clear custom query filters"
-#: src/tables/InvenTreeTable.tsx:729
+#: src/tables/InvenTreeTable.tsx:733
msgid "View details"
-msgstr ""
+msgstr "檢視詳情"
-#: src/tables/InvenTreeTable.tsx:732
+#: src/tables/InvenTreeTable.tsx:736
msgid "View {model}"
-msgstr ""
+msgstr "檢視 {model}"
-#: src/tables/InvenTreeTableHeader.tsx:103
+#: src/tables/InvenTreeTableHeader.tsx:107
msgid "Delete Selected Items"
msgstr "刪除所選項目"
-#: src/tables/InvenTreeTableHeader.tsx:107
+#: src/tables/InvenTreeTableHeader.tsx:111
msgid "Are you sure you want to delete the selected items?"
msgstr "確定要刪除所選的項目嗎?"
-#: src/tables/InvenTreeTableHeader.tsx:109
+#: src/tables/InvenTreeTableHeader.tsx:113
#: src/tables/plugin/PluginListTable.tsx:320
msgid "This action cannot be undone"
-msgstr ""
+msgstr "此操作無法還原"
-#: src/tables/InvenTreeTableHeader.tsx:120
+#: src/tables/InvenTreeTableHeader.tsx:124
msgid "Items deleted"
-msgstr ""
+msgstr "項目已刪除"
-#: src/tables/InvenTreeTableHeader.tsx:125
+#: src/tables/InvenTreeTableHeader.tsx:129
msgid "Failed to delete items"
-msgstr ""
+msgstr "刪除項目失敗"
-#: src/tables/InvenTreeTableHeader.tsx:176
+#: src/tables/InvenTreeTableHeader.tsx:180
msgid "Custom table filters are active"
-msgstr ""
+msgstr "自訂表格過濾器正在作用中"
-#: src/tables/InvenTreeTableHeader.tsx:202
+#: src/tables/InvenTreeTableHeader.tsx:206
#: src/tables/general/BarcodeScanTable.tsx:93
msgid "Delete selected records"
msgstr "刪除選中的記錄"
-#: src/tables/InvenTreeTableHeader.tsx:222
+#: src/tables/InvenTreeTableHeader.tsx:226
msgid "Refresh data"
msgstr "刷新數據"
-#: src/tables/InvenTreeTableHeader.tsx:271
+#: src/tables/InvenTreeTableHeader.tsx:275
msgid "Active Filters"
-msgstr ""
+msgstr "作用中的過濾器"
#: src/tables/TableHoverCard.tsx:35
#~ msgid "item-{idx}"
@@ -9548,71 +9702,66 @@ msgstr ""
#~ msgid "Upload Data"
#~ msgstr "Upload Data"
-#: src/tables/bom/BomTable.tsx:98
+#: src/tables/bom/BomTable.tsx:115
msgid "This BOM item is defined for a different parent"
msgstr "此物料清單項目是為另一個上級定義的"
-#: src/tables/bom/BomTable.tsx:114
+#: src/tables/bom/BomTable.tsx:122
+msgid "This BOM item has not been validated"
+msgstr "此 BOM 項目尚未驗證"
+
+#: src/tables/bom/BomTable.tsx:145
msgid "Part Information"
msgstr "零件信息"
-#: src/tables/bom/BomTable.tsx:117
-msgid "This BOM item has not been validated"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:234
+#: src/tables/bom/BomTable.tsx:257
msgid "Substitutes"
-msgstr ""
-
-#: src/tables/bom/BomTable.tsx:296
-#: src/tables/sales/SalesOrderLineItemTable.tsx:137
-#: src/tables/sales/SalesOrderLineItemTable.tsx:195
-#: src/tables/sales/SalesOrderLineItemTable.tsx:212
-msgid "Virtual part"
-msgstr ""
+msgstr "替代品"
#: src/tables/bom/BomTable.tsx:301
#~ msgid "Create BOM Item"
#~ msgstr "Create BOM Item"
-#: src/tables/bom/BomTable.tsx:309
-#: src/tables/build/BuildLineTable.tsx:282
-#: src/tables/part/PartTable.tsx:146
-msgid "External stock"
-msgstr "外部庫存"
-
#: src/tables/bom/BomTable.tsx:310
#~ msgid "Show asssmbled items"
#~ msgstr "Show asssmbled items"
-#: src/tables/bom/BomTable.tsx:317
-#: src/tables/build/BuildLineTable.tsx:245
-msgid "Includes substitute stock"
-msgstr "包括替代庫存"
-
-#: src/tables/bom/BomTable.tsx:326
-#: src/tables/build/BuildLineTable.tsx:255
-#: src/tables/sales/SalesOrderLineItemTable.tsx:162
-msgid "Includes variant stock"
-msgstr "包括變體庫存"
+#: src/tables/bom/BomTable.tsx:319
+#: src/tables/sales/SalesOrderLineItemTable.tsx:137
+#: src/tables/sales/SalesOrderLineItemTable.tsx:195
+#: src/tables/sales/SalesOrderLineItemTable.tsx:212
+msgid "Virtual part"
+msgstr "虛擬零件"
#: src/tables/bom/BomTable.tsx:331
#~ msgid "Edit Bom Item"
#~ msgstr "Edit Bom Item"
+#: src/tables/bom/BomTable.tsx:332
+#: src/tables/build/BuildLineTable.tsx:282
+#: src/tables/part/PartTable.tsx:146
+msgid "External stock"
+msgstr "外部庫存"
+
#: src/tables/bom/BomTable.tsx:333
#~ msgid "Bom item updated"
#~ msgstr "Bom item updated"
-#: src/tables/bom/BomTable.tsx:343
-#: src/tables/part/PartTable.tsx:115
-msgid "Building"
-msgstr "正在生產"
+#: src/tables/bom/BomTable.tsx:340
+#: src/tables/build/BuildLineTable.tsx:245
+msgid "Includes substitute stock"
+msgstr "包括替代庫存"
#: src/tables/bom/BomTable.tsx:348
#~ msgid "Delete Bom Item"
#~ msgstr "Delete Bom Item"
+#: src/tables/bom/BomTable.tsx:349
+#: src/tables/build/BuildLineTable.tsx:255
+#: src/tables/sales/SalesOrderLineItemTable.tsx:162
+msgid "Includes variant stock"
+msgstr "包括變體庫存"
+
#: src/tables/bom/BomTable.tsx:349
#~ msgid "Bom item deleted"
#~ msgstr "Bom item deleted"
@@ -9625,178 +9774,171 @@ msgstr "正在生產"
#~ msgid "Validate BOM line"
#~ msgstr "Validate BOM line"
-#: src/tables/bom/BomTable.tsx:393
+#: src/tables/bom/BomTable.tsx:366
+#: src/tables/part/PartTable.tsx:115
+msgid "Building"
+msgstr "正在生產"
+
+#: src/tables/bom/BomTable.tsx:417
#: src/tables/build/BuildLineTable.tsx:498
#: src/tables/build/BuildLineTable.tsx:539
msgid "Consumable item"
msgstr "可耗物品"
-#: src/tables/bom/BomTable.tsx:396
+#: src/tables/bom/BomTable.tsx:420
msgid "No available stock"
msgstr "無可用庫存"
-#: src/tables/bom/BomTable.tsx:414
+#: src/tables/bom/BomTable.tsx:438
#: src/tables/build/BuildLineTable.tsx:219
msgid "Show testable items"
msgstr "顯示可跟蹤項目"
-#: src/tables/bom/BomTable.tsx:419
+#: src/tables/bom/BomTable.tsx:443
msgid "Show trackable items"
msgstr "顯示可跟蹤項目"
-#: src/tables/bom/BomTable.tsx:423
+#: src/tables/bom/BomTable.tsx:447
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:42
#: src/tables/purchasing/ManufacturerPartTable.tsx:154
#: src/tables/purchasing/SupplierPartTable.tsx:259
msgid "Active Part"
msgstr "激活的零件"
-#: src/tables/bom/BomTable.tsx:424
+#: src/tables/bom/BomTable.tsx:448
msgid "Show active items"
-msgstr ""
+msgstr "顯示作用中的項目"
-#: src/tables/bom/BomTable.tsx:429
+#: src/tables/bom/BomTable.tsx:453
#: src/tables/build/BuildLineTable.tsx:214
msgid "Show assembled items"
msgstr "顯示已裝配的項目"
-#: src/tables/bom/BomTable.tsx:434
+#: src/tables/bom/BomTable.tsx:458
msgid "Show virtual items"
-msgstr ""
+msgstr "顯示虛擬項目"
-#: src/tables/bom/BomTable.tsx:439
+#: src/tables/bom/BomTable.tsx:463
msgid "Show items with available stock"
msgstr "顯示有可用庫存的項目"
-#: src/tables/bom/BomTable.tsx:444
+#: src/tables/bom/BomTable.tsx:468
msgid "Show items on order"
msgstr "按順序顯示項目"
-#: src/tables/bom/BomTable.tsx:448
+#: src/tables/bom/BomTable.tsx:472
msgid "Validated"
msgstr "已驗證"
-#: src/tables/bom/BomTable.tsx:449
+#: src/tables/bom/BomTable.tsx:473
msgid "Show validated items"
msgstr "顯示已驗證的項目"
-#: src/tables/bom/BomTable.tsx:453
-#: src/tables/bom/UsedInTable.tsx:85
-msgid "Inherited"
-msgstr "繼承項"
-
-#: src/tables/bom/BomTable.tsx:454
+#: src/tables/bom/BomTable.tsx:478
#: src/tables/bom/UsedInTable.tsx:86
msgid "Show inherited items"
msgstr "顯示繼承的項目"
-#: src/tables/bom/BomTable.tsx:458
-msgid "Allow Variants"
-msgstr "允許變體"
-
-#: src/tables/bom/BomTable.tsx:459
+#: src/tables/bom/BomTable.tsx:483
msgid "Show items which allow variant substitution"
msgstr "顯示允許變體替換的項目"
-#: src/tables/bom/BomTable.tsx:463
-#: src/tables/bom/UsedInTable.tsx:90
-#: src/tables/build/BuildLineTable.tsx:208
-msgid "Optional"
-msgstr "可選項"
-
-#: src/tables/bom/BomTable.tsx:464
+#: src/tables/bom/BomTable.tsx:488
#: src/tables/bom/UsedInTable.tsx:91
msgid "Show optional items"
msgstr "顯示可選項目"
-#: src/tables/bom/BomTable.tsx:468
-#: src/tables/build/BuildLineTable.tsx:203
-msgid "Consumable"
-msgstr "消耗品"
-
-#: src/tables/bom/BomTable.tsx:469
+#: src/tables/bom/BomTable.tsx:493
msgid "Show consumable items"
msgstr "顯示可消耗項目"
-#: src/tables/bom/BomTable.tsx:473
+#: src/tables/bom/BomTable.tsx:497
#: src/tables/part/PartTable.tsx:310
msgid "Has Pricing"
msgstr "是否有價格"
-#: src/tables/bom/BomTable.tsx:474
+#: src/tables/bom/BomTable.tsx:498
msgid "Show items with pricing"
msgstr "顯示帶定價的項目"
-#: src/tables/bom/BomTable.tsx:496
+#: src/tables/bom/BomTable.tsx:520
msgid "Import BOM Data"
msgstr "導入物料清單數據"
-#: src/tables/bom/BomTable.tsx:507
-#: src/tables/bom/BomTable.tsx:631
+#: src/tables/bom/BomTable.tsx:531
+#: src/tables/bom/BomTable.tsx:655
msgid "Add BOM Item"
msgstr "添加物料清單項"
-#: src/tables/bom/BomTable.tsx:512
+#: src/tables/bom/BomTable.tsx:536
msgid "BOM item created"
msgstr "BOM 項目已創建"
-#: src/tables/bom/BomTable.tsx:519
+#: src/tables/bom/BomTable.tsx:543
#: src/tables/bom/UsedInTable.tsx:111
msgid "Edit BOM Item"
msgstr "編輯物料清單項目"
-#: src/tables/bom/BomTable.tsx:521
+#: src/tables/bom/BomTable.tsx:545
#: src/tables/bom/UsedInTable.tsx:115
msgid "BOM item updated"
msgstr "物料清單 項目已更新"
-#: src/tables/bom/BomTable.tsx:528
+#: src/tables/bom/BomTable.tsx:552
msgid "Delete BOM Item"
msgstr "刪除物料清單項目"
-#: src/tables/bom/BomTable.tsx:529
+#: src/tables/bom/BomTable.tsx:553
msgid "BOM item deleted"
msgstr "物料清單項目已刪除"
-#: src/tables/bom/BomTable.tsx:549
+#: src/tables/bom/BomTable.tsx:573
msgid "BOM item validated"
msgstr "物料清單項目已驗證"
-#: src/tables/bom/BomTable.tsx:558
+#: src/tables/bom/BomTable.tsx:582
msgid "Failed to validate BOM item"
msgstr "驗證物料清單項目失敗"
-#: src/tables/bom/BomTable.tsx:570
+#: src/tables/bom/BomTable.tsx:594
msgid "View BOM"
msgstr "查看 物料清單"
-#: src/tables/bom/BomTable.tsx:581
+#: src/tables/bom/BomTable.tsx:605
msgid "Validate BOM Line"
msgstr "驗證物料清單行"
-#: src/tables/bom/BomTable.tsx:600
+#: src/tables/bom/BomTable.tsx:624
msgid "Edit Substitutes"
msgstr "編輯替代零件"
-#: src/tables/bom/BomTable.tsx:625
+#: src/tables/bom/BomTable.tsx:649
msgid "Add BOM Items"
-msgstr ""
+msgstr "新增 BOM 項目"
-#: src/tables/bom/BomTable.tsx:633
+#: src/tables/bom/BomTable.tsx:657
msgid "Add a single BOM item"
-msgstr ""
+msgstr "新增單一 BOM 項目"
-#: src/tables/bom/BomTable.tsx:637
+#: src/tables/bom/BomTable.tsx:661
#: src/tables/general/ParameterTable.tsx:202
#: src/tables/part/PartTable.tsx:549
msgid "Import from File"
-msgstr ""
+msgstr "從檔案匯入"
-#: src/tables/bom/BomTable.tsx:639
+#: src/tables/bom/BomTable.tsx:663
msgid "Import BOM items from a file"
+msgstr "從檔案匯入 BOM 項目"
+
+#: src/tables/bom/BomTable.tsx:671
+msgid "Edit BOM"
msgstr ""
-#: src/tables/bom/BomTable.tsx:662
+#: src/tables/bom/BomTable.tsx:681
+msgid "Finish Editing BOM"
+msgstr ""
+
+#: src/tables/bom/BomTable.tsx:709
msgid "Bill of materials cannot be edited, as the part is locked"
msgstr "無法編輯材料清單,因為零件已鎖定"
@@ -9856,7 +9998,7 @@ msgstr "訂單狀態"
#: src/tables/build/BuildAllocatedStockTable.tsx:166
#: src/tables/build/BuildLineTable.tsx:657
msgid "Edit Stock Allocation"
-msgstr ""
+msgstr "編輯庫存分配"
#: src/tables/build/BuildAllocatedStockTable.tsx:174
#~ msgid "Delete Build Item"
@@ -9866,7 +10008,7 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:670
#: src/tables/sales/SalesOrderAllocationTable.tsx:217
msgid "Remove Allocated Stock"
-msgstr ""
+msgstr "移除已分配的庫存"
#: src/tables/build/BuildAllocatedStockTable.tsx:180
#: src/tables/build/BuildLineTable.tsx:663
@@ -9877,27 +10019,27 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:675
#: src/tables/sales/SalesOrderAllocationTable.tsx:220
msgid "Are you sure you want to remove this allocated stock from the order?"
-msgstr ""
+msgstr "您確定要從訂單中移除此已分配的庫存嗎?"
#: src/tables/build/BuildAllocatedStockTable.tsx:199
#: src/tables/build/BuildLineTable.tsx:690
msgid "Consuming allocated stock"
-msgstr ""
+msgstr "正在消耗已分配庫存"
#: src/tables/build/BuildAllocatedStockTable.tsx:200
#: src/tables/build/BuildLineTable.tsx:691
msgid "Stock consumed successfully"
-msgstr ""
+msgstr "庫存已成功消耗"
#: src/tables/build/BuildAllocatedStockTable.tsx:260
msgid "Consume"
-msgstr ""
+msgstr "消耗"
#: src/tables/build/BuildAllocatedStockTable.tsx:277
#: src/tables/build/BuildLineTable.tsx:117
#: src/tables/sales/SalesOrderAllocationTable.tsx:247
msgid "Remove allocated stock"
-msgstr ""
+msgstr "移除已分配庫存"
#: src/tables/build/BuildLineTable.tsx:59
#~ msgid "Show lines with available stock"
@@ -9905,11 +10047,11 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:126
msgid "View Stock Item"
-msgstr ""
+msgstr "檢視庫存項目"
#: src/tables/build/BuildLineTable.tsx:189
msgid "Show fully allocated lines"
-msgstr ""
+msgstr "顯示完全分配的明細"
#: src/tables/build/BuildLineTable.tsx:189
#~ msgid "Show allocated lines"
@@ -9917,11 +10059,11 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:194
msgid "Show fully consumed lines"
-msgstr ""
+msgstr "顯示完全消耗的明細"
#: src/tables/build/BuildLineTable.tsx:199
msgid "Show items with sufficient available stock"
-msgstr ""
+msgstr "顯示有足夠可用庫存的項目"
#: src/tables/build/BuildLineTable.tsx:204
msgid "Show consumable lines"
@@ -9947,7 +10089,7 @@ msgstr "顯示已跟蹤項目"
#: src/tables/build/BuildLineTable.tsx:229
msgid "Show items with stock on order"
-msgstr ""
+msgstr "顯示已訂購庫存的項目"
#: src/tables/build/BuildLineTable.tsx:264
#: src/tables/sales/SalesOrderLineItemTable.tsx:168
@@ -9966,26 +10108,14 @@ msgstr "獲取已繼承的"
msgid "Unit Quantity"
msgstr "單位數量"
-#: src/tables/build/BuildLineTable.tsx:417
-msgid "Setup Quantity"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:426
-msgid "Attrition"
-msgstr ""
-
-#: src/tables/build/BuildLineTable.tsx:434
-msgid "Rounding Multiple"
-msgstr ""
-
#: src/tables/build/BuildLineTable.tsx:443
msgid "BOM Information"
-msgstr ""
+msgstr "BOM 資訊"
#: src/tables/build/BuildLineTable.tsx:517
#: src/tables/part/PartBuildAllocationsTable.tsx:102
msgid "Fully allocated"
-msgstr ""
+msgstr "完全分配"
#: src/tables/build/BuildLineTable.tsx:565
#: src/tables/sales/SalesOrderLineItemTable.tsx:309
@@ -9995,12 +10125,12 @@ msgstr "創建生產訂單"
#: src/tables/build/BuildLineTable.tsx:577
#: src/tables/build/BuildOutputTable.tsx:223
msgid "Allocating stock to build order"
-msgstr ""
+msgstr "分配庫存至生產訂單"
#: src/tables/build/BuildLineTable.tsx:578
#: src/tables/build/BuildOutputTable.tsx:224
msgid "Stock allocation complete"
-msgstr ""
+msgstr "庫存分配完成"
#: src/tables/build/BuildLineTable.tsx:585
#~ msgid "Auto allocation in progress"
@@ -10019,7 +10149,7 @@ msgstr "自動分配庫存量"
#: src/tables/build/BuildLineTable.tsx:603
msgid "Automatically allocate untracked BOM items to this build according to the selected options"
-msgstr ""
+msgstr "根據選定的選項,將未追蹤的 BOM 項目自動分配給此生產"
#: src/tables/build/BuildLineTable.tsx:623
#: src/tables/build/BuildLineTable.tsx:637
@@ -10049,7 +10179,7 @@ msgstr "生產庫存"
#: src/tables/build/BuildLineTable.tsx:813
#: src/tables/sales/SalesOrderLineItemTable.tsx:485
msgid "View Part"
-msgstr ""
+msgstr "檢視零件"
#: src/tables/build/BuildOrderTable.tsx:116
#~ msgid "Cascade"
@@ -10083,28 +10213,28 @@ msgstr ""
#: src/tables/sales/ReturnOrderTable.tsx:94
#: src/tables/sales/SalesOrderTable.tsx:92
msgid "Has Target Date"
-msgstr ""
+msgstr "有目標日期"
#: src/tables/build/BuildOrderTable.tsx:172
#: src/tables/purchasing/PurchaseOrderTable.tsx:95
#: src/tables/sales/ReturnOrderTable.tsx:95
#: src/tables/sales/SalesOrderTable.tsx:93
msgid "Show orders with a target date"
-msgstr ""
+msgstr "顯示具有目標日期的訂單"
#: src/tables/build/BuildOrderTable.tsx:177
#: src/tables/purchasing/PurchaseOrderTable.tsx:100
#: src/tables/sales/ReturnOrderTable.tsx:100
#: src/tables/sales/SalesOrderTable.tsx:98
msgid "Has Start Date"
-msgstr ""
+msgstr "有開始日期"
#: src/tables/build/BuildOrderTable.tsx:178
#: src/tables/purchasing/PurchaseOrderTable.tsx:101
#: src/tables/sales/ReturnOrderTable.tsx:101
#: src/tables/sales/SalesOrderTable.tsx:99
msgid "Show orders with a start date"
-msgstr ""
+msgstr "顯示具有開始日期的訂單"
#: src/tables/build/BuildOrderTable.tsx:179
#~ msgid "Filter by user who issued this order"
@@ -10112,7 +10242,7 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:102
msgid "Build Output Stock Allocation"
-msgstr ""
+msgstr "生產產出庫存分配"
#: src/tables/build/BuildOutputTable.tsx:161
#~ msgid "Delete build output"
@@ -10124,7 +10254,7 @@ msgstr ""
#: src/tables/build/BuildOutputTable.tsx:248
msgid "Automatically allocate tracked BOM items to this build according to the selected options"
-msgstr ""
+msgstr "根據選定的選項,將追蹤的 BOM 項目自動分配給此生產"
#: src/tables/build/BuildOutputTable.tsx:304
#~ msgid "Edit build output"
@@ -10137,7 +10267,7 @@ msgstr "添加生成輸出"
#: src/tables/build/BuildOutputTable.tsx:330
msgid "Build output created"
-msgstr ""
+msgstr "生產產出已建立"
#: src/tables/build/BuildOutputTable.tsx:384
#: src/tables/build/BuildOutputTable.tsx:593
@@ -10146,11 +10276,11 @@ msgstr "編輯生成輸出"
#: src/tables/build/BuildOutputTable.tsx:400
msgid "This action will deallocate all stock from the selected build output"
-msgstr ""
+msgstr "此操作將會從選定的生產產出取消分配所有庫存"
#: src/tables/build/BuildOutputTable.tsx:425
msgid "Serialize Build Output"
-msgstr ""
+msgstr "序列化生產產出"
#: src/tables/build/BuildOutputTable.tsx:443
#: src/tables/part/PartTestResultTable.tsx:319
@@ -10192,7 +10322,7 @@ msgstr "從生產輸出中取消分配庫存"
#: src/tables/build/BuildOutputTable.tsx:572
msgid "Serialize build output"
-msgstr ""
+msgstr "序列化生產產出"
#: src/tables/build/BuildOutputTable.tsx:583
msgid "Complete build output"
@@ -10216,11 +10346,11 @@ msgstr "需要測試"
#: src/tables/build/BuildOutputTable.tsx:751
msgid "External Build"
-msgstr ""
+msgstr "外部生產"
#: src/tables/build/BuildOutputTable.tsx:753
msgid "This build order is fulfilled by an external purchase order"
-msgstr ""
+msgstr "此生產訂單由外部採購訂單履行"
#: src/tables/company/AddressTable.tsx:122
#: src/tables/company/AddressTable.tsx:187
@@ -10286,7 +10416,7 @@ msgstr "添加聯繫人"
#: src/tables/general/AttachmentTable.tsx:108
msgid "Uploading file {filename}"
-msgstr ""
+msgstr "正在上傳檔案 {filename}"
#: src/tables/general/AttachmentTable.tsx:139
#~ msgid "File uploaded"
@@ -10299,15 +10429,15 @@ msgstr ""
#: src/tables/general/AttachmentTable.tsx:160
#: src/tables/general/AttachmentTable.tsx:174
msgid "Uploading File"
-msgstr ""
+msgstr "正在上傳檔案"
#: src/tables/general/AttachmentTable.tsx:185
msgid "File Uploaded"
-msgstr ""
+msgstr "檔案已上傳"
#: src/tables/general/AttachmentTable.tsx:186
msgid "File {name} uploaded successfully"
-msgstr ""
+msgstr "檔案 {name} 上傳成功"
#: src/tables/general/AttachmentTable.tsx:202
msgid "File could not be uploaded"
@@ -10361,17 +10491,13 @@ msgstr "找不到附件。"
msgid "Drag attachment file here to upload"
msgstr "拖拽附件文件到此處上傳"
-#: src/tables/general/BarcodeScanTable.tsx:35
-msgid "Item"
-msgstr "項目"
-
#: src/tables/general/BarcodeScanTable.tsx:50
msgid "Model"
msgstr "型號"
#: src/tables/general/BarcodeScanTable.tsx:75
msgid "View Item"
-msgstr ""
+msgstr "檢視項目"
#: src/tables/general/ExtraLineItemTable.tsx:97
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:298
@@ -10409,19 +10535,19 @@ msgstr "內部單位"
#: src/tables/general/ParameterTable.tsx:123
#: src/tables/settings/TemplateTable.tsx:262
msgid "Updated By"
-msgstr ""
+msgstr "更新者"
#: src/tables/general/ParameterTable.tsx:118
msgid "Show parameters for enabled templates"
-msgstr ""
+msgstr "顯示啟用範本的參數"
#: src/tables/general/ParameterTable.tsx:124
msgid "Filter by user who last updated the parameter"
-msgstr ""
+msgstr "依最後更新參數的使用者過濾"
#: src/tables/general/ParameterTable.tsx:149
msgid "Import Parameters"
-msgstr ""
+msgstr "匯入參數"
#: src/tables/general/ParameterTable.tsx:160
#: src/tables/general/ParametricDataTable.tsx:271
@@ -10442,75 +10568,75 @@ msgstr "刪除參數"
#: src/tables/general/ParameterTable.tsx:187
msgid "Add Parameters"
-msgstr ""
+msgstr "新增參數"
#: src/tables/general/ParameterTable.tsx:193
msgid "Create Parameter"
-msgstr ""
+msgstr "建立參數"
#: src/tables/general/ParameterTable.tsx:195
msgid "Create a new parameter"
-msgstr ""
+msgstr "建立新參數"
#: src/tables/general/ParameterTable.tsx:204
msgid "Import parameters from a file"
-msgstr ""
+msgstr "從檔案匯入參數"
-#: src/tables/general/ParameterTemplateTable.tsx:52
-#: src/tables/general/ParameterTemplateTable.tsx:201
+#: src/tables/general/ParameterTemplateTable.tsx:38
+#: src/tables/general/ParameterTemplateTable.tsx:187
msgid "Add Parameter Template"
msgstr "添加參數模板"
-#: src/tables/general/ParameterTemplateTable.tsx:68
+#: src/tables/general/ParameterTemplateTable.tsx:54
msgid "Duplicate Parameter Template"
-msgstr ""
+msgstr "複製參數範本"
-#: src/tables/general/ParameterTemplateTable.tsx:82
+#: src/tables/general/ParameterTemplateTable.tsx:68
msgid "Delete Parameter Template"
msgstr "刪除零件參數模板"
-#: src/tables/general/ParameterTemplateTable.tsx:89
+#: src/tables/general/ParameterTemplateTable.tsx:75
msgid "Edit Parameter Template"
msgstr "編輯參數模板"
-#: src/tables/general/ParameterTemplateTable.tsx:142
+#: src/tables/general/ParameterTemplateTable.tsx:128
msgid "Checkbox"
msgstr "勾選框"
-#: src/tables/general/ParameterTemplateTable.tsx:143
+#: src/tables/general/ParameterTemplateTable.tsx:129
msgid "Show checkbox templates"
msgstr "顯示覆選框模板"
-#: src/tables/general/ParameterTemplateTable.tsx:147
+#: src/tables/general/ParameterTemplateTable.tsx:133
msgid "Has choices"
msgstr "有選項"
-#: src/tables/general/ParameterTemplateTable.tsx:148
+#: src/tables/general/ParameterTemplateTable.tsx:134
msgid "Show templates with choices"
msgstr "顯示有選項的模板"
-#: src/tables/general/ParameterTemplateTable.tsx:152
+#: src/tables/general/ParameterTemplateTable.tsx:138
#: src/tables/part/PartTable.tsx:246
msgid "Has Units"
msgstr "有單位"
-#: src/tables/general/ParameterTemplateTable.tsx:153
+#: src/tables/general/ParameterTemplateTable.tsx:139
msgid "Show templates with units"
msgstr "顯示有單位的模板"
-#: src/tables/general/ParameterTemplateTable.tsx:158
+#: src/tables/general/ParameterTemplateTable.tsx:144
msgid "Show enabled templates"
-msgstr ""
+msgstr "顯示已啟用的範本"
-#: src/tables/general/ParameterTemplateTable.tsx:162
+#: src/tables/general/ParameterTemplateTable.tsx:148
#: src/tables/settings/ImportSessionTable.tsx:112
#: src/tables/settings/TemplateTable.tsx:402
msgid "Model Type"
msgstr "型號類型"
-#: src/tables/general/ParameterTemplateTable.tsx:163
+#: src/tables/general/ParameterTemplateTable.tsx:149
msgid "Filter by model type"
-msgstr ""
+msgstr "依模型類型過濾"
#: src/tables/general/ParametricDataTable.tsx:79
msgid "Click to edit"
@@ -10518,20 +10644,20 @@ msgstr "點擊以編輯"
#: src/tables/general/ParametricDataTableFilters.tsx:36
msgid "True"
-msgstr ""
+msgstr "True"
#: src/tables/general/ParametricDataTableFilters.tsx:37
msgid "False"
-msgstr ""
+msgstr "False"
#: src/tables/general/ParametricDataTableFilters.tsx:47
#: src/tables/general/ParametricDataTableFilters.tsx:80
msgid "Select a choice"
-msgstr ""
+msgstr "選擇一個選項"
#: src/tables/general/ParametricDataTableFilters.tsx:100
msgid "Enter a value"
-msgstr ""
+msgstr "輸入一個值"
#: src/tables/machine/MachineListTable.tsx:133
msgid "Machine restarted"
@@ -10560,11 +10686,11 @@ msgstr "設備已成功刪除。"
#: src/tables/machine/MachineListTable.tsx:255
#: src/tables/machine/MachineListTable.tsx:697
msgid "Are you sure you want to remove this machine?"
-msgstr ""
+msgstr "您確定要移除這部機器嗎?"
#: src/tables/machine/MachineListTable.tsx:285
msgid "Machine"
-msgstr ""
+msgstr "機器"
#: src/tables/machine/MachineListTable.tsx:290
#: src/tables/machine/MachineListTable.tsx:568
@@ -10597,7 +10723,7 @@ msgstr "需要手動重啓"
#: src/tables/machine/MachineListTable.tsx:343
msgid "General"
-msgstr ""
+msgstr "一般"
#: src/tables/machine/MachineListTable.tsx:353
#: src/tables/machine/MachineListTable.tsx:804
@@ -10619,7 +10745,7 @@ msgstr "未報告錯誤"
#: src/tables/machine/MachineListTable.tsx:431
msgid "Properties"
-msgstr ""
+msgstr "屬性"
#: src/tables/machine/MachineListTable.tsx:494
#~ msgid "Create machine"
@@ -10635,20 +10761,20 @@ msgstr "驅動設置"
#: src/tables/machine/MachineListTable.tsx:648
msgid "Add Machine"
-msgstr ""
+msgstr "新增機器"
#: src/tables/machine/MachineListTable.tsx:691
#: src/tables/machine/MachineListTable.tsx:736
msgid "Delete Machine"
-msgstr ""
+msgstr "刪除機器"
#: src/tables/machine/MachineListTable.tsx:704
msgid "Edit Machine"
-msgstr ""
+msgstr "編輯機器"
#: src/tables/machine/MachineListTable.tsx:718
msgid "Restart Machine"
-msgstr ""
+msgstr "重新啟動機器"
#: src/tables/machine/MachineListTable.tsx:749
msgid "Add machine"
@@ -10656,7 +10782,7 @@ msgstr "添加設備"
#: src/tables/machine/MachineListTable.tsx:765
msgid "Machine Detail"
-msgstr ""
+msgstr "機器詳細資訊"
#: src/tables/machine/MachineListTable.tsx:813
msgid "Driver"
@@ -10664,7 +10790,7 @@ msgstr "驅動"
#: src/tables/machine/MachineTypeTable.tsx:72
msgid "Driver Type"
-msgstr ""
+msgstr "驅動程式類型"
#: src/tables/machine/MachineTypeTable.tsx:76
msgid "Builtin driver"
@@ -10676,7 +10802,7 @@ msgstr "內置驅動"
#: src/tables/machine/MachineTypeTable.tsx:126
msgid "Not Found"
-msgstr ""
+msgstr "找不到"
#: src/tables/machine/MachineTypeTable.tsx:129
msgid "Machine type not found."
@@ -10684,7 +10810,7 @@ msgstr "找不到設備類型。"
#: src/tables/machine/MachineTypeTable.tsx:139
msgid "Machine Type Information"
-msgstr ""
+msgstr "機器類型資訊"
#: src/tables/machine/MachineTypeTable.tsx:148
#~ msgid "Available drivers"
@@ -10707,7 +10833,7 @@ msgstr "供應商文件"
#: src/tables/machine/MachineTypeTable.tsx:192
msgid "Available Drivers"
-msgstr ""
+msgstr "可用的驅動程式"
#: src/tables/machine/MachineTypeTable.tsx:232
msgid "Machine driver not found."
@@ -10735,11 +10861,11 @@ msgstr "內置類型"
#: src/tables/machine/MachineTypeTable.tsx:369
msgid "Machine Type Detail"
-msgstr ""
+msgstr "機器類型詳細資訊"
#: src/tables/machine/MachineTypeTable.tsx:379
msgid "Machine Driver Detail"
-msgstr ""
+msgstr "機器驅動程式詳細資訊"
#: src/tables/notifications/NotificationTable.tsx:26
msgid "Age"
@@ -10783,24 +10909,24 @@ msgstr "顯示已裝配的零件"
#: src/tables/part/PartBuildAllocationsTable.tsx:64
msgid "Assembly IPN"
-msgstr ""
+msgstr "組件 IPN"
#: src/tables/part/PartBuildAllocationsTable.tsx:73
msgid "Part IPN"
-msgstr ""
+msgstr "零件 IPN"
#: src/tables/part/PartBuildAllocationsTable.tsx:91
msgid "Required Stock"
-msgstr ""
+msgstr "所需庫存"
#: src/tables/part/PartBuildAllocationsTable.tsx:124
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:382
msgid "View Build Order"
-msgstr ""
+msgstr "檢視生產訂單"
#: src/tables/part/PartCategoryTable.tsx:52
msgid "You are subscribed to notifications for this category"
-msgstr ""
+msgstr "您已訂閱此類別的通知"
#: src/tables/part/PartCategoryTable.tsx:86
#: src/tables/part/PartTable.tsx:222
@@ -10825,16 +10951,16 @@ msgstr "新建零件類別"
#: src/tables/part/PartCategoryTable.tsx:133
msgid "Set Parent Category"
-msgstr ""
+msgstr "設定父類別"
#: src/tables/part/PartCategoryTable.tsx:151
#: src/tables/stock/StockLocationTable.tsx:150
msgid "Set Parent"
-msgstr ""
+msgstr "設定父項"
#: src/tables/part/PartCategoryTable.tsx:153
msgid "Set parent category for the selected items"
-msgstr ""
+msgstr "設定選定項目的父類別"
#: src/tables/part/PartCategoryTable.tsx:164
msgid "Add Part Category"
@@ -10890,7 +11016,7 @@ msgstr "顯示已收到的條目"
#: src/tables/part/PartSalesAllocationsTable.tsx:88
#: src/tables/sales/SalesOrderShipmentTable.tsx:258
msgid "View Sales Order"
-msgstr ""
+msgstr "檢視銷售訂單"
#: src/tables/part/PartTable.tsx:100
msgid "Minimum stock"
@@ -10910,11 +11036,11 @@ msgstr "按裝配屬性篩選"
#: src/tables/part/PartTable.tsx:216
msgid "BOM Valid"
-msgstr ""
+msgstr "BOM 有效"
#: src/tables/part/PartTable.tsx:217
msgid "Filter by parts with a valid BOM"
-msgstr ""
+msgstr "依具有有效 BOM 的零件過濾"
#: src/tables/part/PartTable.tsx:223
msgid "Include parts in subcategories"
@@ -10990,11 +11116,11 @@ msgstr "按模板部分篩選零件"
#: src/tables/part/PartTable.tsx:294
msgid "Is Variant"
-msgstr ""
+msgstr "是變體"
#: src/tables/part/PartTable.tsx:295
msgid "Filter by parts which are variants"
-msgstr ""
+msgstr "依屬於變體的零件過濾"
#: src/tables/part/PartTable.tsx:300
msgid "Is Revision"
@@ -11034,44 +11160,44 @@ msgstr "按用户訂閲的零件篩選"
#: src/tables/part/PartTable.tsx:378
msgid "Import Parts"
-msgstr ""
+msgstr "匯入零件"
#: src/tables/part/PartTable.tsx:467
#: src/tables/part/PartTable.tsx:515
msgid "Set Category"
-msgstr ""
+msgstr "設定類別"
#: src/tables/part/PartTable.tsx:517
msgid "Set category for selected parts"
-msgstr ""
+msgstr "設定選定零件的類別"
#: src/tables/part/PartTable.tsx:527
msgid "Order selected parts"
-msgstr ""
+msgstr "訂購選定的零件"
#: src/tables/part/PartTable.tsx:537
msgid "Add Parts"
-msgstr ""
+msgstr "新增零件"
#: src/tables/part/PartTable.tsx:543
msgid "Create Part"
-msgstr ""
+msgstr "建立零件"
#: src/tables/part/PartTable.tsx:545
msgid "Create a new part"
-msgstr ""
+msgstr "建立新零件"
#: src/tables/part/PartTable.tsx:551
msgid "Import parts from a file"
-msgstr ""
+msgstr "從檔案匯入零件"
#: src/tables/part/PartTable.tsx:556
msgid "Import from Supplier"
-msgstr ""
+msgstr "從供應商匯入"
#: src/tables/part/PartTable.tsx:558
msgid "Import parts from a supplier plugin"
-msgstr ""
+msgstr "從供應商外掛程式匯入零件"
#: src/tables/part/PartTestResultTable.tsx:103
#: src/tables/part/PartTestResultTable.tsx:181
@@ -11090,11 +11216,11 @@ msgstr "測試結果已添加"
#: src/tables/part/PartTestResultTable.tsx:142
msgid "Add Test Results"
-msgstr ""
+msgstr "新增測試結果"
#: src/tables/part/PartTestResultTable.tsx:152
msgid "Test results added"
-msgstr ""
+msgstr "已新增測試結果"
#: src/tables/part/PartTestResultTable.tsx:180
#: src/tables/stock/StockItemTestResultTable.tsx:197
@@ -11188,11 +11314,11 @@ msgstr "模板參數無法編輯,因為組件已鎖定"
#: src/tables/part/PartThumbTable.tsx:123
msgid "Image updated"
-msgstr ""
+msgstr "圖片已更新"
#: src/tables/part/PartThumbTable.tsx:124
msgid "The image has been updated successfully"
-msgstr ""
+msgstr "圖片已成功更新"
#: src/tables/part/PartThumbTable.tsx:233
msgid "Select"
@@ -11233,20 +11359,20 @@ msgstr "刪除關聯零件"
#: src/tables/part/RelatedPartTable.tsx:127
msgid "Edit Related Part"
-msgstr ""
+msgstr "編輯相關零件"
#: src/tables/part/SelectionListTable.tsx:64
#: src/tables/part/SelectionListTable.tsx:115
msgid "Add Selection List"
-msgstr ""
+msgstr "新增選擇清單"
#: src/tables/part/SelectionListTable.tsx:76
msgid "Edit Selection List"
-msgstr ""
+msgstr "編輯選擇清單"
#: src/tables/part/SelectionListTable.tsx:84
msgid "Delete Selection List"
-msgstr ""
+msgstr "刪除選擇清單"
#: src/tables/plugin/PluginErrorTable.tsx:31
msgid "Stage"
@@ -11280,7 +11406,7 @@ msgstr "插件"
#: src/tables/plugin/PluginListTable.tsx:106
#: src/tables/plugin/PluginListTable.tsx:430
msgid "Mandatory"
-msgstr ""
+msgstr "必填"
#: src/tables/plugin/PluginListTable.tsx:113
#~ msgid "Plugin with id {id} not found"
@@ -11367,11 +11493,11 @@ msgstr "激活插件"
#: src/tables/plugin/PluginListTable.tsx:271
msgid "The plugin was activated"
-msgstr ""
+msgstr "外掛程式已啟用"
#: src/tables/plugin/PluginListTable.tsx:272
msgid "The plugin was deactivated"
-msgstr ""
+msgstr "外掛程式已停用"
#: src/tables/plugin/PluginListTable.tsx:280
#~ msgid "Install plugin"
@@ -11496,17 +11622,17 @@ msgstr "製造商零件編號 (MPN)"
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:43
#: src/tables/purchasing/ManufacturerPartTable.tsx:155
msgid "Show manufacturer parts for active internal parts."
-msgstr ""
+msgstr "顯示作用中內部零件的製造商零件。"
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:48
#: src/tables/purchasing/ManufacturerPartTable.tsx:160
msgid "Active Manufacturer"
-msgstr ""
+msgstr "作用中的製造商"
#: src/tables/purchasing/ManufacturerPartParametricTable.tsx:49
#: src/tables/purchasing/ManufacturerPartTable.tsx:162
msgid "Show manufacturer parts for active manufacturers."
-msgstr ""
+msgstr "顯示作用中製造商的製造商零件。"
#: src/tables/purchasing/ManufacturerPartTable.tsx:63
#~ msgid "Create Manufacturer Part"
@@ -11543,7 +11669,7 @@ msgstr "製造商編號"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:282
msgid "Show line items which have been received"
-msgstr ""
+msgstr "顯示已收到的明細項目"
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344
#: src/tables/sales/ReturnOrderLineItemTable.tsx:160
@@ -11581,7 +11707,7 @@ msgstr "添加供應商零件"
#: src/tables/purchasing/SupplierPartTable.tsx:234
msgid "Import supplier part"
-msgstr ""
+msgstr "匯入供應商零件"
#: src/tables/purchasing/SupplierPartTable.tsx:250
msgid "Show active supplier parts"
@@ -11589,7 +11715,7 @@ msgstr "顯示活動供應商零件"
#: src/tables/purchasing/SupplierPartTable.tsx:255
msgid "Show primary supplier parts"
-msgstr ""
+msgstr "顯示主要供應商零件"
#: src/tables/purchasing/SupplierPartTable.tsx:260
msgid "Show active internal parts"
@@ -11605,7 +11731,7 @@ msgstr "顯示活躍供應商"
#: src/tables/purchasing/SupplierPartTable.tsx:270
msgid "Show supplier parts with stock"
-msgstr ""
+msgstr "顯示有庫存的供應商零件"
#: src/tables/sales/ReturnOrderLineItemTable.tsx:157
msgid "Received Date"
@@ -11623,21 +11749,21 @@ msgstr "按行項目狀態篩選"
msgid "Receive selected items"
msgstr "接收選中項目"
-#: src/tables/sales/ReturnOrderLineItemTable.tsx:229
+#: src/tables/sales/ReturnOrderLineItemTable.tsx:231
msgid "Receive Item"
msgstr "接收物品"
#: src/tables/sales/SalesOrderAllocationTable.tsx:90
msgid "Show outstanding allocations"
-msgstr ""
+msgstr "顯示未完成的分配"
#: src/tables/sales/SalesOrderAllocationTable.tsx:94
msgid "Assigned to Shipment"
-msgstr ""
+msgstr "已分配至發貨"
#: src/tables/sales/SalesOrderAllocationTable.tsx:95
msgid "Show allocations assigned to a shipment"
-msgstr ""
+msgstr "顯示分配至某個發貨項目的分配"
#: src/tables/sales/SalesOrderAllocationTable.tsx:155
msgid "Available Quantity"
@@ -11650,16 +11776,16 @@ msgstr "已分配數量"
#: src/tables/sales/SalesOrderAllocationTable.tsx:176
#: src/tables/sales/SalesOrderAllocationTable.tsx:190
msgid "No shipment"
-msgstr ""
+msgstr "沒有發貨"
#: src/tables/sales/SalesOrderAllocationTable.tsx:188
msgid "Not shipped"
-msgstr ""
+msgstr "未發貨"
#: src/tables/sales/SalesOrderAllocationTable.tsx:210
#: src/tables/sales/SalesOrderAllocationTable.tsx:234
msgid "Edit Allocation"
-msgstr ""
+msgstr "編輯分配"
#: src/tables/sales/SalesOrderAllocationTable.tsx:218
#: src/tables/sales/SalesOrderAllocationTable.tsx:241
@@ -11669,15 +11795,15 @@ msgstr ""
#: src/tables/sales/SalesOrderAllocationTable.tsx:260
#: src/tables/sales/SalesOrderAllocationTable.tsx:261
msgid "View Shipment"
-msgstr ""
+msgstr "檢視發貨"
#: src/tables/sales/SalesOrderAllocationTable.tsx:316
msgid "Assign to Shipment"
-msgstr ""
+msgstr "分配至發貨"
#: src/tables/sales/SalesOrderAllocationTable.tsx:332
msgid "Assign to shipment"
-msgstr ""
+msgstr "分配至發貨"
#: src/tables/sales/SalesOrderLineItemTable.tsx:280
#~ msgid "Allocate stock"
@@ -11693,19 +11819,19 @@ msgstr "分配序列號"
#: src/tables/sales/SalesOrderLineItemTable.tsx:297
msgid "Stock allocated successfully"
-msgstr ""
+msgstr "庫存已成功分配"
#: src/tables/sales/SalesOrderLineItemTable.tsx:341
msgid "Show lines which are fully allocated"
-msgstr ""
+msgstr "顯示完全分配的明細"
#: src/tables/sales/SalesOrderLineItemTable.tsx:346
msgid "Show lines which are completed"
-msgstr ""
+msgstr "顯示已完成的明細"
#: src/tables/sales/SalesOrderLineItemTable.tsx:419
msgid "Allocate serials"
-msgstr ""
+msgstr "分配序號"
#: src/tables/sales/SalesOrderLineItemTable.tsx:437
msgid "Build stock"
@@ -11725,7 +11851,7 @@ msgstr "創建配送"
#: src/tables/sales/SalesOrderShipmentTable.tsx:80
msgid "Shipment created"
-msgstr ""
+msgstr "發貨已建立"
#: src/tables/sales/SalesOrderShipmentTable.tsx:159
msgid "Items"
@@ -11733,11 +11859,11 @@ msgstr "項目"
#: src/tables/sales/SalesOrderShipmentTable.tsx:243
msgid "Edit shipment"
-msgstr ""
+msgstr "編輯發貨"
#: src/tables/sales/SalesOrderShipmentTable.tsx:251
msgid "Cancel shipment"
-msgstr ""
+msgstr "取消發貨"
#: src/tables/sales/SalesOrderShipmentTable.tsx:281
msgid "Add shipment"
@@ -11745,7 +11871,7 @@ msgstr "添加配送"
#: src/tables/sales/SalesOrderShipmentTable.tsx:295
msgid "Show shipments which have been checked"
-msgstr ""
+msgstr "顯示已檢查的發貨紀錄"
#: src/tables/sales/SalesOrderShipmentTable.tsx:300
msgid "Show shipments which have been shipped"
@@ -11758,37 +11884,37 @@ msgstr "顯示已送達的貨物"
#: src/tables/settings/ApiTokenTable.tsx:31
#: src/tables/settings/ApiTokenTable.tsx:45
msgid "Generate Token"
-msgstr ""
+msgstr "產生權杖"
#: src/tables/settings/ApiTokenTable.tsx:33
msgid "Token generated"
-msgstr ""
+msgstr "已產生權杖"
#: src/tables/settings/ApiTokenTable.tsx:68
#: src/tables/settings/ApiTokenTable.tsx:118
msgid "Revoked"
-msgstr ""
+msgstr "已撤銷"
#: src/tables/settings/ApiTokenTable.tsx:72
#: src/tables/settings/ApiTokenTable.tsx:180
msgid "Token"
-msgstr ""
+msgstr "權杖"
#: src/tables/settings/ApiTokenTable.tsx:79
msgid "In Use"
-msgstr ""
+msgstr "使用中"
#: src/tables/settings/ApiTokenTable.tsx:88
msgid "Last Seen"
-msgstr ""
+msgstr "最後看見"
#: src/tables/settings/ApiTokenTable.tsx:93
msgid "Expiry"
-msgstr ""
+msgstr "到期"
#: src/tables/settings/ApiTokenTable.tsx:119
msgid "Show revoked tokens"
-msgstr ""
+msgstr "顯示已撤銷的權杖"
#: src/tables/settings/ApiTokenTable.tsx:138
msgid "Revoke"
@@ -11796,11 +11922,11 @@ msgstr "撤銷"
#: src/tables/settings/ApiTokenTable.tsx:162
msgid "Error revoking token"
-msgstr ""
+msgstr "撤銷權杖時發生錯誤"
#: src/tables/settings/ApiTokenTable.tsx:185
msgid "Tokens are only shown once - make sure to note it down."
-msgstr ""
+msgstr "權杖僅顯示一次 - 請務必記下它。"
#: src/tables/settings/BarcodeScanHistoryTable.tsx:60
msgid "Barcode Information"
@@ -11846,15 +11972,15 @@ msgstr "條碼日誌未啓用"
#: src/tables/settings/CustomStateTable.tsx:63
msgid "Status Group"
-msgstr ""
+msgstr "狀態群組"
#: src/tables/settings/CustomStateTable.tsx:84
msgid "Logical State"
-msgstr ""
+msgstr "邏輯狀態"
#: src/tables/settings/CustomStateTable.tsx:96
msgid "Identifier"
-msgstr ""
+msgstr "識別碼"
#: src/tables/settings/CustomStateTable.tsx:115
#~ msgid "Add state"
@@ -11886,64 +12012,64 @@ msgstr "添加自定義單位"
#: src/tables/settings/EmailTable.tsx:25
msgid "Announced"
-msgstr ""
+msgstr "已公告"
#: src/tables/settings/EmailTable.tsx:27
msgid "Sent"
-msgstr ""
+msgstr "已發送"
#: src/tables/settings/EmailTable.tsx:29
msgid "Failed"
-msgstr ""
+msgstr "失敗"
#: src/tables/settings/EmailTable.tsx:33
msgid "Read"
-msgstr ""
+msgstr "已讀"
#: src/tables/settings/EmailTable.tsx:35
msgid "Confirmed"
-msgstr ""
+msgstr "已確認"
#: src/tables/settings/EmailTable.tsx:43
#: src/tables/settings/EmailTable.tsx:58
msgid "Send Test Email"
-msgstr ""
+msgstr "發送測試電子郵件"
#: src/tables/settings/EmailTable.tsx:45
msgid "Email sent successfully"
-msgstr ""
+msgstr "電子郵件發送成功"
#: src/tables/settings/EmailTable.tsx:71
msgid "Delete Email"
-msgstr ""
+msgstr "刪除電子郵件"
#: src/tables/settings/EmailTable.tsx:72
msgid "Email deleted successfully"
-msgstr ""
+msgstr "電子郵件已成功刪除"
#: src/tables/settings/EmailTable.tsx:80
msgid "Subject"
-msgstr ""
+msgstr "主旨"
#: src/tables/settings/EmailTable.tsx:85
msgid "To"
-msgstr ""
+msgstr "收件人"
#: src/tables/settings/EmailTable.tsx:90
msgid "Sender"
-msgstr ""
+msgstr "寄件人"
#: src/tables/settings/EmailTable.tsx:122
msgid "Direction"
-msgstr ""
+msgstr "方向"
#: src/tables/settings/EmailTable.tsx:125
msgid "Incoming"
-msgstr ""
+msgstr "收件"
#: src/tables/settings/EmailTable.tsx:125
msgid "Outgoing"
-msgstr ""
+msgstr "寄件"
#: src/tables/settings/ErrorTable.tsx:51
#~ msgid "Delete error report"
@@ -11980,15 +12106,15 @@ msgstr "錯誤詳情"
#: src/tables/settings/ExportSessionTable.tsx:28
msgid "Output Type"
-msgstr ""
+msgstr "輸出類型"
#: src/tables/settings/ExportSessionTable.tsx:38
msgid "Exported On"
-msgstr ""
+msgstr "匯出時間"
#: src/tables/settings/ExportSessionTable.tsx:59
msgid "Delete Output"
-msgstr ""
+msgstr "刪除輸出"
#: src/tables/settings/FailedTasksTable.tsx:32
#: src/tables/settings/PendingTasksTable.tsx:28
@@ -12012,11 +12138,11 @@ msgstr "嘗試次數"
#: src/tables/settings/FailedTasksTable.tsx:92
msgid "No Information"
-msgstr ""
+msgstr "無資訊"
#: src/tables/settings/FailedTasksTable.tsx:93
msgid "No error details are available for this task"
-msgstr ""
+msgstr "此任務沒有可用的錯誤詳細資料"
#: src/tables/settings/GroupTable.tsx:71
msgid "Group with id {id} not found"
@@ -12029,7 +12155,7 @@ msgstr "獲取羣組詳細信息時出錯"
#: src/tables/settings/GroupTable.tsx:96
#: src/tables/settings/GroupTable.tsx:257
msgid "Name of the user group"
-msgstr ""
+msgstr "使用者群組名稱"
#: src/tables/settings/GroupTable.tsx:117
#~ msgid "Permission set"
@@ -12038,7 +12164,7 @@ msgstr ""
#: src/tables/settings/GroupTable.tsx:170
#: src/tables/settings/UserTable.tsx:316
msgid "Open Profile"
-msgstr ""
+msgstr "開啟個人資料"
#: src/tables/settings/GroupTable.tsx:185
msgid "Delete group"
@@ -12062,11 +12188,11 @@ msgstr "添加羣組"
#: src/tables/settings/GroupTable.tsx:221
msgid "Edit Group"
-msgstr ""
+msgstr "編輯群組"
#: src/tables/settings/GroupTable.tsx:253
msgid "Add Group"
-msgstr ""
+msgstr "新增群組"
#: src/tables/settings/ImportSessionTable.tsx:37
msgid "Delete Import Session"
@@ -12100,15 +12226,15 @@ msgstr "參數"
#: src/tables/settings/PendingTasksTable.tsx:61
msgid "Remove all pending tasks"
-msgstr ""
+msgstr "移除所有待處理任務"
#: src/tables/settings/PendingTasksTable.tsx:69
msgid "All pending tasks deleted"
-msgstr ""
+msgstr "所有待處理任務已刪除"
#: src/tables/settings/PendingTasksTable.tsx:76
msgid "Error while deleting all pending tasks"
-msgstr ""
+msgstr "刪除所有待處理任務時發生錯誤"
#: src/tables/settings/ProjectCodeTable.tsx:58
msgid "Edit Project Code"
@@ -12172,7 +12298,7 @@ msgstr "獲取插件詳細信息時出錯"
#: src/tables/settings/TemplateTable.tsx:272
msgid "Filename"
-msgstr ""
+msgstr "檔案名稱"
#: src/tables/settings/TemplateTable.tsx:295
msgid "Modify"
@@ -12209,15 +12335,15 @@ msgstr "按啓用狀態篩選"
#: src/tables/settings/UserTable.tsx:123
msgid "Groups updated"
-msgstr ""
+msgstr "群組已更新"
#: src/tables/settings/UserTable.tsx:124
msgid "User groups updated successfully"
-msgstr ""
+msgstr "使用者群組已成功更新"
#: src/tables/settings/UserTable.tsx:131
msgid "Error updating user groups"
-msgstr ""
+msgstr "更新使用者群組時發生錯誤"
#: src/tables/settings/UserTable.tsx:150
msgid "User with id {id} not found"
@@ -12241,7 +12367,7 @@ msgstr "指定是否將此用户視為激活用户。取消選擇此選項將不
#: src/tables/settings/UserTable.tsx:183
msgid "Is Administrator"
-msgstr ""
+msgstr "是管理員"
#: src/tables/settings/UserTable.tsx:183
#~ msgid "Is Staff"
@@ -12265,7 +12391,7 @@ msgstr "您不能編輯當前登錄用户的權限。"
#: src/tables/settings/UserTable.tsx:218
msgid "User Groups"
-msgstr ""
+msgstr "使用者群組"
#: src/tables/settings/UserTable.tsx:305
#~ msgid "Edit user"
@@ -12273,11 +12399,11 @@ msgstr ""
#: src/tables/settings/UserTable.tsx:333
msgid "Lock user"
-msgstr ""
+msgstr "鎖定使用者"
#: src/tables/settings/UserTable.tsx:343
msgid "Unlock user"
-msgstr ""
+msgstr "解鎖使用者"
#: src/tables/settings/UserTable.tsx:359
msgid "Delete user"
@@ -12293,11 +12419,11 @@ msgstr "您確定要刪除該用户嗎?"
#: src/tables/settings/UserTable.tsx:373
msgid "Set Password"
-msgstr ""
+msgstr "設定密碼"
#: src/tables/settings/UserTable.tsx:378
msgid "Password updated"
-msgstr ""
+msgstr "密碼已更新"
#: src/tables/settings/UserTable.tsx:389
msgid "Add user"
@@ -12313,7 +12439,7 @@ msgstr "顯示活躍用户"
#: src/tables/settings/UserTable.tsx:407
msgid "Show administrators"
-msgstr ""
+msgstr "顯示管理員"
#: src/tables/settings/UserTable.tsx:412
msgid "Show superusers"
@@ -12321,11 +12447,11 @@ msgstr "顯示超級用户"
#: src/tables/settings/UserTable.tsx:431
msgid "Edit User"
-msgstr ""
+msgstr "編輯使用者"
#: src/tables/settings/UserTable.tsx:464
msgid "Add User"
-msgstr ""
+msgstr "新增使用者"
#: src/tables/settings/UserTable.tsx:472
msgid "Added user"
@@ -12333,15 +12459,15 @@ msgstr "已添加用户"
#: src/tables/settings/UserTable.tsx:482
msgid "User updated"
-msgstr ""
+msgstr "使用者已更新"
#: src/tables/settings/UserTable.tsx:483
msgid "User updated successfully"
-msgstr ""
+msgstr "使用者更新成功"
#: src/tables/settings/UserTable.tsx:489
msgid "Error updating user"
-msgstr ""
+msgstr "更新使用者時發生錯誤"
#: src/tables/stock/InstalledItemsTable.tsx:37
#: src/tables/stock/InstalledItemsTable.tsx:81
@@ -12424,7 +12550,7 @@ msgstr "顯示正在生產的項目"
#: src/tables/stock/StockItemTable.tsx:222
msgid "Show items which have been consumed by a build order"
-msgstr ""
+msgstr "顯示已被生產訂單消耗的項目"
#: src/tables/stock/StockItemTable.tsx:227
msgid "Show stock items which are installed in other items"
@@ -12452,51 +12578,51 @@ msgstr "顯示有購買價格的項目"
#: src/tables/stock/StockItemTable.tsx:253
msgid "Show items which have expired"
-msgstr ""
+msgstr "顯示已過期的項目"
#: src/tables/stock/StockItemTable.tsx:259
msgid "Show items which are stale"
-msgstr ""
+msgstr "顯示陳舊的項目"
#: src/tables/stock/StockItemTable.tsx:264
msgid "Expired Before"
-msgstr ""
+msgstr "過期於...之前"
#: src/tables/stock/StockItemTable.tsx:265
msgid "Show items which expired before this date"
-msgstr ""
+msgstr "顯示在此日期之前過期的項目"
#: src/tables/stock/StockItemTable.tsx:271
msgid "Expired After"
-msgstr ""
+msgstr "過期於...之後"
#: src/tables/stock/StockItemTable.tsx:272
msgid "Show items which expired after this date"
-msgstr ""
+msgstr "顯示在此日期之後過期的項目"
#: src/tables/stock/StockItemTable.tsx:279
msgid "Show items updated before this date"
-msgstr ""
+msgstr "顯示在此日期之前更新的項目"
#: src/tables/stock/StockItemTable.tsx:285
msgid "Show items updated after this date"
-msgstr ""
+msgstr "顯示在此日期之後更新的項目"
#: src/tables/stock/StockItemTable.tsx:290
msgid "Stocktake Before"
-msgstr ""
+msgstr "盤點於...之前"
#: src/tables/stock/StockItemTable.tsx:291
msgid "Show items counted before this date"
-msgstr ""
+msgstr "顯示在此日期之前盤點的項目"
#: src/tables/stock/StockItemTable.tsx:296
msgid "Stocktake After"
-msgstr ""
+msgstr "盤點於...之後"
#: src/tables/stock/StockItemTable.tsx:297
msgid "Show items counted after this date"
-msgstr ""
+msgstr "顯示在此日期之後盤點的項目"
#: src/tables/stock/StockItemTable.tsx:301
#~ msgid "Show stock for assmebled parts"
@@ -12524,11 +12650,11 @@ msgstr "顯示外部庫存地點的項目"
#: src/tables/stock/StockItemTable.tsx:420
msgid "Stock item created"
-msgstr ""
+msgstr "庫存項目已建立"
#: src/tables/stock/StockItemTable.tsx:442
msgid "Order items"
-msgstr ""
+msgstr "訂單項目"
#: src/tables/stock/StockItemTable.tsx:528
#~ msgid "Delete stock items"
@@ -12654,7 +12780,7 @@ msgstr "只顯示通過的測試"
#: src/tables/stock/StockItemTestResultTable.tsx:421
msgid "Show results for enabled tests"
-msgstr ""
+msgstr "顯示已啟用測試的結果"
#: src/tables/stock/StockLocationTable.tsx:38
#~ msgid "structural"
@@ -12691,15 +12817,15 @@ msgstr "添加庫存地點"
#: src/tables/stock/StockLocationTable.tsx:132
msgid "Set Parent Location"
-msgstr ""
+msgstr "設定父位置"
#: src/tables/stock/StockLocationTable.tsx:152
msgid "Set parent location for the selected items"
-msgstr ""
+msgstr "設定選定項目的父位置"
#: src/tables/stock/StockTrackingTable.tsx:93
msgid "Old Status"
-msgstr ""
+msgstr "舊狀態"
#: src/tables/stock/StockTrackingTable.tsx:109
msgid "Added"
@@ -12711,7 +12837,7 @@ msgstr "已刪除"
#: src/tables/stock/StockTrackingTable.tsx:250
msgid "Stock item no longer exists"
-msgstr ""
+msgstr "庫存項目已不存在"
#: src/tables/stock/StockTrackingTable.tsx:276
msgid "No user information"
@@ -12732,7 +12858,7 @@ msgstr "檢測到手機視圖"
#: src/views/MobileAppView.tsx:28
msgid "InvenTree UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience."
-msgstr ""
+msgstr "InvenTree UI 已針對平板和桌面設備進行了最佳化,您可以使用官方應用程式獲得行動版體驗。"
#: src/views/MobileAppView.tsx:34
msgid "Read the docs"
diff --git a/src/frontend/src/pages/Auth/ChangePassword.tsx b/src/frontend/src/pages/Auth/ChangePassword.tsx
index 3e969951f0..bee81faa81 100644
--- a/src/frontend/src/pages/Auth/ChangePassword.tsx
+++ b/src/frontend/src/pages/Auth/ChangePassword.tsx
@@ -1,3 +1,4 @@
+import { StylishText } from '@lib/components/StylishText';
import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
import {
@@ -11,7 +12,6 @@ import {
} from '@mantine/core';
import { useForm } from '@mantine/form';
import { useNavigate } from 'react-router-dom';
-import { StylishText } from '../../components/items/StylishText';
import { handleChangePassword } from '../../functions/auth';
import { useUserState } from '../../states/UserState';
import { Wrapper } from './Layout';
diff --git a/src/frontend/src/pages/Auth/Layout.tsx b/src/frontend/src/pages/Auth/Layout.tsx
index ea56cfc041..b9b2b5d5ea 100644
--- a/src/frontend/src/pages/Auth/Layout.tsx
+++ b/src/frontend/src/pages/Auth/Layout.tsx
@@ -1,3 +1,4 @@
+import { StylishText } from '@lib/components/StylishText';
import { Trans } from '@lingui/react/macro';
import {
Button,
@@ -11,7 +12,6 @@ import {
} from '@mantine/core';
import { Outlet, useNavigate } from 'react-router-dom';
import SplashScreen from '../../components/SplashScreen';
-import { StylishText } from '../../components/items/StylishText';
import { doLogout } from '../../functions/auth';
export default function LoginLayoutComponent() {
diff --git a/src/frontend/src/pages/Index/Scan.tsx b/src/frontend/src/pages/Index/Scan.tsx
index 51d77a055b..e660574aa1 100644
--- a/src/frontend/src/pages/Index/Scan.tsx
+++ b/src/frontend/src/pages/Index/Scan.tsx
@@ -19,21 +19,19 @@ import {
} from '@tabler/icons-react';
import { useCallback, useEffect, useMemo, useState } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import { notYetImplemented } from '@lib/functions/Notification';
import { hideNotification, showNotification } from '@mantine/notifications';
import dayjs from 'dayjs';
import { api } from '../../App';
import { BarcodeInput } from '../../components/barcodes/BarcodeInput';
import type { BarcodeScanItem } from '../../components/barcodes/BarcodeScanItem';
-import { StylishText } from '../../components/items/StylishText';
import PageTitle from '../../components/nav/PageTitle';
-import {
- notYetImplemented,
- showApiErrorMessage
-} from '../../functions/notifications';
+import { showApiErrorMessage } from '../../functions/notifications';
import BarcodeScanTable from '../../tables/general/BarcodeScanTable';
export default function Scan() {
diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx
index 7d0ad44770..bc8045b4ce 100644
--- a/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx
@@ -5,13 +5,13 @@ import { IconEdit, IconKey, IconUser } from '@tabler/icons-react';
import { useMemo } from 'react';
import { ActionButton } from '@lib/components/ActionButton';
+import { StylishText } from '@lib/components/StylishText';
import { YesNoUndefinedButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import { useNavigate } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow';
import { ActionDropdown } from '../../../../components/items/ActionDropdown';
-import { StylishText } from '../../../../components/items/StylishText';
import { useEditApiFormModal } from '../../../../hooks/UseForm';
import { useUserState } from '../../../../states/UserState';
diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx
index c59121d306..ce09b68e44 100644
--- a/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx
+++ b/src/frontend/src/pages/Index/Settings/AccountSettings/MFASettings.tsx
@@ -1,4 +1,6 @@
import { create } from '@github/webauthn-json/browser-ponyfill';
+import { CopyButton } from '@lib/components/CopyButton';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { FlowEnum } from '@lib/types/Auth';
@@ -31,8 +33,6 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow';
import { api, queryClient } from '../../../../App';
-import { CopyButton } from '../../../../components/buttons/CopyButton';
-import { StylishText } from '../../../../components/items/StylishText';
import { authApi, doLogout } from '../../../../functions/auth';
import { useServerApiState } from '../../../../states/ServerApiState';
import { useGlobalSettingsState } from '../../../../states/SettingsStates';
diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx
index 47f6f85d90..aec89f9a99 100644
--- a/src/frontend/src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx
+++ b/src/frontend/src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx
@@ -1,8 +1,8 @@
+import { CopyButton } from '@lib/components/CopyButton';
import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
import { Divider, Group, Paper, Stack, Text, TextInput } from '@mantine/core';
import { QRCode } from '../../../../components/barcodes/QRCode';
-import { CopyButton } from '../../../../components/buttons/CopyButton';
export function QrRegistrationForm({
url,
diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx
index fa0b8156aa..3d7e13c4a2 100644
--- a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx
+++ b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx
@@ -1,3 +1,5 @@
+import { DefaultFallback } from '@lib/components/Boundary';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import type { AuthConfig, AuthProvider } from '@lib/types/Auth';
@@ -30,8 +32,6 @@ import {
import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo, useState } from 'react';
import { useShallow } from 'zustand/react/shallow';
-import { DefaultFallback } from '../../../../components/Boundary';
-import { StylishText } from '../../../../components/items/StylishText';
import { ProviderLogin, authApi } from '../../../../functions/auth';
import { useServerApiState } from '../../../../states/ServerApiState';
import { useUserState } from '../../../../states/UserState';
diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx
index ccb8a46870..7e82097497 100644
--- a/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx
@@ -17,10 +17,10 @@ import {
import { IconRestore } from '@tabler/icons-react';
import { useState } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { useShallow } from 'zustand/react/shallow';
import { ColorToggle } from '../../../../components/items/ColorToggle';
import { LanguageSelect } from '../../../../components/items/LanguageSelect';
-import { StylishText } from '../../../../components/items/StylishText';
import { SizeMarks } from '../../../../defaults/defaults';
import { IS_DEV } from '../../../../main';
import { useLocalState } from '../../../../states/LocalState';
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx
index 7e1ca77049..7570736537 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagementPanel.tsx
@@ -7,11 +7,11 @@ import { useCallback, useMemo, useState } from 'react';
import { ActionButton } from '@lib/components/ActionButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { api } from '../../../../App';
import { FactCollection } from '../../../../components/settings/FactCollection';
import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { showApiErrorMessage } from '../../../../functions/notifications';
-import { useTable } from '../../../../hooks/UseTable';
import { InvenTreeTable } from '../../../../tables/InvenTreeTable';
/*
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx
index d4b12a1ab8..87634d8e2d 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/EmailManagementPanel.tsx
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core';
-import { StylishText } from '../../../../components/items/StylishText';
+import { StylishText } from '@lib/components/StylishText';
import { ConfigValueList } from '../../../../components/settings/ConfigValueList';
import { EmailTable } from '../../../../tables/settings/EmailTable';
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx
index 8a0d202166..e328251664 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/HomePanel.tsx
@@ -1,9 +1,9 @@
+import { StylishText } from '@lib/components/StylishText';
import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
import { Accordion, Alert, SimpleGrid, Stack, Text } from '@mantine/core';
import { type JSX, useMemo, useState } from 'react';
import { useShallow } from 'zustand/react/shallow';
-import { StylishText } from '../../../../components/items/StylishText';
import {
type ExtendedAlertInfo,
ServerAlert,
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx
index 4c700b4ed1..5fca95bd72 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx
@@ -22,6 +22,7 @@ import {
} from '@tabler/icons-react';
import { lazy, useMemo } from 'react';
+import { PluginPanelKey } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import PermissionDenied from '../../../../components/errors/PermissionDenied';
import PageTitle from '../../../../components/nav/PageTitle';
@@ -303,8 +304,8 @@ export default function AdminCenter() {
panels={adminCenterPanels}
groups={grouping}
collapsible={true}
- model='admincenter'
- id={null}
+ pluginPanelWithoutId
+ pluginPanelKey={PluginPanelKey.admincenter}
/>
) : (
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx
index 9c01d18e6e..e0c3038816 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx
@@ -13,10 +13,10 @@ import { IconInfoCircle, IconRefresh } from '@tabler/icons-react';
import { useQuery } from '@tanstack/react-query';
import { useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { api } from '../../../../App';
-import { StylishText } from '../../../../components/items/StylishText';
import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { MachineListTable } from '../../../../tables/machine/MachineListTable';
import {
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx
index e6e2d0cef5..f43758fb0a 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/ParameterPanel.tsx
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core';
-import { StylishText } from '../../../../components/items/StylishText';
+import { StylishText } from '@lib/components/StylishText';
import ParameterTemplateTable from '../../../../tables/general/ParameterTemplateTable';
import SelectionListTable from '../../../../tables/part/SelectionListTable';
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx
index 87660c7d2a..686d883f79 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx
@@ -4,8 +4,8 @@ import { Accordion, Alert, Stack } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react';
import { lazy } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { useShallow } from 'zustand/react/shallow';
-import { StylishText } from '../../../../components/items/StylishText';
import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { Loadable } from '../../../../functions/loading';
import { useServerApiState } from '../../../../states/ServerApiState';
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx
index 706ecfccec..9301694627 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx
@@ -2,9 +2,9 @@ import { t } from '@lingui/core/macro';
import { Accordion, Alert, Divider, Stack, Text } from '@mantine/core';
import { lazy } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react';
-import { StylishText } from '../../../../components/items/StylishText';
import { errorCodeLink } from '../../../../components/nav/Alerts';
import { FactCollection } from '../../../../components/settings/FactCollection';
import { Loadable } from '../../../../functions/loading';
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx
index 658d84840f..19be98e4a1 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagementPanel.tsx
@@ -2,10 +2,10 @@ import { t } from '@lingui/core/macro';
import { Accordion, Stack } from '@mantine/core';
import { useMemo } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
-import { StylishText } from '../../../../components/items/StylishText';
-import { useTable } from '../../../../hooks/UseTable';
+import useTable from '@lib/hooks/UseTable';
import { BooleanColumn } from '../../../../tables/ColumnRenderers';
import { InvenTreeTable } from '../../../../tables/InvenTreeTable';
import CustomUnitsTable from '../../../../tables/settings/CustomUnitsTable';
diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx
index 6857dd41fd..92b6c3e00d 100644
--- a/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx
+++ b/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core';
-import { StylishText } from '../../../../components/items/StylishText';
+import { StylishText } from '@lib/components/StylishText';
import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { ApiTokenTable } from '../../../../tables/settings/ApiTokenTable';
import { GroupTable } from '../../../../tables/settings/GroupTable';
diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx
index 3ded92663d..44d8369f23 100644
--- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx
+++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx
@@ -1,9 +1,9 @@
import { t } from '@lingui/core/macro';
-import { Divider, Skeleton, Stack } from '@mantine/core';
+import { Skeleton, Stack } from '@mantine/core';
import {
IconBellCog,
- IconCategory,
- IconClipboardList,
+ IconBox,
+ IconBuildingFactory2,
IconCurrencyDollar,
IconFileAnalytics,
IconFingerprint,
@@ -13,13 +13,11 @@ import {
IconQrcode,
IconServerCog,
IconShoppingCart,
- IconTag,
- IconTools,
- IconTruckDelivery,
- IconTruckReturn
+ IconTruckDelivery
} from '@tabler/icons-react';
import { lazy, useMemo } from 'react';
+import { PluginPanelKey } from '@lib/enums/ModelType';
import { useShallow } from 'zustand/react/shallow';
import PermissionDenied from '../../../components/errors/PermissionDenied';
import PageTitle from '../../../components/nav/PageTitle';
@@ -80,25 +78,32 @@ export default function SystemSettings() {
label: t`Authentication`,
icon: ,
content: (
-
+
+
+
+
)
},
{
@@ -167,12 +172,6 @@ export default function SystemSettings() {
>
)
},
- {
- name: 'labels',
- label: t`Labels`,
- icon: ,
- content:
- },
{
name: 'reporting',
label: t`Reporting`,
@@ -183,7 +182,9 @@ export default function SystemSettings() {
'REPORT_ENABLE',
'REPORT_DEFAULT_PAGE_SIZE',
'REPORT_DEBUG_MODE',
- 'REPORT_LOG_ERRORS'
+ 'REPORT_LOG_ERRORS',
+ 'LABEL_ENABLE',
+ 'LABEL_DPI'
]}
/>
)
@@ -197,67 +198,72 @@ export default function SystemSettings() {
{
name: 'parts',
label: t`Parts`,
- icon: ,
+ icon: ,
content: (
-
+
+
+
+
)
},
{
name: 'stock',
label: t`Stock`,
icon: ,
- content: (
-
- )
- },
- {
- name: 'stock-history',
- label: t`Stock History`,
- icon: ,
content: (
+
+
-
,
+ name: 'manufacturing',
+ label: t`Manufacturing`,
+ icon: ,
content: (
,
content: (
,
content: (
-
- )
- },
- {
- name: 'returnorders',
- label: t`Return Orders`,
- icon: ,
- content: (
-
+
+
+
+
)
},
{
name: 'plugins',
- label: t`Plugin Settings`,
+ label: t`Plugins`,
icon: ,
content:
}
@@ -376,8 +380,8 @@ export default function SystemSettings() {
) : (
diff --git a/src/frontend/src/pages/Index/Settings/UserSettings.tsx b/src/frontend/src/pages/Index/Settings/UserSettings.tsx
index 55a62ede4b..f0a0019f85 100644
--- a/src/frontend/src/pages/Index/Settings/UserSettings.tsx
+++ b/src/frontend/src/pages/Index/Settings/UserSettings.tsx
@@ -11,6 +11,7 @@ import {
} from '@tabler/icons-react';
import { lazy, useMemo } from 'react';
+import { PluginPanelKey } from '@lib/enums/ModelType';
import { useShallow } from 'zustand/react/shallow';
import PageTitle from '../../../components/nav/PageTitle';
import { SettingsHeader } from '../../../components/nav/SettingsHeader';
@@ -65,7 +66,8 @@ export default function UserSettings() {
'DISPLAY_STOCKTAKE_TAB',
'ENABLE_LAST_BREADCRUMB',
'SHOW_FULL_LOCATION_IN_TABLES',
- 'SHOW_FULL_CATEGORY_IN_TABLES'
+ 'SHOW_FULL_CATEGORY_IN_TABLES',
+ 'SHOW_BOM_SUBASSEMBLY_LEVELS'
]}
/>
)
@@ -154,8 +156,8 @@ export default function UserSettings() {
>
diff --git a/src/frontend/src/pages/Notifications.tsx b/src/frontend/src/pages/Notifications.tsx
index 0de7c798eb..a5e1dec080 100644
--- a/src/frontend/src/pages/Notifications.tsx
+++ b/src/frontend/src/pages/Notifications.tsx
@@ -13,10 +13,10 @@ import { useCallback, useMemo } from 'react';
import { ActionButton } from '@lib/components/ActionButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { PageDetail } from '../components/nav/PageDetail';
import { PanelGroup } from '../components/panels/PanelGroup';
import { useApi } from '../contexts/ApiContext';
-import { useTable } from '../hooks/UseTable';
import { NotificationTable } from '../tables/notifications/NotificationTable';
export default function NotificationsPage() {
@@ -26,7 +26,7 @@ export default function NotificationsPage() {
const markAllAsRead = useCallback(() => {
api
- .get(apiUrl(ApiEndpoints.notifications_readall), {
+ .post(apiUrl(ApiEndpoints.notifications_readall), {
params: {
read: false
}
diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx
index 8f8bf0e60e..eb3b84117e 100644
--- a/src/frontend/src/pages/build/BuildDetail.tsx
+++ b/src/frontend/src/pages/build/BuildDetail.tsx
@@ -5,6 +5,7 @@ import {
IconCircleCheck,
IconClipboardCheck,
IconClipboardList,
+ IconExclamationCircle,
IconInfoCircle,
IconList,
IconListCheck,
@@ -88,6 +89,13 @@ function BuildLinesPanel({
isLoading: boolean;
hasItems: boolean;
}>) {
+ const bomInformation = useInstance({
+ endpoint: ApiEndpoints.bom_validate,
+ pk: build?.part,
+ hasPrimaryKey: true,
+ refetchOnMount: true
+ });
+
const buildLocation = useInstance({
endpoint: ApiEndpoints.stock_location_list,
pk: build?.take_from,
@@ -105,6 +113,16 @@ function BuildLinesPanel({
return (
+ {bomInformation?.isLoaded &&
+ bomInformation?.instance?.bom_validated == false && (
+ }
+ title={t`BOM Not Validated`}
+ >
+ {t`The Bill of Materials for this assembly has not been validated.`}
+
+ )}
{buildLocation.instance.pk && (
} title={t`Source Location`}>
diff --git a/src/frontend/src/pages/build/BuildIndex.tsx b/src/frontend/src/pages/build/BuildIndex.tsx
index 2b8f4e681c..b1034b699c 100644
--- a/src/frontend/src/pages/build/BuildIndex.tsx
+++ b/src/frontend/src/pages/build/BuildIndex.tsx
@@ -8,7 +8,7 @@ import {
} from '@tabler/icons-react';
import { useMemo } from 'react';
-import { ModelType } from '@lib/enums/ModelType';
+import { ModelType, PluginPanelKey } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import type { TableFilter } from '@lib/types/Filters';
import { useLocalStorage } from '@mantine/hooks';
@@ -102,8 +102,8 @@ export default function BuildIndex() {
);
diff --git a/src/frontend/src/pages/core/CoreIndex.tsx b/src/frontend/src/pages/core/CoreIndex.tsx
index fbc47e28aa..c588849461 100644
--- a/src/frontend/src/pages/core/CoreIndex.tsx
+++ b/src/frontend/src/pages/core/CoreIndex.tsx
@@ -3,6 +3,7 @@ import { Stack } from '@mantine/core';
import { IconUser, IconUsersGroup } from '@tabler/icons-react';
import { useMemo } from 'react';
+import { PluginPanelKey } from '@lib/enums/ModelType';
import PermissionDenied from '../../components/errors/PermissionDenied';
import { PageDetail } from '../../components/nav/PageDetail';
import { PanelGroup } from '../../components/panels/PanelGroup';
@@ -44,7 +45,12 @@ export default function CoreIndex() {
return (
-
+
);
}
diff --git a/src/frontend/src/pages/core/GroupDetail.tsx b/src/frontend/src/pages/core/GroupDetail.tsx
index 4344e36ec4..6786f9e51d 100644
--- a/src/frontend/src/pages/core/GroupDetail.tsx
+++ b/src/frontend/src/pages/core/GroupDetail.tsx
@@ -1,3 +1,4 @@
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { t } from '@lingui/core/macro';
@@ -12,7 +13,6 @@ import {
import { ItemDetailsGrid } from '../../components/details/ItemDetails';
import {} from '../../components/items/ActionDropdown';
import { RoleTable, type RuleSet } from '../../components/items/RoleTable';
-import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail';
import { PageDetail } from '../../components/nav/PageDetail';
import type { PanelType } from '../../components/panels/Panel';
diff --git a/src/frontend/src/pages/part/CategoryDetail.tsx b/src/frontend/src/pages/part/CategoryDetail.tsx
index a39ce98f5e..2eab39d719 100644
--- a/src/frontend/src/pages/part/CategoryDetail.tsx
+++ b/src/frontend/src/pages/part/CategoryDetail.tsx
@@ -1,5 +1,5 @@
import { t } from '@lingui/core/macro';
-import { Group, LoadingOverlay, Skeleton, Stack, Text } from '@mantine/core';
+import { Group, LoadingOverlay, Skeleton, Stack } from '@mantine/core';
import {
IconCategory,
IconInfoCircle,
@@ -167,11 +167,7 @@ export default function CategoryDetail() {
return (
- {id && category?.pk ? (
-
- ) : (
- {t`Top level part category`}
- )}
+ {id && category?.pk && }
{id && category?.pk && }
);
@@ -272,7 +268,8 @@ export default function CategoryDetail() {
name: 'details',
label: t`Category Details`,
icon: ,
- content: detailsPanel
+ content: detailsPanel,
+ hidden: !id || !category?.pk
},
{
name: 'subcategories',
diff --git a/src/frontend/src/pages/part/PartAllocationPanel.tsx b/src/frontend/src/pages/part/PartAllocationPanel.tsx
index bb513b71d6..2574fa9f4e 100644
--- a/src/frontend/src/pages/part/PartAllocationPanel.tsx
+++ b/src/frontend/src/pages/part/PartAllocationPanel.tsx
@@ -1,8 +1,8 @@
import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core';
+import { StylishText } from '@lib/components/StylishText';
import { UserRoles } from '@lib/enums/Roles';
-import { StylishText } from '../../components/items/StylishText';
import { useUserState } from '../../states/UserState';
import PartBuildAllocationsTable from '../../tables/part/PartBuildAllocationsTable';
import PartSalesAllocationsTable from '../../tables/part/PartSalesAllocationsTable';
diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx
index 6485e495af..4c56646f50 100644
--- a/src/frontend/src/pages/part/PartDetail.tsx
+++ b/src/frontend/src/pages/part/PartDetail.tsx
@@ -5,9 +5,7 @@ import {
Center,
Grid,
Group,
- HoverCard,
Loader,
- type MantineColor,
Paper,
Skeleton,
Stack,
@@ -17,13 +15,11 @@ import {
IconBookmarks,
IconBuilding,
IconChecklist,
- IconCircleCheck,
IconClipboardList,
IconCurrencyDollar,
IconExclamationCircle,
IconInfoCircle,
IconLayersLinked,
- IconListCheck,
IconListDetails,
IconListTree,
IconLock,
@@ -47,7 +43,6 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
-import { ActionButton } from '@lib/index';
import type { StockOperationProps } from '@lib/types/Forms';
import AdminButton from '../../components/buttons/AdminButton';
import { PrintingActions } from '../../components/buttons/PrintingActions';
@@ -76,15 +71,12 @@ import NotesPanel from '../../components/panels/NotesPanel';
import type { PanelType } from '../../components/panels/Panel';
import { PanelGroup } from '../../components/panels/PanelGroup';
import { RenderPart } from '../../components/render/Part';
-import { RenderUser } from '../../components/render/User';
import OrderPartsWizard from '../../components/wizards/OrderPartsWizard';
import { useApi } from '../../contexts/ApiContext';
import { formatDecimal, formatPriceRange } from '../../defaults/formatters';
import { usePartFields } from '../../forms/PartForms';
import { useFindSerialNumberForm } from '../../forms/StockForms';
-import useBackgroundTask from '../../hooks/UseBackgroundTask';
import {
- useApiFormModal,
useCreateApiFormModal,
useDeleteApiFormModal,
useEditApiFormModal
@@ -112,6 +104,7 @@ import PartAllocationPanel from './PartAllocationPanel';
import PartPricingPanel from './PartPricingPanel';
import PartStockHistoryDetail from './PartStockHistoryDetail';
import PartSupplierDetail from './PartSupplierDetail';
+import { BomActions } from './bom/BomActions';
/**
* Render a part revision selector component
@@ -154,134 +147,6 @@ function RevisionSelector({
);
}
-/**
- * A hover-over component which displays information about the BOM validation for a given part
- */
-function BomValidationInformation({
- partId
-}: {
- partId: number;
-}) {
- const { instance: bomInformation, instanceQuery: bomInformationQuery } =
- useInstance({
- endpoint: ApiEndpoints.bom_validate,
- pk: partId,
- hasPrimaryKey: true,
- refetchOnMount: true
- });
-
- const [taskId, setTaskId] = useState('');
-
- useBackgroundTask({
- taskId: taskId,
- message: t`Validating BOM`,
- successMessage: t`BOM validated`,
- onComplete: () => {
- bomInformationQuery.refetch();
- }
- });
-
- const validateBom = useApiFormModal({
- url: ApiEndpoints.bom_validate,
- method: 'PUT',
- fields: {
- valid: {
- hidden: true,
- value: true
- }
- },
- title: t`Validate BOM`,
- pk: partId,
- preFormContent: (
- } title={t`Validate BOM`}>
- {t`Do you want to validate the bill of materials for this assembly?`}
-
- ),
- successMessage: null,
- onFormSuccess: (response: any) => {
- // If the process has been offloaded to a background task
- if (response.task_id) {
- setTaskId(response.task_id);
- } else {
- bomInformationQuery.refetch();
- }
- }
- });
-
- if (bomInformationQuery.isFetching) {
- return ;
- }
-
- let icon: ReactNode;
- let color: MantineColor;
- let title = '';
- let description = '';
-
- if (bomInformation?.bom_validated) {
- color = 'green';
- icon = ;
- title = t`BOM Validated`;
- description = t`The Bill of Materials for this part has been validated`;
- } else if (bomInformation?.bom_checked_date) {
- color = 'yellow';
- icon = ;
- title = t`BOM Not Validated`;
- description = t`The Bill of Materials for this part has previously been checked, but requires revalidation`;
- } else {
- color = 'red';
- icon = ;
- title = t`BOM Not Validated`;
- description = t`The Bill of Materials for this part has not yet been validated`;
- }
-
- return (
- <>
- {validateBom.modal}
-
- {!bomInformation.bom_validated && (
- }
- color='green'
- tooltip={t`Validate BOM`}
- onClick={validateBom.open}
- />
- )}
-
-
-
- {icon}
-
-
-
-
-
- {description}
- {bomInformation?.bom_checked_date && (
-
- {t`Validated On`}: {bomInformation.bom_checked_date}
-
- )}
- {bomInformation?.bom_checked_by_detail && (
-
- {t`Validated By`}:
-
-
- )}
-
-
-
-
-
- >
- );
-}
-
/**
* Detail view for a single Part instance
*/
@@ -297,6 +162,14 @@ export default function PartDetail() {
const globalSettings = useGlobalSettingsState();
const userSettings = useUserSettingsState();
+ // BOM validation information (used for hover-over info on the BOM tab)
+ const bomInformation = useInstance({
+ endpoint: ApiEndpoints.bom_validate,
+ pk: id,
+ hasPrimaryKey: true,
+ refetchOnMount: true
+ });
+
const { instance: serials } = useInstance({
endpoint: ApiEndpoints.part_serial_numbers,
pk: id,
@@ -714,6 +587,7 @@ export default function PartDetail() {
deleteFile: true
}}
src={part.image}
+ thumbnail={part.thumbnail}
apiPath={apiUrl(ApiEndpoints.part_list, part.pk)}
refresh={refreshInstance}
pk={part.pk}
@@ -801,11 +675,28 @@ export default function PartDetail() {
{
name: 'bom',
label: t`Bill of Materials`,
- controls: ,
+ controls: (
+
+ ),
icon: ,
- hidden: !part.assembly,
+ hidden: !part.assembly || !user.hasViewRole(UserRoles.bom),
content: part?.pk ? (
-
+
+ {bomInformation.isLoaded &&
+ bomInformation.instance?.bom_validated === false && (
+ }
+ title={t`BOM Not Validated`}
+ >
+ {t`The Bill of Materials for this assembly has not been validated.`}
+
+ )}
+
+
) : (
)
@@ -949,7 +840,15 @@ export default function PartDetail() {
has_note: !!part?.notes
})
];
- }, [id, part, user, globalSettings, userSettings, detailsPanel]);
+ }, [
+ id,
+ part,
+ user,
+ globalSettings,
+ userSettings,
+ detailsPanel,
+ bomInformation
+ ]);
const breadcrumbs = useMemo(() => {
return [
@@ -1225,6 +1124,7 @@ export default function PartDetail() {
}
subtitle={part.description}
imageUrl={part.image}
+ thumbnailUrl={part.thumbnail}
badges={badges}
breadcrumbs={
user.hasViewRole(UserRoles.part_category)
diff --git a/src/frontend/src/pages/part/PartStockHistoryDetail.tsx b/src/frontend/src/pages/part/PartStockHistoryDetail.tsx
index 8a7ded28b8..683011874c 100644
--- a/src/frontend/src/pages/part/PartStockHistoryDetail.tsx
+++ b/src/frontend/src/pages/part/PartStockHistoryDetail.tsx
@@ -1,7 +1,9 @@
import { RowDeleteAction, RowEditAction } from '@lib/components/RowActions';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { AddItemButton } from '@lib/index';
import type { TableColumn } from '@lib/types/Tables';
import { t } from '@lingui/core/macro';
@@ -17,7 +19,6 @@ import {
} from '@mantine/core';
import dayjs from 'dayjs';
import { useCallback, useMemo, useState } from 'react';
-import { StylishText } from '../../components/items/StylishText';
import { formatDate, formatPriceRange } from '../../defaults/formatters';
import { partStocktakeFields } from '../../forms/PartForms';
import {
@@ -25,7 +26,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { DateColumn, DecimalColumn } from '../../tables/ColumnRenderers';
import { InvenTreeTable } from '../../tables/InvenTreeTable';
diff --git a/src/frontend/src/pages/part/PartSupplierDetail.tsx b/src/frontend/src/pages/part/PartSupplierDetail.tsx
index b41be7313f..beacd73f9e 100644
--- a/src/frontend/src/pages/part/PartSupplierDetail.tsx
+++ b/src/frontend/src/pages/part/PartSupplierDetail.tsx
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core';
-import { StylishText } from '../../components/items/StylishText';
+import { StylishText } from '@lib/components/StylishText';
import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable';
import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable';
diff --git a/src/frontend/src/pages/part/bom/BomActions.tsx b/src/frontend/src/pages/part/bom/BomActions.tsx
new file mode 100644
index 0000000000..764db9f1b8
--- /dev/null
+++ b/src/frontend/src/pages/part/bom/BomActions.tsx
@@ -0,0 +1,191 @@
+import { ActionButton } from '@lib/components/ActionButton';
+import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
+import { UserRoles } from '@lib/enums/Roles';
+import { t } from '@lingui/core/macro';
+import {
+ ActionIcon,
+ Alert,
+ Group,
+ HoverCard,
+ Loader,
+ type MantineColor,
+ Stack,
+ Text
+} from '@mantine/core';
+import {
+ IconCircleCheck,
+ IconExclamationCircle,
+ IconGitCompare,
+ IconListCheck
+} from '@tabler/icons-react';
+import { type ReactNode, useEffect, useState } from 'react';
+import { useSearchParams } from 'react-router-dom';
+import { RenderUser } from '../../../components/render/User';
+import useBackgroundTask from '../../../hooks/UseBackgroundTask';
+import { useApiFormModal } from '../../../hooks/UseForm';
+import type { UseInstanceResult } from '../../../hooks/UseInstance';
+import { useUserState } from '../../../states/UserState';
+import { BomCompareDrawer } from './BomCompare';
+
+/**
+ * A hover-over component which displays information about the BOM validation for a given part
+ */
+export function BomActions({
+ bomInformation,
+ partInstance
+}: Readonly<{
+ bomInformation: UseInstanceResult;
+ partInstance: any;
+}>) {
+ const user = useUserState();
+
+ const [bomCompareOpen, setBomCompareOpen] = useState(false);
+
+ const [bomCompareId, setBomCompareId] = useState('');
+
+ const [searchParams, setSearchParams] = useSearchParams();
+
+ // Open the BOM compare drawer if the URL contains the relevant query parameter
+ useEffect(() => {
+ if (
+ searchParams.has('compare') &&
+ !!searchParams.get('compare') &&
+ !bomCompareOpen
+ ) {
+ setBomCompareId(searchParams.get('compare') as string);
+ setBomCompareOpen(true);
+ }
+ }, [searchParams]);
+
+ const [taskId, setTaskId] = useState('');
+
+ useBackgroundTask({
+ taskId: taskId,
+ message: t`Validating BOM`,
+ successMessage: t`BOM validated`,
+ onComplete: () => {
+ bomInformation.instanceQuery.refetch();
+ }
+ });
+
+ const validateBom = useApiFormModal({
+ url: ApiEndpoints.bom_validate,
+ method: 'PUT',
+ fields: {
+ valid: {
+ hidden: true,
+ value: true
+ }
+ },
+ title: t`Validate BOM`,
+ pk: partInstance.pk,
+ preFormContent: (
+ } title={t`Validate BOM`}>
+ {t`Do you want to validate the bill of materials for this assembly?`}
+
+ ),
+ successMessage: null,
+ onFormSuccess: (response: any) => {
+ // If the process has been offloaded to a background task
+ if (response.task_id) {
+ setTaskId(response.task_id);
+ } else {
+ bomInformation.instanceQuery.refetch();
+ }
+ }
+ });
+
+ if (bomInformation.instanceQuery.isFetching) {
+ return ;
+ }
+
+ let icon: ReactNode;
+ let color: MantineColor;
+ let title = '';
+ let description = '';
+
+ if (bomInformation.instance?.bom_validated) {
+ color = 'green';
+ icon = ;
+ title = t`BOM Validated`;
+ description = t`The Bill of Materials for this part has been validated`;
+ } else if (bomInformation.instance?.bom_checked_date) {
+ color = 'yellow';
+ icon = ;
+ title = t`BOM Not Validated`;
+ description = t`The Bill of Materials for this part has previously been checked, but requires revalidation`;
+ } else {
+ color = 'red';
+ icon = ;
+ title = t`BOM Not Validated`;
+ description = t`The Bill of Materials for this part has not yet been validated`;
+ }
+
+ return (
+ <>
+ {validateBom.modal}
+
+ }
+ color='blue'
+ tooltip={t`Compare Bill of Materials`}
+ onClick={() => setBomCompareOpen(true)}
+ />
+ {!bomInformation.instance?.bom_validated &&
+ user.hasChangeRole(UserRoles.bom) && (
+ }
+ color='green'
+ tooltip={t`Validate BOM`}
+ onClick={validateBom.open}
+ />
+ )}
+
+
+
+ {icon}
+
+
+
+
+
+ {description}
+ {bomInformation.instance?.bom_checked_date && (
+
+ {t`Validated On`}:{' '}
+ {bomInformation.instance.bom_checked_date}
+
+ )}
+ {bomInformation.instance?.bom_checked_by_detail && (
+
+ {t`Validated By`}:
+
+
+ )}
+
+
+
+
+
+ {
+ setBomCompareId('');
+ setBomCompareOpen(false);
+ setSearchParams((params: URLSearchParams) => {
+ params.delete('compare');
+ return params;
+ });
+ }}
+ />
+ >
+ );
+}
diff --git a/src/frontend/src/pages/part/bom/BomCompare.tsx b/src/frontend/src/pages/part/bom/BomCompare.tsx
new file mode 100644
index 0000000000..be69f0968b
--- /dev/null
+++ b/src/frontend/src/pages/part/bom/BomCompare.tsx
@@ -0,0 +1,428 @@
+import { ApiEndpoints, ModelType, StylishText, apiUrl } from '@lib/index';
+import { t } from '@lingui/core/macro';
+import {
+ ActionIcon,
+ Alert,
+ Divider,
+ Drawer,
+ Group,
+ Paper,
+ Select,
+ SimpleGrid,
+ Stack,
+ Table,
+ Text
+} from '@mantine/core';
+import {
+ IconArrowRight,
+ IconCircleCheck,
+ IconCirclePlus,
+ IconCircleX,
+ IconStatusChange
+} from '@tabler/icons-react';
+import { useQuery } from '@tanstack/react-query';
+import { type ReactNode, useEffect, useMemo, useState } from 'react';
+import { useSearchParams } from 'react-router-dom';
+import { api } from '../../../App';
+import { StandaloneField } from '../../../components/forms/StandaloneField';
+import Expand from '../../../components/items/Expand';
+import { RenderPartColumn } from '../../../tables/ColumnRenderers';
+
+// Field to check for differences when comparing BOM items
+const DELTA_FIELDS = {
+ quantity: t`Quantity`,
+ reference: t`Reference`,
+ allow_variants: t`Allow Variants`,
+ inherited: t`Inherited`,
+ optional: t`Optional`,
+ consumable: t`Consumable`,
+ setup_quantity: t`Setup Quantity`,
+ attrition: t`Attrition`,
+ rounding_multiple: t`Rounding Multiple`
+};
+
+type BomCompareRow = {
+ part_detail: any;
+ primary: any;
+ secondary: any;
+ match: boolean;
+ deltas: string[];
+ key: string;
+};
+
+type BomDisplayMode = 'all' | 'different' | 'common';
+
+function getBomDeltas(primary: any, secondary: any): string[] {
+ const deltas: string[] = [];
+
+ Object.entries(DELTA_FIELDS).forEach(([field, label]) => {
+ if (primary?.[field] != secondary?.[field]) {
+ deltas.push(field);
+ }
+ });
+
+ return deltas;
+}
+
+function BomTableRow({
+ item
+}: Readonly<{
+ item: BomCompareRow;
+}>) {
+ const partMatch = !!item.primary && !!item.secondary;
+
+ const quantityMatch =
+ partMatch && item.primary.quantity == item.secondary.quantity;
+
+ const deltas: any[] = useMemo(() => {
+ const fields: any[] = [];
+
+ item.deltas.forEach((delta) => {
+ fields.push({
+ field: delta,
+ label: DELTA_FIELDS[delta as keyof typeof DELTA_FIELDS],
+ primaryValue: item.primary?.[delta] ?? null,
+ secondaryValue: item.secondary?.[delta] ?? null
+ });
+ });
+
+ return fields;
+ }, [item]);
+
+ // Determine the appropriate icon to display for this row
+ const rowIcon: ReactNode = useMemo(() => {
+ if (!!item.primary != !!item.secondary) {
+ if (!!item.secondary) {
+ // Part was added to the secondary BOM (exists in secondary but not primary)
+ return (
+
+
+
+ );
+ } else {
+ return (
+
+
+
+ );
+ }
+ } else if (
+ !!item.deltas?.length ||
+ item.primary?.quantity != item.secondary?.quantity
+ ) {
+ // Part exists in both BOMs but has differences
+ return (
+
+
+
+ );
+ } else {
+ return (
+
+
+
+ );
+ }
+ }, [item]);
+
+ return (
+
+
+
+ {rowIcon}
+
+
+
+
+
+
+ {item.primary?.quantity ?? item.secondary?.quantity ?? '-'}
+
+ {item.part_detail?.units && (
+ [{item.part_detail.units}]
+ )}
+
+
+
+
+ {rowIcon}
+ {partMatch && deltas.length > 0 ? (
+
+ {deltas.map((delta, index) => (
+
+ {delta.label}
+ {delta.primaryValue ?? '-'}
+
+
+
+ {delta.secondaryValue ?? '-'}
+
+ ))}
+
+ ) : (
+
+ {partMatch
+ ? t`No changes`
+ : !!item.primary
+ ? t`Part removed from BOM`
+ : t`Part added to BOM`}
+
+ )}
+
+
+
+ );
+}
+
+function BomTable({
+ items
+}: Readonly<{
+ items: BomCompareRow[];
+}>) {
+ return (
+
+
+
+
+ {t`Part`}
+ {t`Quantity`}
+ {t`Changes`}
+
+
+
+ {items.map((item: any, index) => (
+
+ ))}
+
+
+
+ );
+}
+
+export function BomCompareDrawer({
+ opened,
+ onClosed,
+ compareId,
+ partInstance
+}: {
+ opened: boolean;
+ onClosed: () => void;
+ compareId?: string;
+ partInstance: any;
+}) {
+ const [displayMode, setDisplayMode] = useState('all');
+
+ const [searchParam, setSearchParams] = useSearchParams();
+
+ // Fetch entire BOM for the part
+ const primaryBom = useQuery({
+ queryKey: ['bom-compare-primary', partInstance.pk, opened],
+ enabled: opened && !!partInstance.pk,
+ queryFn: async () => {
+ return api
+ .get(apiUrl(ApiEndpoints.bom_list), {
+ params: {
+ part: partInstance.pk,
+ sub_part_detail: true
+ }
+ })
+ .then((response) => response.data);
+ }
+ });
+
+ // Secondary part ID
+ const [secondaryPartId, setSecondaryPartId] = useState(
+ compareId ?? ''
+ );
+
+ useEffect(() => {
+ setSecondaryPartId(compareId ?? '');
+ }, [opened]);
+
+ // Fetch BOM for the secondary part
+ const secondaryBom = useQuery({
+ queryKey: ['bom-compare-secondary', secondaryPartId, opened],
+ enabled: opened && !!secondaryPartId,
+ queryFn: async () => {
+ return api
+ .get(apiUrl(ApiEndpoints.bom_list), {
+ params: {
+ part: secondaryPartId,
+ sub_part_detail: true
+ }
+ })
+ .then((response) => response.data);
+ }
+ });
+
+ // Perform comparison against
+ const comparedItems: any[] = useMemo(() => {
+ let rows: BomCompareRow[] = [];
+
+ const primaryPartIds = new Set();
+ const secondaryPartIds = new Set();
+
+ // First, iterate through the "primary" BOM to generate the initial data
+ primaryBom.data?.forEach((item: any) => {
+ let subPartId = `${item.sub_part}`;
+
+ while (primaryPartIds.has(subPartId)) {
+ subPartId += '_dup';
+ }
+
+ primaryPartIds.add(subPartId);
+
+ rows.push({
+ part_detail: item.sub_part_detail,
+ primary: item,
+ secondary: null,
+ match: false,
+ deltas: getBomDeltas(item, null), // Initialize deltas with all fields (since no match yet)
+ key: subPartId
+ });
+ });
+
+ // Next, iterate through the "secondary" BOM to find matches and update the data
+ secondaryBom.data?.forEach((item: any) => {
+ let subPartId = `${item.sub_part}`;
+
+ while (secondaryPartIds.has(subPartId)) {
+ subPartId += '_dup';
+ }
+
+ secondaryPartIds.add(subPartId);
+
+ // Try to find a matching part in the primary BOM
+ const match = rows.find((row) => row.key == subPartId);
+
+ if (match) {
+ // If a match is found, update the existing row
+ match.secondary = item;
+ match.match = true; // Mark as a match
+ match.deltas = getBomDeltas(match.primary, match.secondary); // Update deltas with actual differences
+ } else {
+ // If no match is found, add a new row for the secondary item
+ rows.push({
+ part_detail: item.sub_part_detail,
+ primary: null,
+ secondary: item,
+ match: false,
+ deltas: getBomDeltas(null, item),
+ key: subPartId
+ });
+ }
+ });
+
+ switch (displayMode) {
+ case 'different':
+ // Show only *different* parts
+ rows = rows.filter((row) => !row.match);
+ break;
+ case 'common':
+ // Show only *common* parts
+ rows = rows.filter((row) => row.match);
+ break;
+ default:
+ case 'all':
+ break;
+ }
+
+ // Return rows, sorted by part name
+ return rows.sort((a, b) => {
+ const nameA = a.part_detail?.name ?? '';
+ const nameB = b.part_detail?.name ?? '';
+
+ return nameA.localeCompare(nameB);
+ });
+ }, [displayMode, primaryBom.data, secondaryBom.data]);
+
+ return (
+ {t`Compare Bill of Materials`}
+ }
+ >
+
+
+
+
+
+ {t`Primary Assembly`}
+ {t`Primary assembly for comparison`}
+
+
+
+ {
+ setSecondaryPartId(value);
+ if (opened) {
+ setSearchParams(
+ {
+ compare: value
+ },
+ { replace: true }
+ );
+ }
+ }
+ }}
+ />
+
+
+
+ {secondaryPartId ? (
+
+ ) : (
+ {t`Select an assembly to view Bill of Materials comparison`}
+ )}
+
+
+ );
+}
diff --git a/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx b/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx
index e932431965..9bc6ed2e0b 100644
--- a/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx
@@ -13,11 +13,11 @@ import { type ReactNode, useMemo, useState } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { CHART_COLORS } from '../../../components/charts/colors';
import { tooltipFormatter } from '../../../components/charts/tooltipFormatter';
import { formatDecimal, formatPriceRange } from '../../../defaults/formatters';
-import { useTable } from '../../../hooks/UseTable';
import { DateColumn, PartColumn } from '../../../tables/ColumnRenderers';
import { InvenTreeTable } from '../../../tables/InvenTreeTable';
import { LoadingPricingData, NoPricingData } from './PricingPanel';
@@ -186,6 +186,7 @@ export default function BomPricingPanel({
params: {
part: part?.pk,
sub_part_detail: true,
+ pricing: true,
has_pricing: true
},
enableSelection: false,
diff --git a/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx b/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx
index 57f7c60a97..8151a55e62 100644
--- a/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx
@@ -12,6 +12,7 @@ import {
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
import { tooltipFormatter } from '../../../components/charts/tooltipFormatter';
@@ -21,7 +22,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../../hooks/UseForm';
-import { useTable } from '../../../hooks/UseTable';
import { useUserState } from '../../../states/UserState';
import { InvenTreeTable } from '../../../tables/InvenTreeTable';
import { NoPricingData } from './PricingPanel';
diff --git a/src/frontend/src/pages/part/pricing/PricingPanel.tsx b/src/frontend/src/pages/part/pricing/PricingPanel.tsx
index 4afec1e95f..ed634e495c 100644
--- a/src/frontend/src/pages/part/pricing/PricingPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/PricingPanel.tsx
@@ -14,7 +14,7 @@ import {
import { IconAlertCircle, IconExclamationCircle } from '@tabler/icons-react';
import type { ReactNode } from 'react';
-import { StylishText } from '../../../components/items/StylishText';
+import { StylishText } from '@lib/components/StylishText';
import type { panelOptions } from '../PartPricingPanel';
function AccordionControl(props: AccordionControlProps) {
diff --git a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx
index 53f71388be..60b3f6fb3a 100644
--- a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx
@@ -5,9 +5,9 @@ import { type ReactNode, useCallback, useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { formatCurrency, formatDate } from '../../../defaults/formatters';
-import { useTable } from '../../../hooks/UseTable';
import { InvenTreeTable } from '../../../tables/InvenTreeTable';
import { NoPricingData } from './PricingPanel';
diff --git a/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx
index 1f38d460c1..cdd6c4b224 100644
--- a/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx
@@ -5,9 +5,9 @@ import { type ReactNode, useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { formatCurrency } from '../../../defaults/formatters';
-import { useTable } from '../../../hooks/UseTable';
import { DateColumn } from '../../../tables/ColumnRenderers';
import { InvenTreeTable } from '../../../tables/InvenTreeTable';
import { NoPricingData } from './PricingPanel';
diff --git a/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx b/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx
index e807d84a4c..48982989d5 100644
--- a/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx
@@ -5,9 +5,9 @@ import { useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { tooltipFormatter } from '../../../components/charts/tooltipFormatter';
-import { useTable } from '../../../hooks/UseTable';
import { InvenTreeTable } from '../../../tables/InvenTreeTable';
import {
SupplierPriceBreakColumns,
diff --git a/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx b/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx
index faffca8a7e..6aa8911d75 100644
--- a/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx
+++ b/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx
@@ -6,10 +6,10 @@ import { type ReactNode, useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { tooltipFormatter } from '../../../components/charts/tooltipFormatter';
import { formatCurrency } from '../../../defaults/formatters';
-import { useTable } from '../../../hooks/UseTable';
import { DateColumn, PartColumn } from '../../../tables/ColumnRenderers';
import { InvenTreeTable } from '../../../tables/InvenTreeTable';
import { NoPricingData } from './PricingPanel';
diff --git a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx
index f8295065c9..30500dbdc7 100644
--- a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx
+++ b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx
@@ -4,6 +4,7 @@ import { IconInfoCircle, IconList, IconPackages } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
@@ -25,7 +26,6 @@ import {
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 AttachmentPanel from '../../components/panels/AttachmentPanel';
diff --git a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx
index a4a2f70d47..74e8280931 100644
--- a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx
+++ b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx
@@ -12,7 +12,7 @@ import {
} from '@tabler/icons-react';
import { useMemo } from 'react';
-import { ModelType } from '@lib/enums/ModelType';
+import { ModelType, PluginPanelKey } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { useLocalStorage } from '@mantine/hooks';
import OrderCalendar from '../../components/calendar/OrderCalendar';
@@ -215,8 +215,8 @@ export default function PurchasingIndex() {
);
diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx
index 7fccf41690..71b20d8768 100644
--- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx
+++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx
@@ -4,6 +4,7 @@ import { IconInfoCircle, IconList } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
@@ -25,7 +26,6 @@ import {
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 AttachmentPanel from '../../components/panels/AttachmentPanel';
diff --git a/src/frontend/src/pages/sales/SalesIndex.tsx b/src/frontend/src/pages/sales/SalesIndex.tsx
index d225081ec4..80285f4483 100644
--- a/src/frontend/src/pages/sales/SalesIndex.tsx
+++ b/src/frontend/src/pages/sales/SalesIndex.tsx
@@ -11,7 +11,7 @@ import {
} from '@tabler/icons-react';
import { useMemo } from 'react';
-import { ModelType } from '@lib/enums/ModelType';
+import { ModelType, PluginPanelKey } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { useLocalStorage } from '@mantine/hooks';
import OrderCalendar from '../../components/calendar/OrderCalendar';
@@ -170,8 +170,8 @@ export default function SalesIndex() {
);
diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx
index 9fc6317929..fa3b1a7093 100644
--- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx
+++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx
@@ -10,6 +10,7 @@ import {
import { type ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
@@ -31,7 +32,6 @@ import {
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 AttachmentPanel from '../../components/panels/AttachmentPanel';
diff --git a/src/frontend/src/pages/stock/LocationDetail.tsx b/src/frontend/src/pages/stock/LocationDetail.tsx
index b8eb574561..99506ced9a 100644
--- a/src/frontend/src/pages/stock/LocationDetail.tsx
+++ b/src/frontend/src/pages/stock/LocationDetail.tsx
@@ -5,7 +5,7 @@ import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
import type { StockOperationProps } from '@lib/types/Forms';
import { t } from '@lingui/core/macro';
-import { Group, Skeleton, Stack, Text } from '@mantine/core';
+import { Group, Skeleton, Stack } from '@mantine/core';
import {
IconInfoCircle,
IconListDetails,
@@ -160,11 +160,7 @@ export default function Stock() {
return (
- {id && location?.pk ? (
-
- ) : (
- {t`Top level stock location`}
- )}
+ {id && location?.pk && }
{id && location?.pk && }
);
@@ -178,7 +174,8 @@ export default function Stock() {
name: 'details',
label: t`Location Details`,
icon: ,
- content: detailsPanel
+ content: detailsPanel,
+ hidden: !location?.pk
},
SegmentedControlPanel({
name: 'sublocations',
@@ -457,7 +454,7 @@ export default function Stock() {
title={(location?.name ?? id) ? t`Stock Location` : t`Stock`}
subtitle={location?.description}
icon={location?.icon && }
- actions={locationActions}
+ actions={location?.pk ? locationActions : undefined}
editAction={editLocation.open}
editEnabled={
!!location?.pk &&
@@ -481,6 +478,7 @@ export default function Stock() {
reloadInstance={refreshInstance}
id={location?.pk}
instance={location}
+ pluginPanelWithoutId
/>
{stockAdjustActions.modals.map((modal) => modal.modal)}
diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx
index c508083616..e22424a130 100644
--- a/src/frontend/src/pages/stock/StockDetail.tsx
+++ b/src/frontend/src/pages/stock/StockDetail.tsx
@@ -21,19 +21,21 @@ import {
IconPackages,
IconSearch,
IconShoppingCart,
- IconSitemap
+ IconSitemap,
+ IconTransform
} from '@tabler/icons-react';
import { useQuery } from '@tanstack/react-query';
import { type ReactNode, useMemo, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import { ActionButton } from '@lib/components/ActionButton';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl, getOverviewUrl } from '@lib/functions/Navigation';
-import type { StockOperationProps } from '@lib/types/Forms';
+import type { ApiFormFieldSet, StockOperationProps } from '@lib/types/Forms';
import { notifications } from '@mantine/notifications';
import { useBarcodeScanDialog } from '../../components/barcodes/BarcodeScanDialog';
import AdminButton from '../../components/buttons/AdminButton';
@@ -53,7 +55,6 @@ import {
EditItemAction,
OptionsActionDropdown
} from '../../components/items/ActionDropdown';
-import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail';
import NavigationTree from '../../components/nav/NavigationTree';
import { PageDetail } from '../../components/nav/PageDetail';
@@ -665,6 +666,26 @@ export default function StockDetail() {
onFormSuccess: refreshInstance
});
+ const convertStockItemFields: ApiFormFieldSet = useMemo(() => {
+ return {
+ part: {
+ filters: {
+ active: true,
+ convert_from: stockitem.part
+ }
+ }
+ };
+ }, [stockitem]);
+
+ const convertStockItem = useCreateApiFormModal({
+ url: ApiEndpoints.stock_convert,
+ pk: stockitem.pk,
+ title: t`Convert Stock Item`,
+ modalId: 'convert-stock-item',
+ fields: convertStockItemFields,
+ onFormSuccess: refreshInstance
+ });
+
const duplicateStockItemFields = useStockFields({
create: true,
modalId: 'duplicate-stock-item'
@@ -824,16 +845,6 @@ export default function StockDetail() {
});
const stockActions = useMemo(() => {
- // Can this stock item be transferred to a different location?
- const canTransfer =
- user.hasChangeRole(UserRoles.stock) &&
- !stockitem.sales_order &&
- !stockitem.belongs_to &&
- !stockitem.customer &&
- !stockitem.consumed_by;
-
- const isBuilding = stockitem.is_building;
-
const serial = stockitem.serial;
const serialized =
serial != null &&
@@ -841,6 +852,10 @@ export default function StockDetail() {
serial != '' &&
stockitem.quantity == 1;
+ const canConvert =
+ !!stockitem.part_detail?.variant_of ||
+ !!stockitem.part_detail?.is_template;
+
return [
,
,
@@ -906,6 +921,13 @@ export default function StockDetail() {
hidden: !user.hasChangeRole(UserRoles.stock),
onClick: () => editStockItem.open()
}),
+ {
+ name: t`Convert`,
+ tooltip: t`Convert this stock item to a different part`,
+ hidden: !user.hasChangeRole(UserRoles.stock) || !canConvert,
+ icon: ,
+ onClick: () => convertStockItem.open()
+ },
DeleteItemAction({
hidden: !user.hasDeleteRole(UserRoles.stock),
onClick: () => deleteStockItem.open()
@@ -1037,8 +1059,9 @@ export default function StockDetail() {
{editStockItem.modal}
- {duplicateStockItem.modal}
{deleteStockItem.modal}
+ {convertStockItem.modal}
+ {duplicateStockItem.modal}
{serializeStockItem.modal}
{stockAdjustActions.modals.map((modal) => modal.modal)}
{orderPartsWizard.wizard}
diff --git a/src/frontend/src/states/LocalState.tsx b/src/frontend/src/states/LocalState.tsx
index 869889439f..d0d7aceaac 100644
--- a/src/frontend/src/states/LocalState.tsx
+++ b/src/frontend/src/states/LocalState.tsx
@@ -36,8 +36,6 @@ interface LocalStateProps {
// panels
lastUsedPanels: Record;
setLastUsedPanel: (panelKey: string) => (value: string) => void;
- detailDrawerStack: number;
- addDetailDrawer: (value: number | false) => void;
navigationOpen: boolean;
setNavigationOpen: (value: boolean) => void;
allowMobile: boolean;
@@ -134,15 +132,6 @@ export const useLocalState = create()(
});
}
},
-
- // detail drawers
- detailDrawerStack: 0,
- addDetailDrawer: (value) => {
- set({
- detailDrawerStack:
- value === false ? 0 : get().detailDrawerStack + value
- });
- },
// navigation
navigationOpen: false,
setNavigationOpen: (value) => {
@@ -162,7 +151,7 @@ export const useLocalState = create()(
/*
pushes changes in user profile to backend
*/
-function patchUser(key: 'language' | 'theme' | 'widgets', val: any) {
+export function patchUser(key: 'language' | 'theme' | 'widgets', val: any) {
const uid = useUserState.getState().userId();
if (uid) {
api.patch(apiUrl(ApiEndpoints.user_profile), { [key]: val });
diff --git a/src/frontend/src/tables/ColumnRenderers.tsx b/src/frontend/src/tables/ColumnRenderers.tsx
index 21c3a1caa0..3c418f1339 100644
--- a/src/frontend/src/tables/ColumnRenderers.tsx
+++ b/src/frontend/src/tables/ColumnRenderers.tsx
@@ -272,16 +272,13 @@ export function StockColumn(props: StockColumnProps): TableColumn {
- {text}
- {part.units && (
-
- [{part.units}]
-
- )}
+ {text}
+ {part.units && [{part.units}]}
}
title={t`Stock Information`}
extra={extra}
+ iconColor={color}
/>
);
}
diff --git a/src/frontend/src/tables/FilterSelectDrawer.tsx b/src/frontend/src/tables/FilterSelectDrawer.tsx
index a737974403..6113f013b1 100644
--- a/src/frontend/src/tables/FilterSelectDrawer.tsx
+++ b/src/frontend/src/tables/FilterSelectDrawer.tsx
@@ -19,6 +19,7 @@ import { DateInput, type DateValue } from '@mantine/dates';
import dayjs from 'dayjs';
import { useCallback, useEffect, useMemo, useState } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import type {
FilterSetState,
TableFilter,
@@ -27,7 +28,6 @@ import type {
} from '@lib/types/Filters';
import { IconCheck } from '@tabler/icons-react';
import { StandaloneField } from '../components/forms/StandaloneField';
-import { StylishText } from '../components/items/StylishText';
import {
filterDisplayLabel,
filterDisplayValue,
diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx
index d290eafb48..89f1117833 100644
--- a/src/frontend/src/tables/InvenTreeTable.tsx
+++ b/src/frontend/src/tables/InvenTreeTable.tsx
@@ -1,12 +1,21 @@
+import { Boundary } from '@lib/components/Boundary';
+import { CopyableCell } from '@lib/components/CopyableCell';
import { RowActions } from '@lib/components/RowActions';
import { ModelInformationDict } from '@lib/enums/ModelInformation';
import { resolveItem } from '@lib/functions/Conversion';
import { cancelEvent } from '@lib/functions/Events';
+import { mapFields } from '@lib/functions/Forms';
import { getDetailUrl } from '@lib/functions/Navigation';
import { navigateToLink } from '@lib/functions/Navigation';
+import { hashString } from '@lib/functions/String';
+import { useStoredTableState } from '@lib/states/StoredTableState';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
-import type { InvenTreeTableProps, TableState } from '@lib/types/Tables';
+import type {
+ InvenTreeTableProps,
+ InvenTreeTableRenderProps,
+ TableState
+} from '@lib/types/Tables';
import type { TableColumn } from '@lib/types/Tables';
import { t } from '@lingui/core/macro';
import { Box, Stack } from '@mantine/core';
@@ -24,16 +33,12 @@ import {
} from 'mantine-datatable';
import type React from 'react';
import { useCallback, useEffect, useMemo, useState } from 'react';
-import { useNavigate } from 'react-router-dom';
-import { Boundary } from '../components/Boundary';
+import { useNavigate, useSearchParams } from 'react-router-dom';
import { useApi } from '../contexts/ApiContext';
-import { extractAvailableFields, mapFields } from '../functions/forms';
+import { extractAvailableFields } from '../functions/forms';
import { showApiErrorMessage } from '../functions/notifications';
-import { hashString } from '../functions/tables';
import { useLocalState } from '../states/LocalState';
import { useUserSettingsState } from '../states/SettingsStates';
-import { useStoredTableState } from '../states/StoredTableState';
-import { CopyableCell } from './CopyableCell';
import InvenTreeTableHeader from './InvenTreeTableHeader';
const ACTIONS_COLUMN_ACCESSOR: string = '--actions--';
@@ -62,20 +67,27 @@ const defaultInvenTreeTableProps: InvenTreeTableProps = {
/**
* Table Component which extends DataTable with custom InvenTree functionality
+ *
+ * This component is not used directly - instead, the "InvenTreeTable" component is a wrapper,
+ * which provides the necessary context and state management for this internal component.
+ *
+ * This function is also provided to the plugin context, and when used by external plugins,
+ * it must be supplied with with following additional context items:
+ * - api: AxiosInstance - The API instance for making requests to the server
+ * - navigate: NavigateFunction - The navigation function for navigating to different pages
*/
-export function InvenTreeTable>({
+export function InvenTreeTableInternal>({
url,
tableState,
tableData,
columns,
- props
-}: Readonly<{
- url?: string;
- tableState: TableState;
- tableData?: any[];
- columns: TableColumn[];
- props: InvenTreeTableProps;
-}>) {
+ props,
+ api,
+ navigate,
+ showContextMenu,
+ searchParams,
+ setSearchParams
+}: Readonly>) {
const { userTheme } = useLocalState();
const {
@@ -91,10 +103,6 @@ export function InvenTreeTable>({
const [fieldNames, setFieldNames] = useState>({});
- const api = useApi();
- const navigate = useNavigate();
- const { showContextMenu } = useContextMenu();
-
const userSettings = useUserSettingsState();
const stickyTableHeader = useMemo(() => {
@@ -388,11 +396,7 @@ export function InvenTreeTable>({
useEffect(() => {
tableState.setPage(1);
tableState.clearSelectedRecords();
- }, [
- tableState.searchTerm,
- tableState.filterSet.activeFilters,
- tableState.queryFilters
- ]);
+ }, [tableState.searchTerm, tableState.filterSet.activeFilters, searchParams]);
// Account for invalid page offsets
useEffect(() => {
@@ -426,9 +430,9 @@ export function InvenTreeTable>({
...tableProps.params
};
- if (tableState.queryFilters && tableState.queryFilters.size > 0) {
+ if (searchParams && searchParams.size > 0) {
// Allow override of filters based on URL query parameters
- for (const [key, value] of tableState.queryFilters) {
+ for (const [key, value] of searchParams) {
queryParams[key] = value;
}
} else if (tableState.filterSet.activeFilters) {
@@ -467,7 +471,7 @@ export function InvenTreeTable>({
tableProps.params,
tableProps.enablePagination,
tableState.filterSet.activeFilters,
- tableState.queryFilters,
+ searchParams,
tableState.searchTerm,
getOrderingTerm
]
@@ -609,7 +613,7 @@ export function InvenTreeTable>({
// Refetch data when the query parameters change
useEffect(() => {
refetch();
- }, [tableState.queryFilters]);
+ }, [searchParams]);
useEffect(() => {
const loading: boolean =
@@ -705,7 +709,7 @@ export function InvenTreeTable>({
const empty = () => {};
let items: ContextMenuItemOptions[] = [];
- if (props.rowActions) {
+ if (!!props.rowActions) {
items = props.rowActions(record).map((action) => ({
key: action.title ?? '',
title: action.title ?? '',
@@ -743,7 +747,7 @@ export function InvenTreeTable>({
});
}
- return showContextMenu(items)(event);
+ return showContextMenu?.(items)(event);
};
// Pagination refresh table if pageSize changes
@@ -825,6 +829,8 @@ export function InvenTreeTable>({
hasSwitchableColumns={hasSwitchableColumns}
columns={dataColumns}
filters={filters}
+ queryFilters={searchParams}
+ clearQueryFilters={() => setSearchParams?.(new URLSearchParams())}
toggleColumn={toggleColumn}
/>
@@ -835,7 +841,9 @@ export function InvenTreeTable>({
style={{
stickyHeader: stickyTableHeader ? 'top' : undefined
}}
- height={stickyTableHeader ? '80vh' : undefined}
+ height={
+ tableProps.height ?? (stickyTableHeader ? '80vh' : undefined)
+ }
withTableBorder={!tableProps.noHeader}
withColumnBorders
striped
@@ -874,3 +882,51 @@ export function InvenTreeTable>({
>
);
}
+
+/**
+ * This is an internal wrapper function for the InvenTreeTableInternal component,
+ * which provides the necessary context management for the table to function correctly.
+ *
+ * In addition to the provided table props, this wrapper provides context for:
+ *
+ * - api: The API instance for making requests to the server
+ * - navigate: The navigation function for navigating to different pages
+ *
+ */
+export function InvenTreeTable>({
+ url,
+ tableState,
+ tableData,
+ columns,
+ props
+}: Readonly<{
+ url?: string;
+ tableState: TableState;
+ tableData?: T[];
+ columns: TableColumn[];
+ props: InvenTreeTableProps;
+}>) {
+ const api = useApi();
+ const navigate = useNavigate();
+
+ const { showContextMenu } = useContextMenu();
+
+ // Extract URL query parameters (e.g. ?active=true&overdue=false)
+ // Note: These can only be used internally (i.e *not in plugin context)
+ const [searchParams, setSearchParams] = useSearchParams();
+
+ return (
+
+ );
+}
diff --git a/src/frontend/src/tables/InvenTreeTableHeader.tsx b/src/frontend/src/tables/InvenTreeTableHeader.tsx
index d5d6b45c27..612b6ba06d 100644
--- a/src/frontend/src/tables/InvenTreeTableHeader.tsx
+++ b/src/frontend/src/tables/InvenTreeTableHeader.tsx
@@ -23,19 +23,19 @@ import { useMemo, useState } from 'react';
import { Fragment } from 'react/jsx-runtime';
import { ActionButton } from '@lib/components/ActionButton';
+import { Boundary } from '@lib/components/Boundary';
import { ButtonMenu } from '@lib/components/ButtonMenu';
import { SearchInput } from '@lib/components/SearchInput';
+import { StylishText } from '@lib/components/StylishText';
+import { TableColumnSelect } from '@lib/components/TableColumnSelect';
import { resolveItem } from '@lib/functions/Conversion';
import type { TableFilter } from '@lib/types/Filters';
import type { TableState } from '@lib/types/Tables';
import type { InvenTreeTableProps } from '@lib/types/Tables';
import { showNotification } from '@mantine/notifications';
-import { Boundary } from '../components/Boundary';
import { PrintingActions } from '../components/buttons/PrintingActions';
-import { StylishText } from '../components/items/StylishText';
import useDataExport from '../hooks/UseDataExport';
import { useDeleteApiFormModal } from '../hooks/UseForm';
-import { TableColumnSelect } from './ColumnSelect';
import { FilterPreview, FilterSelectDrawer } from './FilterSelectDrawer';
/**
@@ -48,6 +48,8 @@ export default function InvenTreeTableHeader({
hasSwitchableColumns,
columns,
filters,
+ queryFilters,
+ clearQueryFilters,
toggleColumn
}: Readonly<{
tableUrl?: string;
@@ -56,6 +58,8 @@ export default function InvenTreeTableHeader({
hasSwitchableColumns: boolean;
columns: any;
filters: TableFilter[];
+ queryFilters?: URLSearchParams;
+ clearQueryFilters: () => void;
toggleColumn: (column: string) => void;
}>) {
// Filter list visibility
@@ -80,8 +84,8 @@ export default function InvenTreeTableHeader({
}
// Allow overriding of query parameters
- if (tableState.queryFilters) {
- for (const [key, value] of tableState.queryFilters) {
+ if (queryFilters) {
+ for (const [key, value] of queryFilters) {
if (value != undefined) {
filters[key] = value;
}
@@ -89,7 +93,7 @@ export default function InvenTreeTableHeader({
}
return filters;
- }, [tableProps.params, tableState.filterSet, tableState.queryFilters]);
+ }, [tableProps.params, tableState.filterSet, queryFilters]);
const exportModal = useDataExport({
url: tableUrl ?? '',
@@ -139,12 +143,12 @@ export default function InvenTreeTableHeader({
});
const hasCustomSearch = useMemo(() => {
- return tableState.queryFilters.has('search');
- }, [tableState.queryFilters]);
+ return queryFilters?.has('search');
+ }, [queryFilters]);
const hasCustomFilters = useMemo(() => {
- return (tableState?.queryFilters?.size ?? 0) > 0;
- }, [tableState.queryFilters]);
+ return (queryFilters?.size ?? 0) > 0;
+ }, [queryFilters]);
// Extract ID values for label and report printing
const printingIdValues = useMemo(() => {
@@ -174,7 +178,7 @@ export default function InvenTreeTableHeader({
color='yellow'
withCloseButton
title={t`Custom table filters are active`}
- onClose={() => tableState.clearQueryFilters()}
+ onClose={() => clearQueryFilters()}
/>
)}
diff --git a/src/frontend/src/tables/bom/BomSubassemblyTable.tsx b/src/frontend/src/tables/bom/BomSubassemblyTable.tsx
new file mode 100644
index 0000000000..badf18e75d
--- /dev/null
+++ b/src/frontend/src/tables/bom/BomSubassemblyTable.tsx
@@ -0,0 +1,123 @@
+import { ApiEndpoints, ModelType, apiUrl, useTable } from '@lib/index';
+import type { TableColumn, TableState } from '@lib/types/Tables';
+import { Group, Paper } from '@mantine/core';
+import { IconCornerLeftUp } from '@tabler/icons-react';
+import { useMemo } from 'react';
+import Expand from '../../components/items/Expand';
+import { useUserSettingsState } from '../../states/SettingsStates';
+import {
+ IPNColumn,
+ ReferenceColumn,
+ RenderPartColumn
+} from '../ColumnRenderers';
+import { InvenTreeTable } from '../InvenTreeTable';
+import RowExpansionIcon from '../RowExpansionIcon';
+
+export function subassemblyRowExpansion({
+ table
+}: {
+ table: TableState;
+}) {
+ const userSettings = useUserSettingsState();
+
+ return useMemo(() => {
+ // Display of sub-assemblies is optional
+ if (!userSettings.isSet('SHOW_BOM_SUBASSEMBLY_LEVELS')) {
+ return undefined;
+ }
+
+ return {
+ allowMultiple: true,
+ expandable: ({ record }: { record: any }) => {
+ return (
+ table.isRowExpanded(record.pk) || !!record.sub_part_detail?.assembly
+ );
+ },
+ content: ({ record }: { record: any }) => {
+ return ;
+ }
+ };
+ }, [table.isRowExpanded, userSettings]);
+}
+
+/**
+ * Display a sub-table of the BOM, for displaying sub-assemblies within the main BOM table.
+ */
+export default function BomSubassemblyTable({
+ partId
+}: {
+ partId: number;
+}) {
+ const table = useTable('bom-subassembly');
+
+ const rowExpansion = subassemblyRowExpansion({ table: table });
+
+ const userSettings = useUserSettingsState();
+
+ const tableColumns: TableColumn[] = useMemo(() => {
+ const allowExpansion = userSettings.isSet('SHOW_BOM_SUBASSEMBLY_LEVELS');
+
+ return [
+ {
+ accessor: 'sub_part',
+ render: (record: any) => {
+ return (
+
+ {record.sub_part_detail?.assembly && allowExpansion && (
+
+ )}
+
+
+ );
+ }
+ },
+ IPNColumn({
+ accessor: 'sub_part_detail.IPN'
+ }),
+ ReferenceColumn({
+ width: 400
+ }),
+ {
+ accessor: 'quantity',
+ width: 250
+ }
+ ];
+ }, [table.isRowExpanded, userSettings]);
+
+ return (
+
+
+
+
+ {},
+ rowExpansion: rowExpansion,
+ enableSearch: false,
+ enableFilters: false,
+ enableColumnSwitching: false,
+ enableRefresh: false,
+ enableReports: false,
+ height: 'auto',
+ minHeight: 150,
+ params: {
+ part: partId,
+ substitutes: false,
+ part_detail: true,
+ sub_part_detail: true
+ }
+ }}
+ />
+
+
+
+ );
+}
diff --git a/src/frontend/src/tables/bom/BomTable.tsx b/src/frontend/src/tables/bom/BomTable.tsx
index 09a2c7ee1c..89cc217bf3 100644
--- a/src/frontend/src/tables/bom/BomTable.tsx
+++ b/src/frontend/src/tables/bom/BomTable.tsx
@@ -1,3 +1,19 @@
+import { t } from '@lingui/core/macro';
+import { Alert, Group, Stack, Text } from '@mantine/core';
+import { showNotification } from '@mantine/notifications';
+import {
+ IconArrowRight,
+ IconCircleCheck,
+ IconEdit,
+ IconFileUpload,
+ IconLock,
+ IconPlus,
+ IconSwitch3
+} from '@tabler/icons-react';
+import { type ReactNode, useCallback, useMemo, useState } from 'react';
+import { useNavigate } from 'react-router-dom';
+
+import { ActionButton } from '@lib/components/ActionButton';
import {
type RowAction,
RowDeleteAction,
@@ -9,23 +25,9 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { navigateToLink } from '@lib/functions/Navigation';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
-import { t } from '@lingui/core/macro';
-import { ActionIcon, Alert, Group, Stack, Text, Tooltip } from '@mantine/core';
-import { showNotification } from '@mantine/notifications';
-import {
- IconArrowRight,
- IconCircleCheck,
- IconExclamationCircle,
- IconFileUpload,
- IconLock,
- IconPlus,
- IconSwitch3
-} from '@tabler/icons-react';
-import { type ReactNode, useCallback, useMemo, useState } from 'react';
-import { useNavigate } from 'react-router-dom';
-import { Thumbnail } from '../../components/images/Thumbnail';
import { ActionDropdown } from '../../components/items/ActionDropdown';
import { RenderPart } from '../../components/render/Part';
import { useApi } from '../../contexts/ApiContext';
@@ -37,8 +39,8 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useImporterState } from '../../states/ImporterState';
+import { useUserSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
import {
BooleanColumn,
@@ -46,11 +48,14 @@ import {
DescriptionColumn,
IPNColumn,
NoteColumn,
- ReferenceColumn
+ ReferenceColumn,
+ RenderPartColumn
} from '../ColumnRenderers';
import { PartCategoryFilter } from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable';
+import RowExpansionIcon from '../RowExpansionIcon';
import { TableHoverCard } from '../TableHoverCard';
+import { subassemblyRowExpansion } from './BomSubassemblyTable';
// Calculate the total stock quantity available for a given BomItem
function availableStockQuantity(record: any): number {
@@ -81,46 +86,64 @@ export function BomTable({
const user = useUserState();
const table = useTable('bom');
const navigate = useNavigate();
+
const openImporter = useImporterState((state) => state.openImporter);
+ const [isEditing, setIsEditing] = useState(false);
+
+ const userSettings = useUserSettingsState();
+
const tableColumns: TableColumn[] = useMemo(() => {
+ const allowExpansion = userSettings.isSet('SHOW_BOM_SUBASSEMBLY_LEVELS');
+
return [
{
accessor: 'sub_part',
switchable: false,
sortable: true,
+ minWidth: 250,
render: (record: any) => {
const part = record.sub_part_detail;
+
const extra = [];
- if (record.part != partId) {
+ if (partId && record.part != partId) {
extra.push(
- {t`This BOM item is defined for a different parent`}
+ {t`This BOM item is defined for a different parent`}
);
}
+ if (!record.validated) {
+ extra.push(
+
+ {t`This BOM item has not been validated`}
+
+ );
+ }
+
+ const assembly: boolean = record.sub_part_detail?.assembly ?? false;
+
return (
part && (
-
-
- }
- extra={extra}
- title={t`Part Information`}
- />
- {!record.validated && (
-
-
-
-
-
- )}
-
+
+ {assembly && !isEditing && allowExpansion && (
+
+ )}
+
+
+ }
+ iconColor={record.validated ? undefined : 'red'}
+ extra={extra}
+ title={t`Part Information`}
+ />
)
);
}
@@ -377,7 +400,8 @@ export function BomTable({
return '-';
}
- const can_build = Math.trunc(record.can_build);
+ const can_build = Math.max(0, Math.trunc(record.can_build));
+
const value = (
{
return [
@@ -530,7 +554,7 @@ export function BomTable({
table: table
});
- const editSubstitues = useEditBomSubstitutesForm({
+ const editSubstitutes = useEditBomSubstitutesForm({
bomItemId: selectedBomItem.pk,
bomItem: selectedBomItem,
onClose: () => {
@@ -583,14 +607,14 @@ export function BomTable({
hidden:
partLocked ||
record.validated ||
- !user.hasChangeRole(UserRoles.part),
+ !user.hasChangeRole(UserRoles.bom),
icon: ,
onClick: () => {
validateBomItem(record);
}
},
RowEditAction({
- hidden: partLocked || !user.hasChangeRole(UserRoles.part),
+ hidden: partLocked || !user.hasChangeRole(UserRoles.bom),
onClick: () => {
setSelectedBomItem(record);
editBomItem.open();
@@ -599,15 +623,15 @@ export function BomTable({
{
title: t`Edit Substitutes`,
color: 'blue',
- hidden: partLocked || !user.hasAddRole(UserRoles.part),
+ hidden: partLocked || !user.hasAddRole(UserRoles.bom),
icon: ,
onClick: () => {
setSelectedBomItem(record);
- editSubstitues.open();
+ editSubstitutes.open();
}
},
RowDeleteAction({
- hidden: partLocked || !user.hasDeleteRole(UserRoles.part),
+ hidden: partLocked || !user.hasDeleteRole(UserRoles.bom),
onClick: () => {
setSelectedBomItem(record);
deleteBomItem.open();
@@ -615,7 +639,7 @@ export function BomTable({
})
];
},
- [partId, partLocked, user]
+ [isEditing, partId, partLocked, user]
);
const tableActions = useMemo(() => {
@@ -625,7 +649,7 @@ export function BomTable({
tooltip={t`Add BOM Items`}
position='bottom-start'
icon={}
- hidden={partLocked || !user.hasAddRole(UserRoles.part)}
+ hidden={!isEditing || partLocked || !user.hasAddRole(UserRoles.bom)}
actions={[
{
name: t`Add BOM Item`,
@@ -640,9 +664,32 @@ export function BomTable({
onClick: () => importBomItem.open()
}
]}
+ />,
+ }
+ onClick={() => {
+ setIsEditing(true);
+ }}
+ />,
+ }
+ onClick={() => {
+ setIsEditing(false);
+ table.refreshTable();
+ }}
/>
];
- }, [partLocked, user]);
+ }, [isEditing, partLocked, user]);
+
+ // Row expansion (for displaying subassemblies)
+ const rowExpansion = subassemblyRowExpansion({ table: table });
return (
<>
@@ -650,7 +697,7 @@ export function BomTable({
{newBomItem.modal}
{editBomItem.modal}
{deleteBomItem.modal}
- {editSubstitues.modal}
+ {editSubstitutes.modal}
{partLocked && (
{},
+ rowActions: isEditing ? rowActions : undefined,
+ enableSelection: isEditing && !partLocked,
+ enableBulkDelete:
+ isEditing && !partLocked && user.hasDeleteRole(UserRoles.bom),
+ enableDownload: true,
+ rowExpansion: isEditing ? undefined : rowExpansion
}}
/>
diff --git a/src/frontend/src/tables/bom/UsedInTable.tsx b/src/frontend/src/tables/bom/UsedInTable.tsx
index 0134d1a4ec..059e0dbc9a 100644
--- a/src/frontend/src/tables/bom/UsedInTable.tsx
+++ b/src/frontend/src/tables/bom/UsedInTable.tsx
@@ -5,13 +5,13 @@ import { useCallback, useMemo, useState } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { RowEditAction, UserRoles } from '@lib/index';
import type { TableFilter } from '@lib/types/Filters';
import type { RowAction, TableColumn } from '@lib/types/Tables';
import { formatDecimal } from '../../defaults/formatters';
import { bomItemFields } from '../../forms/BomForms';
import { useEditApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DescriptionColumn,
@@ -42,7 +42,7 @@ export function UsedInTable({
part: 'part_detail'
}),
IPNColumn({
- sortable: false
+ sortable: true
}),
{
accessor: 'part_detail.revision',
diff --git a/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx b/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx
index bbeff526d3..ca70958099 100644
--- a/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx
+++ b/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx
@@ -6,6 +6,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { ActionButton, formatDecimal } from '@lib/index';
import type { TableFilter } from '@lib/types/Filters';
import type { StockOperationProps } from '@lib/types/Forms';
@@ -19,7 +20,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import { useStockAdjustActions } from '../../hooks/UseStockAdjustActions';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DecimalColumn,
diff --git a/src/frontend/src/tables/build/BuildLineTable.tsx b/src/frontend/src/tables/build/BuildLineTable.tsx
index 559303666a..2e0a07a18a 100644
--- a/src/frontend/src/tables/build/BuildLineTable.tsx
+++ b/src/frontend/src/tables/build/BuildLineTable.tsx
@@ -22,6 +22,7 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { formatDecimal } from '@lib/functions/Formatting';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { RowAction, TableColumn } from '@lib/types/Tables';
import OrderPartsWizard from '../../components/wizards/OrderPartsWizard';
@@ -38,7 +39,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import useStatusCodes from '../../hooks/UseStatusCodes';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
BooleanColumn,
diff --git a/src/frontend/src/tables/build/BuildOrderTable.tsx b/src/frontend/src/tables/build/BuildOrderTable.tsx
index b4480256ca..bc875ebb37 100644
--- a/src/frontend/src/tables/build/BuildOrderTable.tsx
+++ b/src/frontend/src/tables/build/BuildOrderTable.tsx
@@ -7,10 +7,10 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import { useBuildOrderFields } from '../../forms/BuildForms';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
import {
diff --git a/src/frontend/src/tables/build/BuildOutputTable.tsx b/src/frontend/src/tables/build/BuildOutputTable.tsx
index f02c28e92a..9b3f182a5e 100644
--- a/src/frontend/src/tables/build/BuildOutputTable.tsx
+++ b/src/frontend/src/tables/build/BuildOutputTable.tsx
@@ -24,14 +24,15 @@ import { ActionButton } from '@lib/components/ActionButton';
import { AddItemButton } from '@lib/components/AddItemButton';
import { ProgressBar } from '@lib/components/ProgressBar';
import { type RowAction, RowEditAction } from '@lib/components/RowActions';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { StockOperationProps } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
-import { StylishText } from '../../components/items/StylishText';
import { useApi } from '../../contexts/ApiContext';
import {
useBuildAutoAllocateFields,
@@ -52,7 +53,6 @@ import {
} from '../../hooks/UseForm';
import useStatusCodes from '../../hooks/UseStatusCodes';
import { useStockAdjustActions } from '../../hooks/UseStockAdjustActions';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
LocationColumn,
diff --git a/src/frontend/src/tables/company/AddressTable.tsx b/src/frontend/src/tables/company/AddressTable.tsx
index a51e381c18..8114bf1f24 100644
--- a/src/frontend/src/tables/company/AddressTable.tsx
+++ b/src/frontend/src/tables/company/AddressTable.tsx
@@ -11,6 +11,7 @@ import { YesNoButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
import {
@@ -18,7 +19,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { LinkColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/company/CompanyTable.tsx b/src/frontend/src/tables/company/CompanyTable.tsx
index 13d9c61159..9856579709 100644
--- a/src/frontend/src/tables/company/CompanyTable.tsx
+++ b/src/frontend/src/tables/company/CompanyTable.tsx
@@ -9,13 +9,13 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { navigateToLink } from '@lib/functions/Navigation';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import { companyFields } from '../../forms/CompanyForms';
import {
useCreateApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
BooleanColumn,
diff --git a/src/frontend/src/tables/company/ContactTable.tsx b/src/frontend/src/tables/company/ContactTable.tsx
index 33082b96b3..b2dcbb95ce 100644
--- a/src/frontend/src/tables/company/ContactTable.tsx
+++ b/src/frontend/src/tables/company/ContactTable.tsx
@@ -12,6 +12,7 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
+import useTable from '@lib/hooks/UseTable';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
import { useNavigate } from 'react-router-dom';
@@ -21,7 +22,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/general/AttachmentTable.tsx b/src/frontend/src/tables/general/AttachmentTable.tsx
index 5b5e2ff58a..9608b79ace 100644
--- a/src/frontend/src/tables/general/AttachmentTable.tsx
+++ b/src/frontend/src/tables/general/AttachmentTable.tsx
@@ -22,6 +22,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -33,7 +34,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/general/BarcodeScanTable.tsx b/src/frontend/src/tables/general/BarcodeScanTable.tsx
index 60b2546e73..ad67ff523d 100644
--- a/src/frontend/src/tables/general/BarcodeScanTable.tsx
+++ b/src/frontend/src/tables/general/BarcodeScanTable.tsx
@@ -1,5 +1,6 @@
import { ActionButton } from '@lib/components/ActionButton';
import { type RowAction, RowViewAction } from '@lib/components/RowActions';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { t } from '@lingui/core/macro';
import { IconTrash } from '@tabler/icons-react';
@@ -7,7 +8,6 @@ import { useCallback, useEffect, useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
import type { BarcodeScanItem } from '../../components/barcodes/BarcodeScanItem';
import { RenderInstance } from '../../components/render/Instance';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/general/ExtraLineItemTable.tsx b/src/frontend/src/tables/general/ExtraLineItemTable.tsx
index 299a7b07ef..88b490a21f 100644
--- a/src/frontend/src/tables/general/ExtraLineItemTable.tsx
+++ b/src/frontend/src/tables/general/ExtraLineItemTable.tsx
@@ -11,6 +11,7 @@ import {
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { formatCurrency } from '../../defaults/formatters';
import { extraLineItemFields } from '../../forms/CommonForms';
@@ -19,7 +20,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DecimalColumn,
diff --git a/src/frontend/src/tables/general/ParameterTable.tsx b/src/frontend/src/tables/general/ParameterTable.tsx
index 71ced6820f..6883682ab0 100644
--- a/src/frontend/src/tables/general/ParameterTable.tsx
+++ b/src/frontend/src/tables/general/ParameterTable.tsx
@@ -1,3 +1,4 @@
+import useTable from '@lib/hooks/UseTable';
import {
ApiEndpoints,
ModelType,
@@ -20,7 +21,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useImporterState } from '../../states/ImporterState';
import { useUserState } from '../../states/UserState';
import {
diff --git a/src/frontend/src/tables/general/ParameterTemplateTable.tsx b/src/frontend/src/tables/general/ParameterTemplateTable.tsx
index ee37a464b5..035dfc3260 100644
--- a/src/frontend/src/tables/general/ParameterTemplateTable.tsx
+++ b/src/frontend/src/tables/general/ParameterTemplateTable.tsx
@@ -1,3 +1,4 @@
+import useTable from '@lib/hooks/UseTable';
import {
AddItemButton,
ApiEndpoints,
@@ -12,13 +13,13 @@ import type { TableFilter } from '@lib/types/Filters';
import type { RowAction, TableColumn } from '@lib/types/Tables';
import { t } from '@lingui/core/macro';
import { useCallback, useMemo, useState } from 'react';
+import { useParameterTemplateFields } from '../../forms/CommonForms';
import { useFilters } from '../../hooks/UseFilter';
import {
useCreateApiFormModal,
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
@@ -30,22 +31,7 @@ export default function ParameterTemplateTable() {
const table = useTable('parameter-templates');
const user = useUserState();
- const parameterTemplateFields: ApiFormFieldSet = useMemo(() => {
- return {
- name: {},
- description: {},
- units: {},
- model_type: {},
- choices: {},
- checkbox: {},
- selectionlist: {
- filters: {
- active: true
- }
- },
- enabled: {}
- };
- }, []);
+ const parameterTemplateFields: ApiFormFieldSet = useParameterTemplateFields();
const newTemplate = useCreateApiFormModal({
url: ApiEndpoints.parameter_template_list,
diff --git a/src/frontend/src/tables/general/ParametricDataTable.tsx b/src/frontend/src/tables/general/ParametricDataTable.tsx
index 0bfa12a62c..5d22505190 100644
--- a/src/frontend/src/tables/general/ParametricDataTable.tsx
+++ b/src/frontend/src/tables/general/ParametricDataTable.tsx
@@ -1,4 +1,5 @@
import { cancelEvent } from '@lib/functions/Events';
+import useTable from '@lib/hooks/UseTable';
import {
ApiEndpoints,
type ApiFormFieldSet,
@@ -25,7 +26,6 @@ import {
useCreateApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
import { TableHoverCard } from '../TableHoverCard';
diff --git a/src/frontend/src/tables/machine/MachineListTable.tsx b/src/frontend/src/tables/machine/MachineListTable.tsx
index 7ded77a8cf..d6e1e1d74a 100644
--- a/src/frontend/src/tables/machine/MachineListTable.tsx
+++ b/src/frontend/src/tables/machine/MachineListTable.tsx
@@ -23,9 +23,15 @@ import { useCallback, useMemo, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { AddItemButton } from '@lib/components/AddItemButton';
+import { StylishText } from '@lib/components/StylishText';
import { YesNoButton } from '@lib/components/YesNoButton';
+import {
+ DetailDrawer,
+ DetailDrawerLink
+} from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { RowDeleteAction, RowEditAction, formatDecimal } from '@lib/index';
import type { RowAction, TableColumn } from '@lib/types/Tables';
import type { InvenTreeTableProps } from '@lib/types/Tables';
@@ -37,12 +43,7 @@ import {
OptionsActionDropdown
} from '../../components/items/ActionDropdown';
import { InfoItem } from '../../components/items/InfoItem';
-import { StylishText } from '../../components/items/StylishText';
import { UnavailableIndicator } from '../../components/items/UnavailableIndicator';
-import {
- DetailDrawer,
- DetailDrawerLink
-} from '../../components/nav/DetailDrawer';
import {
StatusRenderer,
TableStatusRenderer
@@ -54,7 +55,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { BooleanColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
import type { MachineDriverI, MachineTypeI } from './MachineTypeTable';
diff --git a/src/frontend/src/tables/machine/MachineTypeTable.tsx b/src/frontend/src/tables/machine/MachineTypeTable.tsx
index c9aebc29e8..37f38cc4a0 100644
--- a/src/frontend/src/tables/machine/MachineTypeTable.tsx
+++ b/src/frontend/src/tables/machine/MachineTypeTable.tsx
@@ -18,14 +18,14 @@ import { IconExclamationCircle, IconRefresh } from '@tabler/icons-react';
import { useMemo } from 'react';
import { useNavigate } from 'react-router-dom';
+import { StylishText } from '@lib/components/StylishText';
+import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import type { InvenTreeTableProps } from '@lib/types/Tables';
import { InfoItem } from '../../components/items/InfoItem';
-import { StylishText } from '../../components/items/StylishText';
-import { DetailDrawer } from '../../components/nav/DetailDrawer';
-import { useTable } from '../../hooks/UseTable';
import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
import { MachineListTable, useMachineTypeDriver } from './MachineListTable';
diff --git a/src/frontend/src/tables/part/PartBuildAllocationsTable.tsx b/src/frontend/src/tables/part/PartBuildAllocationsTable.tsx
index ee4b58f650..47b2dc5d42 100644
--- a/src/frontend/src/tables/part/PartBuildAllocationsTable.tsx
+++ b/src/frontend/src/tables/part/PartBuildAllocationsTable.tsx
@@ -10,10 +10,10 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { IconCircleCheck } from '@tabler/icons-react';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DescriptionColumn,
diff --git a/src/frontend/src/tables/part/PartCategoryTable.tsx b/src/frontend/src/tables/part/PartCategoryTable.tsx
index 3505b45da6..6c972f6321 100644
--- a/src/frontend/src/tables/part/PartCategoryTable.tsx
+++ b/src/frontend/src/tables/part/PartCategoryTable.tsx
@@ -10,6 +10,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { ActionDropdown } from '../../components/items/ActionDropdown';
@@ -21,7 +22,6 @@ import {
useCreateApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/part/PartCategoryTemplateTable.tsx b/src/frontend/src/tables/part/PartCategoryTemplateTable.tsx
index 604e18609a..362c863e23 100644
--- a/src/frontend/src/tables/part/PartCategoryTemplateTable.tsx
+++ b/src/frontend/src/tables/part/PartCategoryTemplateTable.tsx
@@ -11,6 +11,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -19,7 +20,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/part/PartPurchaseOrdersTable.tsx b/src/frontend/src/tables/part/PartPurchaseOrdersTable.tsx
index 213d081c7a..f4cff53948 100644
--- a/src/frontend/src/tables/part/PartPurchaseOrdersTable.tsx
+++ b/src/frontend/src/tables/part/PartPurchaseOrdersTable.tsx
@@ -6,10 +6,10 @@ import { ProgressBar } from '@lib/components/ProgressBar';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { formatCurrency, formatDecimal } from '../../defaults/formatters';
-import { useTable } from '../../hooks/UseTable';
import { DateColumn, ReferenceColumn, StatusColumn } from '../ColumnRenderers';
import { IncludeVariantsFilter, StatusFilterOptions } from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/part/PartSalesAllocationsTable.tsx b/src/frontend/src/tables/part/PartSalesAllocationsTable.tsx
index 516bb456de..e74d4d7dad 100644
--- a/src/frontend/src/tables/part/PartSalesAllocationsTable.tsx
+++ b/src/frontend/src/tables/part/PartSalesAllocationsTable.tsx
@@ -10,9 +10,9 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DescriptionColumn,
diff --git a/src/frontend/src/tables/part/PartTable.tsx b/src/frontend/src/tables/part/PartTable.tsx
index 27fa146186..0041e77ae8 100644
--- a/src/frontend/src/tables/part/PartTable.tsx
+++ b/src/frontend/src/tables/part/PartTable.tsx
@@ -7,6 +7,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -33,7 +34,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import { usePluginsWithMixin } from '../../hooks/UsePlugins';
-import { useTable } from '../../hooks/UseTable';
import { useImporterState } from '../../states/ImporterState';
import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
diff --git a/src/frontend/src/tables/part/PartTestResultTable.tsx b/src/frontend/src/tables/part/PartTestResultTable.tsx
index 6a67fb4a20..a2079ee6a7 100644
--- a/src/frontend/src/tables/part/PartTestResultTable.tsx
+++ b/src/frontend/src/tables/part/PartTestResultTable.tsx
@@ -15,6 +15,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import { cancelEvent } from '@lib/functions/Events';
+import useTable from '@lib/hooks/UseTable';
import { AddItemButton } from '@lib/index';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
@@ -25,7 +26,6 @@ import { useApi } from '../../contexts/ApiContext';
import { formatDate } from '../../defaults/formatters';
import { useTestResultFields } from '../../forms/StockForms';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { LocationColumn, PartColumn } from '../ColumnRenderers';
import {
BatchFilter,
diff --git a/src/frontend/src/tables/part/PartTestTemplateTable.tsx b/src/frontend/src/tables/part/PartTestTemplateTable.tsx
index f1779b8b05..fc8bb02081 100644
--- a/src/frontend/src/tables/part/PartTestTemplateTable.tsx
+++ b/src/frontend/src/tables/part/PartTestTemplateTable.tsx
@@ -17,6 +17,7 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -25,7 +26,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/part/RelatedPartTable.tsx b/src/frontend/src/tables/part/RelatedPartTable.tsx
index ab9f098e5f..1714239287 100644
--- a/src/frontend/src/tables/part/RelatedPartTable.tsx
+++ b/src/frontend/src/tables/part/RelatedPartTable.tsx
@@ -12,6 +12,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
import { Thumbnail } from '../../components/images/Thumbnail';
@@ -20,7 +21,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { NoteColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/part/SelectionListTable.tsx b/src/frontend/src/tables/part/SelectionListTable.tsx
index 0914639314..a63b84670a 100644
--- a/src/frontend/src/tables/part/SelectionListTable.tsx
+++ b/src/frontend/src/tables/part/SelectionListTable.tsx
@@ -10,6 +10,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { selectionListFields } from '../../forms/selectionListFields';
import {
@@ -17,7 +18,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/plugin/PluginErrorTable.tsx b/src/frontend/src/tables/plugin/PluginErrorTable.tsx
index 4f3d5212da..bec6fda561 100644
--- a/src/frontend/src/tables/plugin/PluginErrorTable.tsx
+++ b/src/frontend/src/tables/plugin/PluginErrorTable.tsx
@@ -4,8 +4,8 @@ import { useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
-import { useTable } from '../../hooks/UseTable';
import { InvenTreeTable } from '../InvenTreeTable';
export interface PluginRegistryErrorI {
diff --git a/src/frontend/src/tables/plugin/PluginListTable.tsx b/src/frontend/src/tables/plugin/PluginListTable.tsx
index 580414ffaa..9d6bd20f21 100644
--- a/src/frontend/src/tables/plugin/PluginListTable.tsx
+++ b/src/frontend/src/tables/plugin/PluginListTable.tsx
@@ -15,10 +15,11 @@ import { useNavigate } from 'react-router-dom';
import { ActionButton } from '@lib/components/ActionButton';
import type { RowAction } from '@lib/components/RowActions';
+import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
-import { DetailDrawer } from '../../components/nav/DetailDrawer';
import PluginDrawer from '../../components/plugins/PluginDrawer';
import type { PluginInterface } from '../../components/plugins/PluginInterface';
import { useApi } from '../../contexts/ApiContext';
@@ -27,7 +28,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useServerApiState } from '../../states/ServerApiState';
import { useUserState } from '../../states/UserState';
import { BooleanColumn, LinkColumn } from '../ColumnRenderers';
diff --git a/src/frontend/src/tables/purchasing/ManufacturerPartTable.tsx b/src/frontend/src/tables/purchasing/ManufacturerPartTable.tsx
index 4c371ad104..34db4ccab7 100644
--- a/src/frontend/src/tables/purchasing/ManufacturerPartTable.tsx
+++ b/src/frontend/src/tables/purchasing/ManufacturerPartTable.tsx
@@ -12,6 +12,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { useManufacturerPartFields } from '../../forms/CompanyForms';
@@ -20,7 +21,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
CompanyColumn,
diff --git a/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx b/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx
index b3dc66dd34..3eb214f0af 100644
--- a/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx
+++ b/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx
@@ -18,6 +18,7 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { formatDecimal } from '@lib/functions/Formatting';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { useNavigate } from 'react-router-dom';
@@ -34,7 +35,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import useStatusCodes from '../../hooks/UseStatusCodes';
-import { useTable } from '../../hooks/UseTable';
import { useImporterState } from '../../states/ImporterState';
import { useUserState } from '../../states/UserState';
import {
diff --git a/src/frontend/src/tables/purchasing/PurchaseOrderTable.tsx b/src/frontend/src/tables/purchasing/PurchaseOrderTable.tsx
index 7f9b4e1465..9775391b05 100644
--- a/src/frontend/src/tables/purchasing/PurchaseOrderTable.tsx
+++ b/src/frontend/src/tables/purchasing/PurchaseOrderTable.tsx
@@ -6,11 +6,11 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import { formatCurrency } from '../../defaults/formatters';
import { usePurchaseOrderFields } from '../../forms/PurchaseOrderForms';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
CompanyColumn,
diff --git a/src/frontend/src/tables/purchasing/SupplierPartTable.tsx b/src/frontend/src/tables/purchasing/SupplierPartTable.tsx
index ef75f6ade5..4cae53fa9f 100644
--- a/src/frontend/src/tables/purchasing/SupplierPartTable.tsx
+++ b/src/frontend/src/tables/purchasing/SupplierPartTable.tsx
@@ -14,6 +14,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { IconPackageImport } from '@tabler/icons-react';
@@ -25,7 +26,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import { usePluginsWithMixin } from '../../hooks/UsePlugins';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
BooleanColumn,
diff --git a/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx b/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx
index 489a19bf0c..4328a71db7 100644
--- a/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx
+++ b/src/frontend/src/tables/purchasing/SupplierPriceBreakTable.tsx
@@ -13,6 +13,7 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
+import useTable from '@lib/hooks/UseTable';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
import { formatCurrency } from '../../defaults/formatters';
@@ -21,7 +22,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { CompanyColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx
index 6189338798..7211b12a77 100644
--- a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx
+++ b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx
@@ -13,6 +13,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { formatCurrency } from '../../defaults/formatters';
@@ -26,7 +27,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import useStatusCodes from '../../hooks/UseStatusCodes';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DateColumn,
@@ -194,7 +194,9 @@ export default function ReturnOrderLineItemTable({
tooltip={t`Receive selected items`}
icon={}
hidden={
- !editable || inProgress || !user.hasChangeRole(UserRoles.return_order)
+ !editable ||
+ !inProgress ||
+ !user.hasChangeRole(UserRoles.return_order)
}
onClick={() => {
setSelectedItems(
diff --git a/src/frontend/src/tables/sales/ReturnOrderTable.tsx b/src/frontend/src/tables/sales/ReturnOrderTable.tsx
index 2f50cdab10..7e17782ed2 100644
--- a/src/frontend/src/tables/sales/ReturnOrderTable.tsx
+++ b/src/frontend/src/tables/sales/ReturnOrderTable.tsx
@@ -6,11 +6,11 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import { formatCurrency } from '../../defaults/formatters';
import { useReturnOrderFields } from '../../forms/ReturnOrderForms';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
CompanyColumn,
diff --git a/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx b/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx
index a5726d5759..d684c19dca 100644
--- a/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx
+++ b/src/frontend/src/tables/sales/SalesOrderAllocationTable.tsx
@@ -11,6 +11,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { StockOperationProps } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -25,7 +26,6 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import { useStockAdjustActions } from '../../hooks/UseStockAdjustActions';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DescriptionColumn,
diff --git a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx
index 115f7f59b9..e3ab149f9e 100644
--- a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx
+++ b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx
@@ -25,6 +25,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { RenderPart } from '../../components/render/Part';
@@ -41,7 +42,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
DateColumn,
diff --git a/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx b/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx
index 6de278adf2..69922d0589 100644
--- a/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx
+++ b/src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx
@@ -19,6 +19,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import {
@@ -33,7 +34,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
CompanyColumn,
diff --git a/src/frontend/src/tables/sales/SalesOrderTable.tsx b/src/frontend/src/tables/sales/SalesOrderTable.tsx
index 6f679f728f..55612f5168 100644
--- a/src/frontend/src/tables/sales/SalesOrderTable.tsx
+++ b/src/frontend/src/tables/sales/SalesOrderTable.tsx
@@ -7,11 +7,11 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import { formatCurrency } from '../../defaults/formatters';
import { useSalesOrderFields } from '../../forms/SalesOrderForms';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
AllocatedLinesProgressColumn,
diff --git a/src/frontend/src/tables/settings/ApiTokenTable.tsx b/src/frontend/src/tables/settings/ApiTokenTable.tsx
index 5a70d1ec66..14d4bcda8a 100644
--- a/src/frontend/src/tables/settings/ApiTokenTable.tsx
+++ b/src/frontend/src/tables/settings/ApiTokenTable.tsx
@@ -1,7 +1,10 @@
import { AddItemButton } from '@lib/components/AddItemButton';
+import { CopyButton } from '@lib/components/CopyButton';
import type { RowAction } from '@lib/components/RowActions';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
@@ -10,11 +13,8 @@ import { useDisclosure } from '@mantine/hooks';
import { IconCircleX } from '@tabler/icons-react';
import { useCallback, useMemo, useState } from 'react';
import { api } from '../../App';
-import { CopyButton } from '../../components/buttons/CopyButton';
-import { StylishText } from '../../components/items/StylishText';
import { showApiErrorMessage } from '../../functions/notifications';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { BooleanColumn, UserColumn } from '../ColumnRenderers';
import { UserFilter } from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx b/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx
index e7266b640d..26c04bf547 100644
--- a/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx
+++ b/src/frontend/src/tables/settings/BarcodeScanHistoryTable.tsx
@@ -14,19 +14,19 @@ import { useDisclosure } from '@mantine/hooks';
import { IconExclamationCircle } from '@tabler/icons-react';
import { useCallback, useMemo, useState } from 'react';
+import { CopyButton } from '@lib/components/CopyButton';
import { RowDeleteAction } from '@lib/components/RowActions';
+import { StylishText } from '@lib/components/StylishText';
import { PassFailButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import { shortenString } from '@lib/functions/String';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
-import { CopyButton } from '../../components/buttons/CopyButton';
-import { StylishText } from '../../components/items/StylishText';
import { RenderUser } from '../../components/render/User';
-import { shortenString } from '../../functions/tables';
import { useDeleteApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
import { UserFilter } from '../Filter';
diff --git a/src/frontend/src/tables/settings/CustomStateTable.tsx b/src/frontend/src/tables/settings/CustomStateTable.tsx
index b6914df467..668875a8e2 100644
--- a/src/frontend/src/tables/settings/CustomStateTable.tsx
+++ b/src/frontend/src/tables/settings/CustomStateTable.tsx
@@ -12,6 +12,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import type {
@@ -25,7 +26,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useGlobalStatusState } from '../../states/GlobalStatusState';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/CustomUnitsTable.tsx b/src/frontend/src/tables/settings/CustomUnitsTable.tsx
index 92ae0b6c5b..e0e89f357d 100644
--- a/src/frontend/src/tables/settings/CustomUnitsTable.tsx
+++ b/src/frontend/src/tables/settings/CustomUnitsTable.tsx
@@ -10,6 +10,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { customUnitsFields } from '../../forms/CommonForms';
import {
@@ -17,7 +18,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/EmailTable.tsx b/src/frontend/src/tables/settings/EmailTable.tsx
index 87526a2e27..a36b4e4e52 100644
--- a/src/frontend/src/tables/settings/EmailTable.tsx
+++ b/src/frontend/src/tables/settings/EmailTable.tsx
@@ -2,6 +2,7 @@ import { ActionButton } from '@lib/components/ActionButton';
import { RowDeleteAction } from '@lib/components/RowActions';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { t } from '@lingui/core/macro';
import { ActionIcon, Alert, Badge, Group, HoverCard } from '@mantine/core';
import { IconExclamationCircle, IconTestPipe } from '@tabler/icons-react';
@@ -10,7 +11,6 @@ import {
useCreateApiFormModal,
useDeleteApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { DateColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/ErrorTable.tsx b/src/frontend/src/tables/settings/ErrorTable.tsx
index 293b4b043f..57ed35e8e4 100644
--- a/src/frontend/src/tables/settings/ErrorTable.tsx
+++ b/src/frontend/src/tables/settings/ErrorTable.tsx
@@ -3,15 +3,15 @@ import { Group, Loader, Stack, Table, Text } from '@mantine/core';
import { useCallback, useMemo, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
+import { CopyButton } from '@lib/components/CopyButton';
import { type RowAction, RowDeleteAction } from '@lib/components/RowActions';
+import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
-import { CopyButton } from '../../components/buttons/CopyButton';
-import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { useDeleteApiFormModal } from '../../hooks/UseForm';
import { useInstance } from '../../hooks/UseInstance';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/ExportSessionTable.tsx b/src/frontend/src/tables/settings/ExportSessionTable.tsx
index 862cfa40b4..06819f2354 100644
--- a/src/frontend/src/tables/settings/ExportSessionTable.tsx
+++ b/src/frontend/src/tables/settings/ExportSessionTable.tsx
@@ -1,6 +1,7 @@
import { type RowAction, RowDeleteAction } from '@lib/components/RowActions';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { t } from '@lingui/core/macro';
@@ -8,7 +9,6 @@ import { useCallback, useMemo, useState } from 'react';
import { AttachmentLink } from '../../components/items/AttachmentLink';
import { RenderUser } from '../../components/render/User';
import { useDeleteApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { DateColumn } from '../ColumnRenderers';
import { UserFilter } from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/FailedTasksTable.tsx b/src/frontend/src/tables/settings/FailedTasksTable.tsx
index ab8a3e5613..8bbdd77dcd 100644
--- a/src/frontend/src/tables/settings/FailedTasksTable.tsx
+++ b/src/frontend/src/tables/settings/FailedTasksTable.tsx
@@ -5,11 +5,11 @@ import { hideNotification, showNotification } from '@mantine/notifications';
import { IconExclamationCircle } from '@tabler/icons-react';
import { useMemo, useState } from 'react';
+import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
-import { StylishText } from '../../components/items/StylishText';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/GroupTable.tsx b/src/frontend/src/tables/settings/GroupTable.tsx
index 98cf7c20f8..656e177429 100644
--- a/src/frontend/src/tables/settings/GroupTable.tsx
+++ b/src/frontend/src/tables/settings/GroupTable.tsx
@@ -9,24 +9,24 @@ import {
RowDeleteAction,
RowEditAction
} from '@lib/components/RowActions';
+import { StylishText } from '@lib/components/StylishText';
+import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { type ApiFormModalProps, getDetailUrl } from '@lib/index';
import type { TableColumn, TableState } from '@lib/types/Tables';
import { IconUsersGroup } from '@tabler/icons-react';
import { useNavigate } from 'react-router-dom';
import { EditApiForm } from '../../components/forms/ApiForm';
import { RoleTable, type RuleSet } from '../../components/items/RoleTable';
-import { StylishText } from '../../components/items/StylishText';
-import { DetailDrawer } from '../../components/nav/DetailDrawer';
import {
useCreateApiFormModal,
useDeleteApiFormModal
} from '../../hooks/UseForm';
import { useInstance } from '../../hooks/UseInstance';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/ImportSessionTable.tsx b/src/frontend/src/tables/settings/ImportSessionTable.tsx
index 29d906cdfc..39df628147 100644
--- a/src/frontend/src/tables/settings/ImportSessionTable.tsx
+++ b/src/frontend/src/tables/settings/ImportSessionTable.tsx
@@ -7,6 +7,7 @@ import { type RowAction, RowDeleteAction } from '@lib/components/RowActions';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { AttachmentLink } from '../../components/items/AttachmentLink';
@@ -17,7 +18,6 @@ import {
useCreateApiFormModal,
useDeleteApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useImporterState } from '../../states/ImporterState';
import { DateColumn, StatusColumn } from '../ColumnRenderers';
import { StatusFilterOptions, UserFilter } from '../Filter';
diff --git a/src/frontend/src/tables/settings/PendingTasksTable.tsx b/src/frontend/src/tables/settings/PendingTasksTable.tsx
index ffe8ee188e..7c31364d97 100644
--- a/src/frontend/src/tables/settings/PendingTasksTable.tsx
+++ b/src/frontend/src/tables/settings/PendingTasksTable.tsx
@@ -5,11 +5,11 @@ import { ActionButton } from '@lib/components/ActionButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { notifications, showNotification } from '@mantine/notifications';
import { IconTrashXFilled, IconX } from '@tabler/icons-react';
import { api } from '../../App';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/ProjectCodeTable.tsx b/src/frontend/src/tables/settings/ProjectCodeTable.tsx
index 6d303aa02a..d6cdddf9e8 100644
--- a/src/frontend/src/tables/settings/ProjectCodeTable.tsx
+++ b/src/frontend/src/tables/settings/ProjectCodeTable.tsx
@@ -10,6 +10,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import { projectCodeFields } from '../../forms/CommonForms';
import {
@@ -17,7 +18,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { DescriptionColumn, ResponsibleColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/settings/ScheduledTasksTable.tsx b/src/frontend/src/tables/settings/ScheduledTasksTable.tsx
index 1e0ae129b2..904632a1c2 100644
--- a/src/frontend/src/tables/settings/ScheduledTasksTable.tsx
+++ b/src/frontend/src/tables/settings/ScheduledTasksTable.tsx
@@ -5,8 +5,8 @@ import { useMemo } from 'react';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
-import { useTable } from '../../hooks/UseTable';
import { InvenTreeTable } from '../InvenTreeTable';
export default function ScheduledTasksTable() {
diff --git a/src/frontend/src/tables/settings/TemplateTable.tsx b/src/frontend/src/tables/settings/TemplateTable.tsx
index 4c75b10b4f..de06ceabd8 100644
--- a/src/frontend/src/tables/settings/TemplateTable.tsx
+++ b/src/frontend/src/tables/settings/TemplateTable.tsx
@@ -11,10 +11,12 @@ import {
RowDeleteAction,
RowEditAction
} from '@lib/components/RowActions';
+import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import { identifierString } from '@lib/functions/Conversion';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -29,7 +31,6 @@ import type {
} from '../../components/editors/TemplateEditor/TemplateEditor';
import { ApiIcon } from '../../components/items/ApiIcon';
import { AttachmentLink } from '../../components/items/AttachmentLink';
-import { DetailDrawer } from '../../components/nav/DetailDrawer';
import {
getPluginTemplateEditor,
getPluginTemplatePreview
@@ -47,7 +48,6 @@ import {
} from '../../hooks/UseForm';
import { useInstance } from '../../hooks/UseInstance';
import { usePluginUIFeature } from '../../hooks/UsePluginUIFeature';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import {
BooleanColumn,
diff --git a/src/frontend/src/tables/settings/UserTable.tsx b/src/frontend/src/tables/settings/UserTable.tsx
index e70f106afe..f93fbc2300 100644
--- a/src/frontend/src/tables/settings/UserTable.tsx
+++ b/src/frontend/src/tables/settings/UserTable.tsx
@@ -16,10 +16,13 @@ import {
RowDeleteAction,
RowEditAction
} from '@lib/components/RowActions';
+import { StylishText } from '@lib/components/StylishText';
+import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import { type ApiFormModalProps, getDetailUrl } from '@lib/index';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn, TableState } from '@lib/types/Tables';
@@ -28,12 +31,10 @@ import { useNavigate } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow';
import { api } from '../../App';
import { EditApiForm } from '../../components/forms/ApiForm';
-import { StylishText } from '../../components/items/StylishText';
import {
TransferList,
type TransferListItem
} from '../../components/items/TransferList';
-import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { showApiErrorMessage } from '../../functions/notifications';
import {
useApiFormModal,
@@ -41,7 +42,6 @@ import {
useDeleteApiFormModal
} from '../../hooks/UseForm';
import { useInstance } from '../../hooks/UseInstance';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { BooleanColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/stock/InstalledItemsTable.tsx b/src/frontend/src/tables/stock/InstalledItemsTable.tsx
index 3de11d245c..5ccbc10eef 100644
--- a/src/frontend/src/tables/stock/InstalledItemsTable.tsx
+++ b/src/frontend/src/tables/stock/InstalledItemsTable.tsx
@@ -8,13 +8,13 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables';
import {
useStockItemInstallFields,
useStockItemUninstallFields
} from '../../forms/StockForms';
import { useCreateApiFormModal } from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { PartColumn, StatusColumn, StockColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/stock/LocationTypesTable.tsx b/src/frontend/src/tables/stock/LocationTypesTable.tsx
index ad7dcc60f8..89b7cb747f 100644
--- a/src/frontend/src/tables/stock/LocationTypesTable.tsx
+++ b/src/frontend/src/tables/stock/LocationTypesTable.tsx
@@ -10,6 +10,7 @@ import {
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
import { ApiIcon } from '../../components/items/ApiIcon';
@@ -18,7 +19,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/stock/StockItemTable.tsx b/src/frontend/src/tables/stock/StockItemTable.tsx
index e23cd60a4c..2f65c74edb 100644
--- a/src/frontend/src/tables/stock/StockItemTable.tsx
+++ b/src/frontend/src/tables/stock/StockItemTable.tsx
@@ -9,6 +9,7 @@ import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { StockOperationProps } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -18,7 +19,6 @@ import { useStockFields } from '../../forms/StockForms';
import { InvenTreeIcon } from '../../functions/icons';
import { useCreateApiFormModal } from '../../hooks/UseForm';
import { useStockAdjustActions } from '../../hooks/UseStockAdjustActions';
-import { useTable } from '../../hooks/UseTable';
import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
import {
diff --git a/src/frontend/src/tables/stock/StockItemTestResultTable.tsx b/src/frontend/src/tables/stock/StockItemTestResultTable.tsx
index c2c81d2548..5526389eba 100644
--- a/src/frontend/src/tables/stock/StockItemTestResultTable.tsx
+++ b/src/frontend/src/tables/stock/StockItemTestResultTable.tsx
@@ -21,6 +21,7 @@ import { PassFailButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { ApiFormFieldSet } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables';
@@ -33,7 +34,6 @@ import {
useDeleteApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState';
import {
@@ -305,7 +305,7 @@ export default function StockItemTestResultTable({
pk: selectedTest,
fields: useMemo(() => ({ ...editResultFields }), [editResultFields]),
title: t`Edit Test Result`,
- onFormSuccess: () => table.refreshTable,
+ table: table,
successMessage: t`Test result updated`
});
diff --git a/src/frontend/src/tables/stock/StockLocationTable.tsx b/src/frontend/src/tables/stock/StockLocationTable.tsx
index a0915c65a3..d8d6c9acd8 100644
--- a/src/frontend/src/tables/stock/StockLocationTable.tsx
+++ b/src/frontend/src/tables/stock/StockLocationTable.tsx
@@ -8,6 +8,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { ActionDropdown } from '../../components/items/ActionDropdown';
@@ -19,7 +20,6 @@ import {
useCreateApiFormModal,
useEditApiFormModal
} from '../../hooks/UseForm';
-import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState';
import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
diff --git a/src/frontend/src/tables/stock/StockTrackingTable.tsx b/src/frontend/src/tables/stock/StockTrackingTable.tsx
index 6019661760..748fde47f5 100644
--- a/src/frontend/src/tables/stock/StockTrackingTable.tsx
+++ b/src/frontend/src/tables/stock/StockTrackingTable.tsx
@@ -7,6 +7,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import { formatDecimal } from '@lib/functions/Formatting';
+import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables';
import { RenderBuildOrder } from '../../components/render/Build';
@@ -23,7 +24,6 @@ import {
RenderStockLocation
} from '../../components/render/Stock';
import { RenderUser } from '../../components/render/User';
-import { useTable } from '../../hooks/UseTable';
import {
DateColumn,
DescriptionColumn,
diff --git a/src/frontend/tests/customization/customization.spec.ts b/src/frontend/tests/customization/customization.spec.ts
index a026868ea8..9b792131ba 100644
--- a/src/frontend/tests/customization/customization.spec.ts
+++ b/src/frontend/tests/customization/customization.spec.ts
@@ -1,7 +1,5 @@
import test, { expect } from '@playwright/test';
-import { noaccessuser } from '../defaults';
import { navigate } from '../helpers';
-import { doLogin } from '../login';
/**
* Tests for user interface customization functionality.
@@ -20,14 +18,3 @@ test('Customization - Splash', async ({ page }) => {
page.locator('[style*="playwright_custom_splash.png"]')
).toBeVisible();
});
-
-test('Customization - Logo', async ({ page }) => {
- await doLogin(page, {
- user: noaccessuser
- });
-
- await page.waitForLoadState('networkidle');
-
- await page.waitForTimeout(2500);
- return;
-});
diff --git a/src/frontend/tests/pages/pui_dashboard.spec.ts b/src/frontend/tests/pages/pui_dashboard.spec.ts
index acc3547e4b..dd9ef7ea05 100644
--- a/src/frontend/tests/pages/pui_dashboard.spec.ts
+++ b/src/frontend/tests/pages/pui_dashboard.spec.ts
@@ -1,4 +1,5 @@
import type { Page } from '@playwright/test';
+import { expect } from '@playwright/test';
import { test } from '../baseFixtures.js';
import { doCachedLogin } from '../login.js';
import { setPluginState } from '../settings.js';
@@ -94,3 +95,79 @@ test('Dashboard - Plugins', async ({ browser }) => {
await page.getByRole('heading', { name: 'Sample Dashboard Item' }).waitFor();
await page.getByText('Hello world! This is a sample').waitFor();
});
+
+test('Dashboard - Preserve widget sizes when adding new widget', async ({
+ browser
+}) => {
+ // Regression: addWidget previously snapped every existing widget back to
+ // its minW/minH. Fix is in DashboardLayout.tsx::addWidget (overrideSize=false).
+ const TARGET_W = 10;
+ const TARGET_H = 6;
+
+ const readLayouts = (page: Page) =>
+ page.evaluate(() => {
+ const raw = localStorage.getItem('session-settings');
+ return raw ? (JSON.parse(raw)?.state?.layouts ?? {}) : {};
+ });
+
+ const page = await doCachedLogin(browser);
+ await resetDashboard(page);
+
+ // Add widget A; this also persists to the backend user profile.
+ await page.getByLabel('dashboard-menu').click();
+ await page.getByRole('menuitem', { name: 'Add Widget' }).click();
+ await page.getByLabel('dashboard-widgets-filter-input').fill('overdue order');
+ await page.getByLabel('add-widget-ovr-so').click();
+ await page.getByRole('banner').getByRole('button').click();
+ await page.getByText('Overdue Sales Orders').waitFor();
+ await page.waitForTimeout(500);
+
+ // Inflate widget A on the backend profile and reload. The auth flow on
+ // page load rehydrates layouts from the profile, not localStorage, so a
+ // localStorage-only edit would be wiped out on reload.
+ const current = await readLayouts(page);
+ const inflated: Record = {};
+ for (const bp of Object.keys(current)) {
+ inflated[bp] = current[bp].map((it: any) =>
+ it?.i === 'ovr-so' ? { ...it, w: TARGET_W, h: TARGET_H } : it
+ );
+ }
+ await page.evaluate(async (layouts) => {
+ const csrf = document.cookie.match(/csrftoken=([^;]+)/)?.[1] ?? '';
+ await fetch('/api/user/profile/', {
+ method: 'PATCH',
+ credentials: 'same-origin',
+ headers: {
+ 'Content-Type': 'application/json',
+ 'X-CSRFToken': csrf
+ },
+ body: JSON.stringify({ widgets: { widgets: ['ovr-so'], layouts } })
+ });
+ }, inflated);
+
+ await page.reload();
+ await page.getByText('Overdue Sales Orders').waitFor();
+ await page.waitForTimeout(500);
+
+ // Sanity: profile rehydration produced the inflated values.
+ for (const [bp, items] of Object.entries(await readLayouts(page))) {
+ const entry = (items as any[]).find((i) => i?.i === 'ovr-so');
+ expect(entry?.w, `${bp}: ovr-so missing or wrong w`).toBe(TARGET_W);
+ expect(entry?.h, `${bp}: ovr-so missing or wrong h`).toBe(TARGET_H);
+ }
+
+ // Add widget B. With the bug, this clobbered widget A back to minW/minH.
+ await page.getByLabel('dashboard-menu').click();
+ await page.getByRole('menuitem', { name: 'Add Widget' }).click();
+ await page.getByLabel('dashboard-widgets-filter-input').fill('overdue order');
+ await page.getByLabel('add-widget-ovr-po').click();
+ await page.getByRole('banner').getByRole('button').click();
+ await page.getByText('Overdue Purchase Orders').waitFor();
+ await page.waitForTimeout(800);
+
+ for (const [bp, items] of Object.entries(await readLayouts(page))) {
+ const entry = (items as any[]).find((i) => i?.i === 'ovr-so');
+ expect(entry?.w, `${bp}: ovr-so width was reset`).toBe(TARGET_W);
+ expect(entry?.h, `${bp}: ovr-so height was reset`).toBe(TARGET_H);
+ }
+});
diff --git a/src/frontend/tests/pages/pui_part.spec.ts b/src/frontend/tests/pages/pui_part.spec.ts
index 840edcb1bf..c7d9adacd6 100644
--- a/src/frontend/tests/pages/pui_part.spec.ts
+++ b/src/frontend/tests/pages/pui_part.spec.ts
@@ -168,6 +168,12 @@ test('Parts - BOM', async ({ browser }) => {
await navigate(page, 'part/87/bom');
await loadTab(page, 'Bill of Materials');
+ // Check for pricing data to be displayed in the table
+ await page
+ .getByRole('cell', { name: /\$\d+\.\d+ - \$\d+\.\d+/ })
+ .first()
+ .waitFor();
+
// Mouse-hover to display BOM validation info for this assembly
await page.getByRole('button', { name: 'bom-validation-info' }).hover();
await page
@@ -179,10 +185,20 @@ test('Parts - BOM', async ({ browser }) => {
// Move the mouse away
await page.getByRole('link', { name: 'Bill of Materials' }).hover();
- const cell = await page.getByRole('cell', {
- name: 'Small plastic enclosure, black',
- exact: true
- });
+ // Test sub-assembly row expansion
+ await page.getByText('Widget Board (assembled)').click();
+ await page.getByText('R_10R_0402_1%').waitFor();
+ await page.getByText('MAX232IDR').waitFor();
+
+ // Enable BOM editing
+ await page.getByRole('button', { name: 'action-button-edit-bom' }).click();
+ await page
+ .getByRole('button', { name: 'action-button-finish-editing-' })
+ .waitFor();
+
+ const cell = await page
+ .getByRole('cell', { name: 'Thumbnail 1551ABK' })
+ .first();
await clickOnRowMenu(cell);
@@ -202,6 +218,12 @@ test('Parts - BOM', async ({ browser }) => {
await page.getByRole('button', { name: 'Add Substitute' }).waitFor();
await page.getByRole('button', { name: 'Close' }).click();
+
+ // Finish editing the BOM
+ await page
+ .getByRole('button', { name: 'action-button-finish-editing-' })
+ .click();
+ await page.getByRole('button', { name: 'action-button-edit-bom' }).waitFor();
});
/**
@@ -211,8 +233,15 @@ test('Parts - BOM', async ({ browser }) => {
test('Parts - BOM Validation', async ({ browser }) => {
const page = await doCachedLogin(browser, { url: 'part/107/bom' });
+ // Enable BOM editing
+ await page.getByRole('button', { name: 'action-button-edit-bom' }).click();
+ await page
+ .getByRole('button', { name: 'action-button-finish-editing-' })
+ .waitFor();
+
// Edit line item, to ensure BOM is not valid
- const cell = await page.getByRole('cell', { name: 'Red paint Red Paint' });
+ const cell = await page.getByRole('cell', { name: 'Thumbnail Red Paint' });
+
await clickOnRowMenu(cell);
await page.getByRole('menuitem', { name: 'Edit', exact: true }).click();
@@ -245,6 +274,37 @@ test('Parts - BOM Validation', async ({ browser }) => {
await page.getByText('Validated By: allaccessAlly').waitFor();
});
+test('Parts - BOM Comparison', async ({ browser }) => {
+ const page = await doCachedLogin(browser, { url: 'part/104/bom' });
+
+ await page
+ .getByRole('button', { name: 'action-button-compare-bill-of' })
+ .click();
+ await page.getByText('Select an assembly to view').waitFor();
+ await page
+ .getByRole('combobox', { name: 'related-field-assembly' })
+ .fill('blue round table');
+ await page.getByText('Blue Round TableA round table').click();
+
+ await page.getByRole('columnheader', { name: 'Quantity' }).first().waitFor();
+ await page.getByRole('columnheader', { name: 'Changes' }).first().waitFor();
+
+ await page.getByText('No changes').first().waitFor();
+ await page.getByText('Part added to BOM').first().waitFor();
+ await page.getByText('Removed from BOM').first().waitFor();
+
+ // Change display mode
+ await page.getByRole('textbox', { name: 'bom-compare-display-mode' }).click();
+ await page.getByRole('option', { name: 'Show different Parts' }).click();
+
+ // Use URL params to compare directly
+ await navigate(page, 'part/108/bom?compare=107');
+ await page.waitForLoadState('networkidle');
+ await page.getByText('0.125').nth(1).waitFor();
+ await page.getByText('Red Paint', { exact: true }).first().waitFor();
+ await page.getByText('Blue Paint', { exact: true }).first().waitFor();
+});
+
test('Parts - Editing', async ({ browser }) => {
const page = await doCachedLogin(browser, { url: 'part/104/details' });
@@ -288,6 +348,13 @@ test('Parts - Locking', async ({ browser }) => {
const page = await doCachedLogin(browser, { url: 'part/104/bom' });
await loadTab(page, 'Bill of Materials');
+
+ // Enable BOM editing
+ await page.getByRole('button', { name: 'action-button-edit-bom' }).click();
+ await page
+ .getByRole('button', { name: 'action-button-finish-editing-' })
+ .waitFor();
+
await page
.getByRole('button', { name: 'action-menu-add-bom-items' })
.waitFor();
@@ -491,7 +558,14 @@ test('Parts - Pricing (Nothing, BOM)', async ({ browser }) => {
await page.getByRole('button', { name: 'Quantity Not sorted' }).waitFor();
await page.getByRole('button', { name: 'Unit Price Not sorted' }).waitFor();
- // BOM Pricing - linkjumping
+ // We expect some pricing data to be displayed
+ await page
+ .getByLabel('BOM Pricing')
+ .getByRole('cell', { name: /\$0\.\d+ - \$0\.\d+/ })
+ .first()
+ .waitFor();
+
+ // BOM Pricing - link-jumping
await page
.getByLabel('BOM Pricing')
.getByRole('table')
@@ -516,7 +590,7 @@ test('Parts - Pricing (Supplier)', async ({ browser }) => {
await page.getByRole('button', { name: 'Supplier Pricing' }).click();
await page.getByRole('button', { name: 'SKU Not sorted' }).waitFor();
- // Supplier Pricing - linkjumping
+ // Supplier Pricing - link-jumping
const target = page.getByText('ARR-26041-LPC').first();
await target.waitFor();
await target.click();
@@ -538,7 +612,7 @@ test('Parts - Pricing (Variant)', async ({ browser }) => {
// Variant Pricing
await page.getByRole('button', { name: 'Variant Pricing' }).click();
- // Variant Pricing - linkjumping
+ // Variant Pricing - link-jumping
const target = page.getByText('Green Chair').first();
await target.waitFor();
await target.click();
@@ -799,7 +873,7 @@ test('Parts - Parameter Filtering', async ({ browser }) => {
test('Parts - Test Results', async ({ browser }) => {
const page = await doCachedLogin(browser, { url: '/part/74/test_results' });
- await page.waitForTimeout(2500);
+ await page.waitForTimeout(500);
await page.getByText(/1 - \d+ \/ 1\d\d/).waitFor();
await page.getByText('Blue Paint Applied').waitFor();
diff --git a/src/frontend/tests/pages/pui_purchasing.spec.ts b/src/frontend/tests/pages/pui_purchasing.spec.ts
index f7490ab73b..8c06c4cc13 100644
--- a/src/frontend/tests/pages/pui_purchasing.spec.ts
+++ b/src/frontend/tests/pages/pui_purchasing.spec.ts
@@ -1,6 +1,6 @@
import { expect } from '@playwright/test';
import { test } from '../baseFixtures.ts';
-import { readeruser } from '../defaults.ts';
+import { readeruser, stevenuser } from '../defaults.ts';
import {
activateCalendarView,
activateTableView,
@@ -84,11 +84,11 @@ test('Purchasing - Index', async ({ browser }) => {
test('Purchasing - Parameters', async ({ browser }) => {
const page = await doCachedLogin(browser, {
- url: 'purchasing/purchase-order/11/parameters'
+ url: 'purchasing/purchase-order/11/parameters',
+ user: stevenuser
});
// Create a new parameter against this purchase order
- // We will use a "SelectionList" to choose the value here
await page
.getByRole('button', { name: 'action-menu-add-parameters' })
.click();
@@ -98,6 +98,25 @@ test('Purchasing - Parameters', async ({ browser }) => {
})
.click();
+ // Check for button to add a new template
+ await page
+ .getByRole('button', {
+ name: 'action-button-create-new-parameter-template'
+ })
+ .click();
+ await page
+ .getByText('Create New Parameter Template', { exact: true })
+ .first()
+ .waitFor();
+ await page.getByRole('textbox', { name: 'text-field-description' }).waitFor();
+ await page.getByRole('textbox', { name: 'text-field-choices' }).waitFor();
+ await page
+ .getByLabel('Create New Parameter Template')
+ .getByRole('button', { name: 'Cancel' })
+ .click();
+
+ // We will use a "SelectionList" to choose the value here
+
// Select the template
await page
.getByRole('combobox', { name: 'related-field-template' })
diff --git a/src/frontend/tests/pages/pui_return.spec.ts b/src/frontend/tests/pages/pui_return.spec.ts
new file mode 100644
index 0000000000..b3656a1c30
--- /dev/null
+++ b/src/frontend/tests/pages/pui_return.spec.ts
@@ -0,0 +1,19 @@
+import test from '@playwright/test';
+import { loadTab } from '../helpers';
+import { doCachedLogin } from '../login';
+
+test('Return Orders - Receive Items', async ({ browser }) => {
+ const page = await doCachedLogin(browser, {
+ url: 'sales/index/returnorders'
+ });
+
+ await page.getByRole('cell', { name: 'RMA-0002' }).click();
+ await loadTab(page, 'Parameters');
+ await loadTab(page, 'Attachments');
+ await loadTab(page, 'Line Items');
+
+ await page.getByRole('checkbox', { name: 'Select all records' }).click();
+ await page.getByRole('button', { name: 'action-button-receive-' }).click();
+ await page.getByRole('banner').getByText('Receive Items').waitFor();
+ await page.getByRole('button', { name: 'Cancel' }).click();
+});
diff --git a/src/frontend/tests/pages/pui_stock.spec.ts b/src/frontend/tests/pages/pui_stock.spec.ts
index 24185fd832..0592576892 100644
--- a/src/frontend/tests/pages/pui_stock.spec.ts
+++ b/src/frontend/tests/pages/pui_stock.spec.ts
@@ -15,9 +15,6 @@ test('Stock - Basic Tests', async ({ browser }) => {
await page.waitForURL('**/web/stock/location/**');
- await loadTab(page, 'Location Details');
- await page.waitForURL('**/web/stock/location/index/details');
-
await loadTab(page, 'Stock Items');
await page.getByText('1551ABK').first().click();
@@ -62,7 +59,6 @@ test('Stock - Location Tree', async ({ browser }) => {
const page = await doCachedLogin(browser, { url: 'stock/location/index/' });
await page.waitForURL('**/web/stock/location/**');
- await loadTab(page, 'Location Details');
await page.getByLabel('nav-breadcrumb-action').click();
await page.getByLabel('nav-tree-toggle-1}').click();
@@ -79,13 +75,14 @@ test('Stock - Location Delete', async ({ browser }) => {
url: 'stock/location/38/sublocations'
});
+ const loc_1 = `loc-1-${Math.floor(Math.random() * 1000)}`;
+ const loc_2 = `loc-2-${Math.floor(Math.random() * 1000)}`;
+
// Create a sub-location
await page
.getByRole('button', { name: 'action-button-add-stock-location' })
.click();
- await page
- .getByRole('textbox', { name: 'text-field-name' })
- .fill('my-location-1');
+ await page.getByRole('textbox', { name: 'text-field-name' }).fill(loc_1);
await page.getByRole('button', { name: 'Submit' }).click();
// Create a secondary sub-location
@@ -93,22 +90,20 @@ test('Stock - Location Delete', async ({ browser }) => {
await page
.getByRole('button', { name: 'action-button-add-stock-location' })
.click();
- await page
- .getByRole('textbox', { name: 'text-field-name' })
- .fill('my-location-2');
+ await page.getByRole('textbox', { name: 'text-field-name' }).fill(loc_2);
await page.getByRole('button', { name: 'Submit' }).click();
// Navigate up to parent
- await page.getByRole('link', { name: 'breadcrumb-2-my-location-1' }).click();
+ await page.getByRole('link', { name: `breadcrumb-2-${loc_1}` }).click();
await loadTab(page, 'Sublocations');
- await page
- .getByRole('cell', { name: 'my-location-2', exact: true })
- .waitFor();
+ await page.getByRole('cell', { name: loc_2, exact: true }).waitFor();
// Delete this location, and all child locations
await page
.locator('div')
- .filter({ hasText: /^Stock>PCB Assembler>my-location-1Stock Location$/ })
+ .filter({
+ hasText: new RegExp(`^Stock>PCB Assembler>${loc_1}Stock Location$`)
+ })
.getByLabel('action-menu-location-actions')
.click();
await page
@@ -398,6 +393,39 @@ test('Stock - Stock Actions', async ({ browser }) => {
await page.getByLabel('action-menu-stock-operations-return').click();
});
+// Test conversion between part variants
+test('Stock - Convert', async ({ browser }) => {
+ const page = await doCachedLogin(browser, { url: 'stock/item/242/details' });
+
+ await page.getByText('widget.red.00 | Red Widget |').waitFor();
+
+ // Convert to widget.red.02
+ await page
+ .getByRole('button', { name: 'action-menu-stock-item-actions' })
+ .click();
+ await page
+ .getByRole('menuitem', { name: 'action-menu-stock-item-actions-convert' })
+ .click();
+ await page.getByRole('combobox', { name: 'related-field-part' }).fill('red');
+ await page.getByText('widget.red.02 | Red Widget |').click();
+ await page.getByRole('button', { name: 'Submit' }).click();
+
+ await page.getByText('widget.red.02 | Red Widget |').waitFor();
+
+ // Convert to widget.red.00
+ await page
+ .getByRole('button', { name: 'action-menu-stock-item-actions' })
+ .click();
+ await page
+ .getByRole('menuitem', { name: 'action-menu-stock-item-actions-convert' })
+ .click();
+ await page.getByRole('combobox', { name: 'related-field-part' }).fill('red');
+ await page.getByText('widget.red.00 | Red Widget |').click();
+ await page.getByRole('button', { name: 'Submit' }).click();
+
+ await page.getByText('widget.red.00 | Red Widget |').waitFor();
+});
+
test('Stock - Return Items', async ({ browser }) => {
const page = await doCachedLogin(browser, {
url: 'sales/customer/32/assigned-stock'
diff --git a/src/frontend/tests/pui_importing.spec.ts b/src/frontend/tests/pui_importing.spec.ts
index 7ecc62dd29..3400f3564c 100644
--- a/src/frontend/tests/pui_importing.spec.ts
+++ b/src/frontend/tests/pui_importing.spec.ts
@@ -76,6 +76,12 @@ test('Importing - BOM', async ({ browser }) => {
url: 'part/109/bom'
});
+ // Enable BOM editing
+ await page.getByRole('button', { name: 'action-button-edit-bom' }).click();
+ await page
+ .getByRole('button', { name: 'action-button-finish-editing-' })
+ .waitFor();
+
// Open the BOM importer wizard
await page.getByRole('button', { name: 'action-menu-add-bom-items' }).click();
diff --git a/src/frontend/tests/pui_permissions.spec.ts b/src/frontend/tests/pui_permissions.spec.ts
index 8bb46e8d5a..f554606d85 100644
--- a/src/frontend/tests/pui_permissions.spec.ts
+++ b/src/frontend/tests/pui_permissions.spec.ts
@@ -65,7 +65,6 @@ test('Permissions - Reader', async ({ browser }) => {
url: '/part/category/index/'
});
- await loadTab(page, 'Category Details');
await loadTab(page, 'Parts');
// Navigate to a specific part
diff --git a/src/frontend/tests/pui_settings.spec.ts b/src/frontend/tests/pui_settings.spec.ts
index ca9258a087..d9aa1e24ed 100644
--- a/src/frontend/tests/pui_settings.spec.ts
+++ b/src/frontend/tests/pui_settings.spec.ts
@@ -178,7 +178,6 @@ test('Settings - Global', async ({ browser }) => {
await loadTab(page, 'Pricing');
await loadTab(page, 'Parts');
await loadTab(page, 'Stock', true);
- await loadTab(page, 'Stock History');
await loadTab(page, 'Notifications');
await page
@@ -195,7 +194,7 @@ test('Settings - Global', async ({ browser }) => {
.getByText('URL that is used to send messages to a slack channel')
.waitFor();
- await loadTab(page, 'Plugin Settings');
+ await loadTab(page, 'Plugins');
await page
.getByText('The settings below are specific to each available plugin')
.waitFor();
@@ -236,13 +235,12 @@ test('Settings - Admin', async ({ browser }) => {
await loadTab(page, 'Barcodes');
await loadTab(page, 'Notifications');
await loadTab(page, 'Pricing');
- await loadTab(page, 'Labels');
await loadTab(page, 'Reporting');
-
- await loadTab(page, 'Build Orders');
- await loadTab(page, 'Purchase Orders');
- await loadTab(page, 'Sales Orders');
- await loadTab(page, 'Return Orders');
+ await loadTab(page, 'Parts');
+ await loadTab(page, 'Stock');
+ await loadTab(page, 'Manufacturing');
+ await loadTab(page, 'Purchasing');
+ await loadTab(page, 'Sales');
// Admin Center
await page.getByRole('button', { name: 'admin' }).click();
diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock
index 608b72c475..6e6b26ca0d 100644
--- a/src/frontend/yarn.lock
+++ b/src/frontend/yarn.lock
@@ -497,28 +497,6 @@
style-mod "^4.1.0"
w3c-keyname "^2.2.4"
-"@emnapi/core@^1.7.1":
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.9.1.tgz#2143069c744ca2442074f8078462e51edd63c7bd"
- integrity sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==
- dependencies:
- "@emnapi/wasi-threads" "1.2.0"
- tslib "^2.4.0"
-
-"@emnapi/runtime@^1.7.1":
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.9.1.tgz#115ff2a0d589865be6bd8e9d701e499c473f2a8d"
- integrity sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==
- dependencies:
- tslib "^2.4.0"
-
-"@emnapi/wasi-threads@1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz#a19d9772cc3d195370bf6e2a805eec40aa75e18e"
- integrity sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==
- dependencies:
- tslib "^2.4.0"
-
"@emotion/babel-plugin@^11.13.5":
version "11.13.5"
resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz#eab8d65dbded74e0ecfd28dc218e75607c4e7bc0"
@@ -624,11 +602,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz#4c585002f7ad694d38fe0e8cbf5cfd939ccff327"
integrity sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==
-"@esbuild/aix-ppc64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz#82b74f92aa78d720b714162939fb248c90addf53"
- integrity sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==
-
"@esbuild/android-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752"
@@ -639,11 +612,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz#7625d0952c3b402d3ede203a16c9f2b78f8a4827"
integrity sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==
-"@esbuild/android-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz#f78cb8a3121fc205a53285adb24972db385d185d"
- integrity sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==
-
"@esbuild/android-arm@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a"
@@ -654,11 +622,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.4.tgz#9a0cf1d12997ec46dddfb32ce67e9bca842381ac"
integrity sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==
-"@esbuild/android-arm@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.7.tgz#593e10a1450bbfcac6cb321f61f468453bac209d"
- integrity sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==
-
"@esbuild/android-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16"
@@ -669,11 +632,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.4.tgz#06e1fdc6283fccd6bc6aadd6754afce6cf96f42e"
integrity sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==
-"@esbuild/android-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.7.tgz#453143d073326033d2d22caf9e48de4bae274b07"
- integrity sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==
-
"@esbuild/darwin-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd"
@@ -684,11 +642,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz#6c550ee6c0273bcb0fac244478ff727c26755d80"
integrity sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==
-"@esbuild/darwin-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz#6f23000fb9b40b7e04b7d0606c0693bd0632f322"
- integrity sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==
-
"@esbuild/darwin-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e"
@@ -699,11 +652,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz#ed7a125e9f25ce0091b9aff783ee943f6ba6cb86"
integrity sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==
-"@esbuild/darwin-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz#27393dd18bb1263c663979c5f1576e00c2d024be"
- integrity sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==
-
"@esbuild/freebsd-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe"
@@ -714,11 +662,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz#597dc8e7161dba71db4c1656131c1f1e9d7660c6"
integrity sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==
-"@esbuild/freebsd-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz#22e4638fa502d1c0027077324c97640e3adf3a62"
- integrity sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==
-
"@esbuild/freebsd-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3"
@@ -729,11 +672,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz#ea171f9f4f00efaa8e9d3fe8baa1b75d757d1b36"
integrity sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==
-"@esbuild/freebsd-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz#9224b8e4fea924ce2194e3efc3e9aebf822192d6"
- integrity sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==
-
"@esbuild/linux-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977"
@@ -744,11 +682,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz#e52d57f202369386e6dbcb3370a17a0491ab1464"
integrity sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==
-"@esbuild/linux-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz#4f5d1c27527d817b35684ae21419e57c2bda0966"
- integrity sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==
-
"@esbuild/linux-arm@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9"
@@ -759,11 +692,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz#5e0c0b634908adbce0a02cebeba8b3acac263fb6"
integrity sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==
-"@esbuild/linux-arm@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz#b9e9d070c8c1c0449cf12b20eac37d70a4595921"
- integrity sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==
-
"@esbuild/linux-ia32@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0"
@@ -774,11 +702,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz#5f90f01f131652473ec06b038a14c49683e14ec7"
integrity sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==
-"@esbuild/linux-ia32@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz#3f80fb696aa96051a94047f35c85b08b21c36f9e"
- integrity sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==
-
"@esbuild/linux-loong64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0"
@@ -789,11 +712,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz#63bacffdb99574c9318f9afbd0dd4fff76a837e3"
integrity sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==
-"@esbuild/linux-loong64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz#9be1f2c28210b13ebb4156221bba356fe1675205"
- integrity sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==
-
"@esbuild/linux-mips64el@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd"
@@ -804,11 +722,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz#c4b6952eca6a8efff67fee3671a3536c8e67b7eb"
integrity sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==
-"@esbuild/linux-mips64el@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz#4ab5ee67a3dfcbcb5e8fd7883dae6e735b1163b8"
- integrity sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==
-
"@esbuild/linux-ppc64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869"
@@ -819,11 +732,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz#6dea67d3d98c6986f1b7769e4f1848e5ae47ad58"
integrity sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==
-"@esbuild/linux-ppc64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz#dac78c689f6499459c4321e5c15032c12307e7ea"
- integrity sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==
-
"@esbuild/linux-riscv64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6"
@@ -834,11 +742,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz#9ad2b4c3c0502c6bada9c81997bb56c597853489"
integrity sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==
-"@esbuild/linux-riscv64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz#050f7d3b355c3a98308e935bc4d6325da91b0027"
- integrity sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==
-
"@esbuild/linux-s390x@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663"
@@ -849,11 +752,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz#c43d3cfd073042ca6f5c52bb9bc313ed2066ce28"
integrity sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==
-"@esbuild/linux-s390x@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz#d61f715ce61d43fe5844ad0d8f463f88cbe4fef6"
- integrity sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==
-
"@esbuild/linux-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306"
@@ -864,11 +762,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz#45fa173e0591ac74d80d3cf76704713e14e2a4a6"
integrity sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==
-"@esbuild/linux-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz#ca8e1aa478fc8209257bf3ac8f79c4dc2982f32a"
- integrity sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==
-
"@esbuild/netbsd-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4"
@@ -879,11 +772,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz#366b0ef40cdb986fc751cbdad16e8c25fe1ba879"
integrity sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==
-"@esbuild/netbsd-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz#1650f2c1b948deeb3ef948f2fc30614723c09690"
- integrity sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==
-
"@esbuild/netbsd-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076"
@@ -894,11 +782,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz#e985d49a3668fd2044343071d52e1ae815112b3e"
integrity sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==
-"@esbuild/netbsd-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz#65772ab342c4b3319bf0705a211050aac1b6e320"
- integrity sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==
-
"@esbuild/openbsd-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd"
@@ -909,11 +792,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz#6fb4ab7b73f7e5572ce5ec9cf91c13ff6dd44842"
integrity sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==
-"@esbuild/openbsd-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz#37ed7cfa66549d7955852fce37d0c3de4e715ea1"
- integrity sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==
-
"@esbuild/openbsd-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679"
@@ -924,11 +802,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz#641f052040a0d79843d68898f5791638a026d983"
integrity sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==
-"@esbuild/openbsd-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz#01bf3d385855ef50cb33db7c4b52f957c34cd179"
- integrity sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==
-
"@esbuild/openharmony-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d"
@@ -939,11 +812,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz#fc1d33eac9d81ae0a433b3ed1dd6171a20d4e317"
integrity sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==
-"@esbuild/openharmony-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz#6c1f94b34086599aabda4eac8f638294b9877410"
- integrity sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==
-
"@esbuild/sunos-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6"
@@ -954,11 +822,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz#af2cd5ca842d6d057121f66a192d4f797de28f53"
integrity sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==
-"@esbuild/sunos-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz#4b0dd17ae0a6941d2d0fd35a906392517071a90d"
- integrity sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==
-
"@esbuild/win32-arm64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323"
@@ -969,11 +832,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz#78ec7e59bb06404583d4c9511e621db31c760de3"
integrity sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==
-"@esbuild/win32-arm64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz#34193ab5565d6ff68ca928ac04be75102ccb2e77"
- integrity sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==
-
"@esbuild/win32-ia32@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267"
@@ -984,11 +842,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz#0e616aa488b7ee5d2592ab070ff9ec06a9fddf11"
integrity sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==
-"@esbuild/win32-ia32@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz#eb67f0e4482515d8c1894ede631c327a4da9fc4d"
- integrity sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==
-
"@esbuild/win32-x64@0.25.12":
version "0.25.12"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5"
@@ -999,11 +852,6 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz#1f7ba71a3d6155d44a6faa8dbe249c62ab3e408c"
integrity sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==
-"@esbuild/win32-x64@0.27.7":
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz#8fe30b3088b89b4873c3a6cc87597ae3920c0a8b"
- integrity sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==
-
"@floating-ui/core@^1.7.5":
version "1.7.5"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.5.tgz#d4af157a03330af5a60e69da7a4692507ada0622"
@@ -1461,15 +1309,6 @@
resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz#2249090633e04063176863a050c8f0808d2b6d2b"
integrity sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==
-"@napi-rs/wasm-runtime@^1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz#c3705ab549d176b8dc5172723d6156c3dc426af2"
- integrity sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==
- dependencies:
- "@emnapi/core" "^1.7.1"
- "@emnapi/runtime" "^1.7.1"
- "@tybys/wasm-util" "^0.10.1"
-
"@noble/hashes@2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.1.tgz#fc1a928061d1232b0a52bb754393c37a5216c89e"
@@ -1567,11 +1406,6 @@
dependencies:
"@octokit/openapi-types" "^24.2.0"
-"@oxc-project/types@=0.122.0":
- version "0.122.0"
- resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.122.0.tgz#2f4e77a3b183c87b2a326affd703ef71ba836601"
- integrity sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==
-
"@playwright/test@^1.58.2":
version "1.58.2"
resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.58.2.tgz#b0ad585d2e950d690ef52424967a42f40c6d2cbd"
@@ -1596,88 +1430,6 @@
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.23.2.tgz#156c4b481c0bee22a19f7924728a67120de06971"
integrity sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==
-"@rolldown/binding-android-arm64@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.11.tgz#25a584227ed97239fd564451c0db2c359751b42a"
- integrity sha512-SJ+/g+xNnOh6NqYxD0V3uVN4W3VfnrGsC9/hoglicgTNfABFG9JjISvkkU0dNY84MNHLWyOgxP9v9Y9pX4S7+A==
-
-"@rolldown/binding-darwin-arm64@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.11.tgz#dcfa96c4d8c7baa47f5b90294ce8ebf1b0b1dbf9"
- integrity sha512-7WQgR8SfOPwmDZGFkThUvsmd/nwAWv91oCO4I5LS7RKrssPZmOt7jONN0cW17ydGC1n/+puol1IpoieKqQidmg==
-
-"@rolldown/binding-darwin-x64@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.11.tgz#6e751ea2067cacee0c94f0e8b087761dde62f9ea"
- integrity sha512-39Ks6UvIHq4rEogIfQBoBRusj0Q0nPVWIvqmwBLaT6aqQGIakHdESBVOPRRLacy4WwUPIx4ZKzfZ9PMW+IeyUQ==
-
-"@rolldown/binding-freebsd-x64@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.11.tgz#b7582b959398c5871034b94ba0a8ecde0425a8e7"
- integrity sha512-jfsm0ZHfhiqrvWjJAmzsqiIFPz5e7mAoCOPBNTcNgkiid/LaFKiq92+0ojH+nmJmKYkre4t71BWXUZDNp7vsag==
-
-"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.11.tgz#3b8c5e071d6a0ed1cb1880c1948c6fece553502a"
- integrity sha512-zjQaUtSyq1nVe3nxmlSCuR96T1LPlpvmJ0SZy0WJFEsV4kFbXcq2u68L4E6O0XeFj4aex9bEauqjW8UQBeAvfQ==
-
-"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.11.tgz#2533165620137b077ae4ede92b752a63cd85cfcb"
- integrity sha512-WMW1yE6IOnehTcFE9eipFkm3XN63zypWlrJQ2iF7NrQ9b2LDRjumFoOGJE8RJJTJCTBAdmLMnJ8uVitACUUo1Q==
-
-"@rolldown/binding-linux-arm64-musl@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.11.tgz#b04cf5b806a012027a4e8b139e0f86b2ff7621c0"
- integrity sha512-jfndI9tsfm4APzjNt6QdBkYwre5lRPUgHeDHoI7ydKUuJvz3lZeCfMsI56BZj+7BYqiKsJm7cfd/6KYV7ubrBg==
-
-"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.11.tgz#bda9c11fe03482033d5dac6a943802b3e7579550"
- integrity sha512-ZlFgw46NOAGMgcdvdYwAGu2Q+SLFA9LzbJLW+iyMOJyhj5wk6P3KEE9Gct4xWwSzFoPI7JCdYmYMzVtlgQ+zfw==
-
-"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.11.tgz#55daa2d35f92f62e958fc44e12db1c16e1f271c5"
- integrity sha512-hIOYmuT6ofM4K04XAZd3OzMySEO4K0/nc9+jmNcxNAxRi6c5UWpqfw3KMFV4MVFWL+jQsSh+bGw2VqmaPMTLyw==
-
-"@rolldown/binding-linux-x64-gnu@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.11.tgz#8ca1abf607bbe2f7fdd6f6416192937dc9ea1e54"
- integrity sha512-qXBQQO9OvkjjQPLdUVr7Nr2t3QTZI7s4KZtfw7HzBgjbmAPSFwSv4rmET9lLSgq3rH/ndA3ngv3Qb8l2njoPNA==
-
-"@rolldown/binding-linux-x64-musl@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.11.tgz#36a52beee8ac97a79d1ed8f1b94fab677e3e4d11"
- integrity sha512-/tpFfoSTzUkH9LPY+cYbqZBDyyX62w5fICq9qzsHLL8uTI6BHip3Q9Uzft0wylk/i8OOwKik8OxW+QAhDmzwmg==
-
-"@rolldown/binding-openharmony-arm64@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.11.tgz#91c74fd23b3f3f3942fe4b3aefc9428ecbaa55fd"
- integrity sha512-mcp3Rio2w72IvdZG0oQ4bM2c2oumtwHfUfKncUM6zGgz0KgPz4YmDPQfnXEiY5t3+KD/i8HG2rOB/LxdmieK2g==
-
-"@rolldown/binding-wasm32-wasi@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.11.tgz#6520bafe57ff1cd2fb45f8f22b1cb6d57be44e79"
- integrity sha512-LXk5Hii1Ph9asuGRjBuz8TUxdc1lWzB7nyfdoRgI0WGPZKmCxvlKk8KfYysqtr4MfGElu/f/pEQRh8fcEgkrWw==
- dependencies:
- "@napi-rs/wasm-runtime" "^1.1.1"
-
-"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.11.tgz#73dd1c4737473c8270b61cd2e42b05a34453ffc0"
- integrity sha512-dDwf5otnx0XgRY1yqxOC4ITizcdzS/8cQ3goOWv3jFAo4F+xQYni+hnMuO6+LssHHdJW7+OCVL3CoU4ycnh35Q==
-
-"@rolldown/binding-win32-x64-msvc@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.11.tgz#4d922aa6dd6bf27c73eba93fec9a0aed62549095"
- integrity sha512-LN4/skhSggybX71ews7dAj6r2geaMJfm3kMbK2KhFMg9B10AZXnKoLCVVgzhMHL0S+aKtr4p8QbAW8k+w95bAA==
-
-"@rolldown/pluginutils@1.0.0-rc.11":
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.11.tgz#110d8cc72990c4e36a79791eeafe7cca979e00c9"
- integrity sha512-xQO9vbwBecJRv9EUcQ/y0dzSTJgA7Q6UVN7xp6B81+tBGSLVAK03yJ9NkJaUA7JFD91kbjxRSC/mDnmvXzbHoQ==
-
"@rolldown/pluginutils@1.0.0-rc.3":
version "1.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5"
@@ -1697,126 +1449,251 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz#7e158ddfc16f78da99c0d5ccbae6cae403ef3284"
integrity sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==
+"@rollup/rollup-android-arm-eabi@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz#a19c645c375158cd5c50a344106f0fa18eb821c4"
+ integrity sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==
+
"@rollup/rollup-android-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz#49f4ae0e22b6f9ffbcd3818b9a0758fa2d10b1cd"
integrity sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==
+"@rollup/rollup-android-arm64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz#1af19aa9d3ad6d00df2681f59cfcb8bf7499576b"
+ integrity sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==
+
"@rollup/rollup-darwin-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz#bb200269069acf5c1c4d79ad142524f77e8b8236"
integrity sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==
+"@rollup/rollup-darwin-arm64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz#3b8463e03ba2a393453fea70e7d907379c27b649"
+ integrity sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==
+
"@rollup/rollup-darwin-x64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz#1bf7a92b27ebdd5e0d1d48503c7811160773be1a"
integrity sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==
+"@rollup/rollup-darwin-x64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz#28da23d69fe117f5f0ff330a8549e51bd09f1b6a"
+ integrity sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==
+
"@rollup/rollup-freebsd-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz#5ccf537b99c5175008444702193ad0b1c36f7f16"
integrity sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==
+"@rollup/rollup-freebsd-arm64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz#94bacac3190f621de1355922b599f3817786044c"
+ integrity sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==
+
"@rollup/rollup-freebsd-x64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz#1196ecd7bf4e128624ef83cd1f9d785114474a77"
integrity sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==
+"@rollup/rollup-freebsd-x64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz#8a0094f533b9fda160b5c90ad9e0c78fca341788"
+ integrity sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==
+
"@rollup/rollup-linux-arm-gnueabihf@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz#cc147633a4af229fee83a737bf2334fbac3dc28e"
integrity sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==
+"@rollup/rollup-linux-arm-gnueabihf@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz#3b7e901a555c7245c87f7440979bee0a1ec882bb"
+ integrity sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==
+
"@rollup/rollup-linux-arm-musleabihf@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz#3559f9f060153ea54594a42c3b87a297bedcc26e"
integrity sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==
+"@rollup/rollup-linux-arm-musleabihf@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz#ee9a09b72e8ad764cfd6188b32ff1de528ff7ebe"
+ integrity sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==
+
"@rollup/rollup-linux-arm64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz#e91f887b154123485cfc4b59befe2080fcd8f2df"
integrity sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==
+"@rollup/rollup-linux-arm64-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz#ba483f4aca9be141171d086dbd01ada6ab03b58d"
+ integrity sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==
+
"@rollup/rollup-linux-arm64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz#660752f040df9ba44a24765df698928917c0bf21"
integrity sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==
+"@rollup/rollup-linux-arm64-musl@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz#17b595b790e6df68e91c5d02526fc832a985ce4f"
+ integrity sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==
+
"@rollup/rollup-linux-loong64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz#cb0e939a5fa479ccef264f3f45b31971695f869c"
integrity sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==
+"@rollup/rollup-linux-loong64-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz#551718714075a2bfb36a2813c466e3a0e9d56abf"
+ integrity sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==
+
"@rollup/rollup-linux-loong64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz#42f86fbc82cd1a81be2d346476dd3231cf5ee442"
integrity sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==
+"@rollup/rollup-linux-loong64-musl@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz#ba156ed1243447a3d710972001d5dcfe3827ff3d"
+ integrity sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==
+
"@rollup/rollup-linux-ppc64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz#39776a647a789dc95ea049277c5ef8f098df77f9"
integrity sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==
+"@rollup/rollup-linux-ppc64-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz#6a957a709b86ac62ef68e597ac03dbd4336782b1"
+ integrity sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==
+
"@rollup/rollup-linux-ppc64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz#466f20029a8e8b3bb2954c7ddebc9586420cac2c"
integrity sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==
+"@rollup/rollup-linux-ppc64-musl@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz#ca4176b4ad53f3edee3b4bfa6f9ef48ff38f167b"
+ integrity sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==
+
"@rollup/rollup-linux-riscv64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz#cff9877c78f12e7aa6246f6902ad913e99edb2b7"
integrity sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==
+"@rollup/rollup-linux-riscv64-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz#4e6b08f72ebeafdb41f3ec433bd228ba8573473b"
+ integrity sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==
+
"@rollup/rollup-linux-riscv64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz#9a762fb99b5a82a921017f56491b7e892b9fb17d"
integrity sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==
+"@rollup/rollup-linux-riscv64-musl@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz#a0b8b8580c7680c8086cb3226527e5472253b895"
+ integrity sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==
+
"@rollup/rollup-linux-s390x-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz#9d25ad8ac7dab681935baf78ac5ea92d14629cdf"
integrity sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==
+"@rollup/rollup-linux-s390x-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz#79fe15b92ce0bae2b609cf26dd158cd3e2b73634"
+ integrity sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==
+
"@rollup/rollup-linux-x64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz#5e5139e11819fa38a052368da79422cb4afcf466"
integrity sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==
+"@rollup/rollup-linux-x64-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz#6aa8302fa45fd3cbbc510ccd223c9c37bf67e53f"
+ integrity sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==
+
"@rollup/rollup-linux-x64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz#b6211d46e11b1f945f5504cc794fce839331ed08"
integrity sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==
+"@rollup/rollup-linux-x64-musl@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz#0c1a5e9799f80c47a66f2c3a5f1a280f38356047"
+ integrity sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==
+
"@rollup/rollup-openbsd-x64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz#e6e09eebaa7012bb9c7331b437a9e992bd94ca35"
integrity sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==
+"@rollup/rollup-openbsd-x64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz#5f07c863e74fd428794f1dc5749f321b661d1f17"
+ integrity sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==
+
"@rollup/rollup-openharmony-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz#f7d99ae857032498e57a5e7259fb7100fd24a87e"
integrity sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==
+"@rollup/rollup-openharmony-arm64@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz#8e0d71324be0f423428b12b25a2eb8ea8e0a7833"
+ integrity sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==
+
"@rollup/rollup-win32-arm64-msvc@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz#41e392f5d9f3bf1253fdaf2f6d6f6b1bfc452856"
integrity sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==
+"@rollup/rollup-win32-arm64-msvc@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz#a553fdf90a785ace6d7501eed6241c468b088999"
+ integrity sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==
+
"@rollup/rollup-win32-ia32-msvc@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz#f41b0490be0e5d3cf459b4dc076a192b532adea9"
integrity sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==
+"@rollup/rollup-win32-ia32-msvc@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz#0fb04f0a88027fbfd323e25a446debce4773868c"
+ integrity sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==
+
"@rollup/rollup-win32-x64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz#0fcf9f1fcb750f0317b13aac3b3231687e6397a5"
integrity sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==
+"@rollup/rollup-win32-x64-gnu@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz#aaa9e36dbdc0f0e397e5966dcce1b4285354ede2"
+ integrity sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==
+
"@rollup/rollup-win32-x64-msvc@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz#3afdb30405f6d4248df5e72e1ca86c5eab55fab8"
integrity sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==
+"@rollup/rollup-win32-x64-msvc@4.60.2":
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz#3418dcf1388f2abd6b0ccc08fe1ef205ae76d696"
+ integrity sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==
+
"@rushstack/node-core-library@5.20.3":
version "5.20.3"
resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-5.20.3.tgz#42043fe42239fa0df906a03396cffde56021ce1f"
@@ -1956,13 +1833,6 @@
dependencies:
"@tanstack/query-core" "5.95.2"
-"@tybys/wasm-util@^0.10.1":
- version "0.10.1"
- resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414"
- integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==
- dependencies:
- tslib "^2.4.0"
-
"@types/argparse@1.0.38":
version "1.0.38"
resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9"
@@ -3000,11 +2870,6 @@ deprecation@^2.0.0:
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
-detect-libc@^2.0.3:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad"
- integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==
-
detect-node-es@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
@@ -3029,9 +2894,9 @@ dom-helpers@^5.0.1:
csstype "^3.0.2"
dompurify@^3.2.4:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.3.3.tgz#680cae8af3e61320ddf3666a3bc843f7b291b2b6"
- integrity sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.0.tgz#b1fc33ebdadb373241621e0a30e4ad81573dfd0b"
+ integrity sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==
optionalDependencies:
"@types/trusted-types" "^2.0.7"
@@ -3044,7 +2909,7 @@ dunder-proto@^1.0.1:
es-errors "^1.3.0"
gopd "^1.2.0"
-easymde@^2.18.0:
+easymde@^2.20.0:
version "2.20.0"
resolved "https://registry.yarnpkg.com/easymde/-/easymde-2.20.0.tgz#88b3161feab6e1900afa9c4dab3f1da352b0a26e"
integrity sha512-V1Z5f92TfR42Na852OWnIZMbM7zotWQYTddNaLYZFVKj7APBbyZ3FYJ27gBw2grMW3R6Qdv9J8n5Ij7XRSIgXQ==
@@ -3073,7 +2938,7 @@ embla-carousel-reactive-utils@8.6.0:
resolved "https://registry.yarnpkg.com/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz#607f1d8ab9921c906a555c206251b2c6db687223"
integrity sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==
-embla-carousel@8.6.0:
+embla-carousel@8.6.0, embla-carousel@^8.5.2:
version "8.6.0"
resolved "https://registry.yarnpkg.com/embla-carousel/-/embla-carousel-8.6.0.tgz#abcedff2bff36992ea8ac27cd30080ca5b6a3f58"
integrity sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==
@@ -3142,7 +3007,7 @@ es6-error@^4.0.1:
resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
-esbuild@^0.25.1:
+esbuild@^0.25.0, esbuild@^0.25.1:
version "0.25.12"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5"
integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==
@@ -3174,38 +3039,6 @@ esbuild@^0.25.1:
"@esbuild/win32-ia32" "0.25.12"
"@esbuild/win32-x64" "0.25.12"
-esbuild@^0.27.0:
- version "0.27.7"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.7.tgz#bcadce22b2f3fd76f257e3a64f83a64986fea11f"
- integrity sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==
- optionalDependencies:
- "@esbuild/aix-ppc64" "0.27.7"
- "@esbuild/android-arm" "0.27.7"
- "@esbuild/android-arm64" "0.27.7"
- "@esbuild/android-x64" "0.27.7"
- "@esbuild/darwin-arm64" "0.27.7"
- "@esbuild/darwin-x64" "0.27.7"
- "@esbuild/freebsd-arm64" "0.27.7"
- "@esbuild/freebsd-x64" "0.27.7"
- "@esbuild/linux-arm" "0.27.7"
- "@esbuild/linux-arm64" "0.27.7"
- "@esbuild/linux-ia32" "0.27.7"
- "@esbuild/linux-loong64" "0.27.7"
- "@esbuild/linux-mips64el" "0.27.7"
- "@esbuild/linux-ppc64" "0.27.7"
- "@esbuild/linux-riscv64" "0.27.7"
- "@esbuild/linux-s390x" "0.27.7"
- "@esbuild/linux-x64" "0.27.7"
- "@esbuild/netbsd-arm64" "0.27.7"
- "@esbuild/netbsd-x64" "0.27.7"
- "@esbuild/openbsd-arm64" "0.27.7"
- "@esbuild/openbsd-x64" "0.27.7"
- "@esbuild/openharmony-arm64" "0.27.7"
- "@esbuild/sunos-x64" "0.27.7"
- "@esbuild/win32-arm64" "0.27.7"
- "@esbuild/win32-ia32" "0.27.7"
- "@esbuild/win32-x64" "0.27.7"
-
"esbuild@npm:esbuild@>=0.17.6 <0.28.0":
version "0.27.4"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.4.tgz#b9591dd7e0ab803a11c9c3b602850403bef22f00"
@@ -3310,7 +3143,7 @@ fast-uri@^3.0.1:
resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
-fdir@^6.4.3, fdir@^6.5.0:
+fdir@^6.4.3, fdir@^6.4.4, fdir@^6.5.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
@@ -3360,9 +3193,9 @@ find-up@^5.0.0:
path-exists "^4.0.0"
follow-redirects@^1.15.11:
- version "1.15.11"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
- integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc"
+ integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==
foreground-child@^2.0.0:
version "2.0.0"
@@ -3868,80 +3701,6 @@ leven@^3.1.0:
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-lightningcss-android-arm64@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968"
- integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==
-
-lightningcss-darwin-arm64@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz#50b71871b01c8199584b649e292547faea7af9b5"
- integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==
-
-lightningcss-darwin-x64@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e"
- integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==
-
-lightningcss-freebsd-x64@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575"
- integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==
-
-lightningcss-linux-arm-gnueabihf@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d"
- integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==
-
-lightningcss-linux-arm64-gnu@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335"
- integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==
-
-lightningcss-linux-arm64-musl@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133"
- integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==
-
-lightningcss-linux-x64-gnu@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6"
- integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==
-
-lightningcss-linux-x64-musl@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b"
- integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==
-
-lightningcss-win32-arm64-msvc@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38"
- integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==
-
-lightningcss-win32-x64-msvc@1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz#141aa5605645064928902bb4af045fa7d9f4220a"
- integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==
-
-lightningcss@^1.32.0:
- version "1.32.0"
- resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.32.0.tgz#b85aae96486dcb1bf49a7c8571221273f4f1e4a9"
- integrity sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==
- dependencies:
- detect-libc "^2.0.3"
- optionalDependencies:
- lightningcss-android-arm64 "1.32.0"
- lightningcss-darwin-arm64 "1.32.0"
- lightningcss-darwin-x64 "1.32.0"
- lightningcss-freebsd-x64 "1.32.0"
- lightningcss-linux-arm-gnueabihf "1.32.0"
- lightningcss-linux-arm64-gnu "1.32.0"
- lightningcss-linux-arm64-musl "1.32.0"
- lightningcss-linux-x64-gnu "1.32.0"
- lightningcss-linux-x64-musl "1.32.0"
- lightningcss-win32-arm64-msvc "1.32.0"
- lightningcss-win32-x64-msvc "1.32.0"
-
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -3975,7 +3734,12 @@ lodash.flattendeep@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==
-lodash@^4.17.21, lodash@~4.17.23:
+lodash@^4.17.21:
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c"
+ integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==
+
+lodash@~4.17.23:
version "4.17.23"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
@@ -4409,7 +4173,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
-picomatch@^4.0.2, picomatch@^4.0.3:
+picomatch@^4.0.2, picomatch@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
@@ -4477,10 +4241,10 @@ postcss@8.4.49:
picocolors "^1.1.1"
source-map-js "^1.2.1"
-postcss@^8.5.6, postcss@^8.5.8:
- version "8.5.8"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.8.tgz#6230ecc8fb02e7a0f6982e53990937857e13f399"
- integrity sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==
+postcss@^8.5.3:
+ version "8.5.13"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.13.tgz#6cfaf647f2e7ef69850208eccd849e0d3f65d420"
+ integrity sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==
dependencies:
nanoid "^3.3.11"
picocolors "^1.1.1"
@@ -4840,30 +4604,6 @@ rimraf@^6.1.3:
glob "^13.0.3"
package-json-from-dist "^1.0.1"
-rolldown@1.0.0-rc.11:
- version "1.0.0-rc.11"
- resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.11.tgz#6eaf091b1bbb5ed92e5302171a3d59f0d026d9c0"
- integrity sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==
- dependencies:
- "@oxc-project/types" "=0.122.0"
- "@rolldown/pluginutils" "1.0.0-rc.11"
- optionalDependencies:
- "@rolldown/binding-android-arm64" "1.0.0-rc.11"
- "@rolldown/binding-darwin-arm64" "1.0.0-rc.11"
- "@rolldown/binding-darwin-x64" "1.0.0-rc.11"
- "@rolldown/binding-freebsd-x64" "1.0.0-rc.11"
- "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.11"
- "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.11"
- "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.11"
- "@rolldown/binding-linux-ppc64-gnu" "1.0.0-rc.11"
- "@rolldown/binding-linux-s390x-gnu" "1.0.0-rc.11"
- "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.11"
- "@rolldown/binding-linux-x64-musl" "1.0.0-rc.11"
- "@rolldown/binding-openharmony-arm64" "1.0.0-rc.11"
- "@rolldown/binding-wasm32-wasi" "1.0.0-rc.11"
- "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.11"
- "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.11"
-
rollup-plugin-license@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.7.0.tgz#370af086789416856e52df9ee60ac9461788d7d7"
@@ -4878,7 +4618,41 @@ rollup-plugin-license@^3.7.0:
spdx-expression-validate "^2.0.0"
spdx-satisfies "^5.0.1"
-rollup@^4.43.0, rollup@^4.59.0:
+rollup@^4.34.9:
+ version "4.60.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.2.tgz#ac23fe4bd530304cef9fa61e639d7098b6762cf4"
+ integrity sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==
+ dependencies:
+ "@types/estree" "1.0.8"
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi" "4.60.2"
+ "@rollup/rollup-android-arm64" "4.60.2"
+ "@rollup/rollup-darwin-arm64" "4.60.2"
+ "@rollup/rollup-darwin-x64" "4.60.2"
+ "@rollup/rollup-freebsd-arm64" "4.60.2"
+ "@rollup/rollup-freebsd-x64" "4.60.2"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.60.2"
+ "@rollup/rollup-linux-arm-musleabihf" "4.60.2"
+ "@rollup/rollup-linux-arm64-gnu" "4.60.2"
+ "@rollup/rollup-linux-arm64-musl" "4.60.2"
+ "@rollup/rollup-linux-loong64-gnu" "4.60.2"
+ "@rollup/rollup-linux-loong64-musl" "4.60.2"
+ "@rollup/rollup-linux-ppc64-gnu" "4.60.2"
+ "@rollup/rollup-linux-ppc64-musl" "4.60.2"
+ "@rollup/rollup-linux-riscv64-gnu" "4.60.2"
+ "@rollup/rollup-linux-riscv64-musl" "4.60.2"
+ "@rollup/rollup-linux-s390x-gnu" "4.60.2"
+ "@rollup/rollup-linux-x64-gnu" "4.60.2"
+ "@rollup/rollup-linux-x64-musl" "4.60.2"
+ "@rollup/rollup-openbsd-x64" "4.60.2"
+ "@rollup/rollup-openharmony-arm64" "4.60.2"
+ "@rollup/rollup-win32-arm64-msvc" "4.60.2"
+ "@rollup/rollup-win32-ia32-msvc" "4.60.2"
+ "@rollup/rollup-win32-x64-gnu" "4.60.2"
+ "@rollup/rollup-win32-x64-msvc" "4.60.2"
+ fsevents "~2.3.2"
+
+rollup@^4.59.0:
version "4.60.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.0.tgz#d7d68c8cda873e96e08b2443505609b7e7be9eb8"
integrity sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==
@@ -5187,13 +4961,13 @@ tiny-invariant@^1.3.3:
dependencies:
esm "^3.2.25"
-tinyglobby@^0.2.15:
- version "0.2.15"
- resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2"
- integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==
+tinyglobby@^0.2.13:
+ version "0.2.16"
+ resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
+ integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
dependencies:
fdir "^6.5.0"
- picomatch "^4.0.3"
+ picomatch "^4.0.4"
to-regex-range@^5.0.1:
version "5.0.1"
@@ -5202,7 +4976,7 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
-tslib@2.8.1, tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.7.0:
+tslib@2.8.1, tslib@^2.0.0, tslib@^2.1.0, tslib@^2.7.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
@@ -5420,30 +5194,17 @@ vite-plugin-istanbul@^8.0.0:
source-map "^0.7.6"
test-exclude "^8.0.0"
-vite@7.3.2:
- version "7.3.2"
- resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.2.tgz#cb041794d4c1395e28baea98198fd6e8f4b96b5c"
- integrity sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==
+"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", vite@^6.4.2, vite@^8.0.0:
+ version "6.4.2"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.2.tgz#a4e548ca3a90ca9f3724582cab35e1ba15efc6f2"
+ integrity sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==
dependencies:
- esbuild "^0.27.0"
- fdir "^6.5.0"
- picomatch "^4.0.3"
- postcss "^8.5.6"
- rollup "^4.43.0"
- tinyglobby "^0.2.15"
- optionalDependencies:
- fsevents "~2.3.3"
-
-"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.0:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.2.tgz#fcee428eb0ad3d4aa9843d7f7ba981679bbe5edc"
- integrity sha512-1gFhNi+bHhRE/qKZOJXACm6tX4bA3Isy9KuKF15AgSRuRazNBOJfdDemPBU16/mpMxApDPrWvZ08DcLPEoRnuA==
- dependencies:
- lightningcss "^1.32.0"
- picomatch "^4.0.3"
- postcss "^8.5.8"
- rolldown "1.0.0-rc.11"
- tinyglobby "^0.2.15"
+ esbuild "^0.25.0"
+ fdir "^6.4.4"
+ picomatch "^4.0.2"
+ postcss "^8.5.3"
+ rollup "^4.34.9"
+ tinyglobby "^0.2.13"
optionalDependencies:
fsevents "~2.3.3"
diff --git a/src/performance/tests.py b/src/performance/tests.py
index cd15152433..db2dd8896c 100644
--- a/src/performance/tests.py
+++ b/src/performance/tests.py
@@ -9,6 +9,7 @@ from inventree.api import InvenTreeAPI
server = os.environ.get('INVENTREE_PYTHON_TEST_SERVER', 'http://127.0.0.1:12345')
user = os.environ.get('INVENTREE_PYTHON_TEST_USERNAME', 'testuser')
pwd = os.environ.get('INVENTREE_PYTHON_TEST_PASSWORD', 'testpassword')
+
api_client = InvenTreeAPI(
server,
username=user,
diff --git a/tasks.py b/tasks.py
index 37be587a36..23470bf186 100644
--- a/tasks.py
+++ b/tasks.py
@@ -1553,10 +1553,16 @@ def server(c, address='0.0.0.0:8000', no_reload=False, no_threading=False):
manage(c, cmd, pty=True)
-@task(pre=[wait])
-def worker(c):
- """Run the InvenTree background worker process."""
- manage(c, 'qcluster', pty=True)
+@task(pre=[wait], help={'verbose': 'Print verbose output from the command'})
+def worker(c, verbose: bool = False):
+ """Run the InvenTree background worker process.
+
+ Launches a django-q2 cluster to process background tasks.
+ Ref: https://django-q2.readthedocs.io
+ """
+ cmd = f'qcluster -v {2 if verbose else 0}'
+
+ manage(c, cmd, pty=True)
@task(post=[static, server])
@@ -1864,8 +1870,13 @@ def export_definitions(c, basedir: str = ''):
"""Export various definitions."""
if basedir != '' and basedir.endswith('/') is False:
basedir += '/'
+
base_path = Path(basedir, 'generated').resolve()
+ if not base_path.exists():
+ info(f'Creating export directory: {base_path}')
+ base_path.mkdir(parents=True, exist_ok=True)
+
filenames = [
base_path.joinpath('inventree_settings.json'),
base_path.joinpath('inventree_tags.yml'),
@@ -2298,12 +2309,19 @@ def doc_schema(c):
help={
'address': 'Host and port to run the server on (default: localhost:8080)',
'compile_schema': 'Compile the API schema documentation first (default: False)',
+ 'export_settings': 'Export settings definitions before starting the server (default: True)',
}
)
-def docs_server(c, address='localhost:8080', compile_schema=False):
+def docs_server(
+ c,
+ address='localhost:8080',
+ compile_schema: bool = False,
+ export_settings: bool = True,
+):
"""Start a local mkdocs server to view the documentation."""
# Extract settings definitions
- export_definitions(c, basedir='docs')
+ if export_settings:
+ export_definitions(c, basedir='docs')
if compile_schema:
doc_schema(c)